Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 将日志写入数据库的并发批处理作业_Shell_Amazon Web Services_Cron_Batch Processing_Amazon Sqs - Fatal编程技术网

Shell 将日志写入数据库的并发批处理作业

Shell 将日志写入数据库的并发批处理作业,shell,amazon-web-services,cron,batch-processing,amazon-sqs,Shell,Amazon Web Services,Cron,Batch Processing,Amazon Sqs,我的生产系统每天有近170个Ctrl-M作业(基本上是cron作业)在运行。这些作业被编织在一起(通过创建依赖项)以执行ETL操作。例如:Ctrl-M(类似于CRON的调度器)几乎总是从一个shell脚本开始,然后它以特定的顺序执行一组python、hive脚本或map-reduce作业 我正在尝试将日志记录到每个流程中,以便能够更好地监控整个任务和管道。这些日志将用于构建监控仪表板 目前,我已经使用一个中心包装器实现了日志记录,每个进程都会调用该包装器来记录信息。这个包装器每次都会打开一个te

我的生产系统每天有近170个Ctrl-M作业(基本上是cron作业)在运行。这些作业被编织在一起(通过创建依赖项)以执行ETL操作。例如:Ctrl-M(类似于CRON的调度器)几乎总是从一个shell脚本开始,然后它以特定的顺序执行一组python、hive脚本或map-reduce作业

我正在尝试将日志记录到每个流程中,以便能够更好地监控整个任务和管道。这些日志将用于构建监控仪表板

目前,我已经使用一个中心包装器实现了日志记录,每个进程都会调用该包装器来记录信息。这个包装器每次都会打开一个teradata连接,并调用一个teradata存储过程来写入teradata表

现在这个很好用。但在我的例子中,多个并发进程(产生更多并行子进程)同时运行,我在进行一些负载测试时开始遇到连接断开的情况。以下是我一直在思考的一种方法:

  • 使进程写入某种消息队列(例如:AWS sqs)。侦听器将异步地从这些消息队列中拾取数据,然后批量写入teradata
  • 使用文件或某些结构对teradata db执行批写入
我很想听听你对这个或其他更好的方法的想法。最终,日志记录的终点将转移到redshift,从而考虑AWS SQS队列


提前感谢。

我认为动静消防水带是解决这一问题的最佳方案。设置firehose流非常快速且易于配置,非常便宜,可以将数据流传输到您选择的s3存储桶,也可以选择将日志直接传输到redshift

若红移是你们的最终目标(甚至只是s3),那个么动弹消防水带并不能让它变得更容易

Amazon Kinesis Firehose是将流式数据加载到 美国焊接学会。它可以捕获并自动将流数据加载到Amazon中 S3和Amazon Redshift,通过 现有的商业智能工具和仪表盘您已经 今天使用。它是一个完全管理的服务,可以自动扩展 以匹配数据的吞吐量,并且不需要进行任何处理 管理它还可以对数据进行批处理、压缩和加密 在加载之前,最大限度地减少服务器上使用的存储量 目的地和提高安全性。您可以轻松创建消防水带 从AWS管理控制台传送流,使用 点击几下,然后开始从数百个站点向流发送数据 数千个数据源将持续加载到AWS–全部在 就几分钟


@谢尔特。。这绝对不是一个软件推荐问题。我真的觉得这是一个并发编程/架构问题。不过,感谢您的意见:)虽然您可能会从其他用户那里得到一些有用的想法,但根据中的定义,此Q(IHMO)是离题的。我提供的软件推荐可能是一个更好的论坛,可以帮助您获得一些答案,但实际上,大多数S.E.网站都避免将架构视为“太板”或“基于个人观点”。正如我所说,这是一个有趣的问题,但不是为S.O.定义的编码Q。如果有人回答,我会为你感到高兴,祝你好运!