gpt4 book ai didi

shell - 并发批处理作业将日志写入数据库

转载 作者:行者123 更新时间:2023-12-02 19:35:40 26 4
gpt4 key购买 nike

我的生产系统每天运行近 170 个 Ctrl-M 作业(本质上是 cron 作业)。这些作业编织在一起(通过创建依赖关系)来执行 ETL 操作。例如:Ctrl-M(像 CRON 这样的调度程序)几乎总是以 shell 脚本开始,然后按特定顺序执行一堆 python、hive 脚本或 map-reduce 作业。

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

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

目前效果很好。但就我而言,多个并发进程(产生更多并行子进程)同时运行,并且我在进行一些负载测试时开始遇到连接丢失的情况。以下是我一直在考虑的一种方法:

  • 使进程写入某种消息队列(例如:AWS sqs)。监听器将从这些消息队列中异步选取数据,然后批量写入 Teradata。
  • 使用文件或某些结构对 Teradata 数据库执行批量写入。

我绝对想听听您对此的想法或任何其他更好的方法。最终,日志记录的终点将转移到 Redshift,从而按照 AWS SQS 队列进行思考。

提前致谢。

最佳答案

我认为 Kinesis firehose 是完美的解决方案。设置 Firehose 流非常快速且易于配置,非常便宜,并且会将您的数据流式传输到您选择的 s3 存储桶,并可选择将日志直接流式传输到 Redshift。

如果红移是您的最终目标(甚至只是 s3),那么 kinesis firehose 不会让这一切变得更容易。

https://aws.amazon.com/kinesis/firehose/

Amazon Kinesis Firehose is the easiest way to load streaming data into AWS. It can capture and automatically load streaming data into Amazon S3 and Amazon Redshift, enabling near real-time analytics with existing business intelligence tools and dashboards you’re already using today. It is a fully managed service that automatically scales to match the throughput of your data and requires no ongoing administration. It can also batch, compress, and encrypt the data before loading it, minimizing the amount of storage used at the destination and increasing security. You can easily create a Firehose delivery stream from the AWS Management Console, configure it with a few clicks, and start sending data to the stream from hundreds of thousands of data sources to be loaded continuously to AWS – all in just a few minutes.

关于shell - 并发批处理作业将日志写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36169316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com