我的生产系统每天都有近170个Ctrl-M作业(基本上是cron作业)。这些作业被编织在一起(通过创建依赖关系)来执行ETL操作。例如:Ctrl-M(像CRON一样的调度程序)几乎总是以shell脚本开头,然后以特定的顺序执行一堆python,hive脚本或map-reduce作业。
我正在尝试在每个进程中实现日志记录,以便能够更好地监视整个任务和管道。日志将用于构建监视仪表板。
目前,我已使用中央包装器实现了日志记录,每个进程都会调用该包装器来记录信息。这个包装器反过来打开一个teradata连接,并调用teradata存储过程写入teradata表。
现在这个工作正常。但就我而言,多个并发进程(产生更多并行子进程)同时运行,并且在进行负载测试时我已经开始遇到连接断开。以下是我一直在考虑的方法:
我非常希望听到您对此或其他更好方法的看法。最终,日志记录的终点将转移到红移,从而考虑AWS SQS队列。
提前致谢。
答案 0 :(得分:3)
我认为Kinesis firehose是完美的解决方案。设置firehose流非常快速且易于配置,非常便宜,并且可以将数据流式传输到您选择的s3存储桶,并可选择直接将日志流式传输到红移。
如果红移是你的最终目标(甚至只是s3),那么kinesis firehose就不会让它更容易。
https://aws.amazon.com/kinesis/firehose/
Amazon Kinesis Firehose是将流数据加载到的最简单方法 AWS。它可以捕获并自动将流数据加载到亚马逊 S3和Amazon Redshift,支持近乎实时的分析 您已经拥有的现有商业智能工具和仪表板 今天使用。它是一个完全托管的服务,可以自动扩展 匹配数据的吞吐量,不需要持续 管理。它还可以批量,压缩和加密数据 在加载之前,最大限度地减少使用的存储量 目的地和增加安全性。您可以轻松创建Firehose 来自AWS管理控制台的传输流,使用a进行配置 几次点击,并开始从数百个流向数据流发送数据 数千个数据源将连续加载到AWS - 全部在 只需几分钟。