ETL批处理

我正在寻找一种开放源代码技术,该技术将允许我创建计划的批处理(例如,每1小时查询一些SQL DB(如Oracle),然后插入到Kafka。可能会对数据进行一些转换)之间)。问题是我需要能够传输大量数据(“大数据”)。

例如,我阅读了有关Apache Airflow的文章,但它似乎不适合大量数据。

我还可以使用哪些其他技术?

abc12345687 回答:ETL批处理

一个简单易用的解决方案是使用Talend Open Studio for Big Data这样的开源ETL工具创建一个ETL,该ETL从oracle读取您的数据,然后将其写入Kafka。考虑到这就是您所需要的,您可以使用三个组件使用talend来完成此任务。

  • tOracleInput
  • tMap
  • tKafkaOutput

Talend - Kafka Documentation

另一种解决方案是在Spark作业中对ETL进行编码,以直接从您的Spark代码写入Kafka。如果您有足够的内存,Spark会提供真正非常快的内存处理,以便您可以利用它。

此外,由于您要每小时进行一次此操作,因此应基于时间过滤oracle输入,以仅获取增量行,而不是整个快照。

,

您应该看到Apache Big Data projectsOracle GoldenGate for BigData的全部。 Apache正在使用大数据工具的解决方案解决此问题。

您可以使用Spring Framework: Spring Batch来获得开源解决方案。

,

Quartz Scheduler是否足以满足您的用例?

虽然它是一个通用的作业计划库,但我认为它也可以用于长时间运行的ETL任务。

从官方网站上引用:

Quartz是richly featured的开源作业调度库, 几乎可以集成到任何Java应用程序中-从 最小的独立应用程序到最大的电子商务系统。 Quartz可用于创建简单或复杂的执行时间表 数万,数以万计的工作;其任务的工作 被定义为可以虚拟执行的标准Java组件 您可以编程让他们执行的任何操作。 Quartz Scheduler包括 许多企业级功能,例如对JTA事务的支持 和聚类。

石英可以免费使用,并根据Apache 2.0 license获得许可。

,

您对Apache Airflow的理解有些误导。它旨在用于以编程方式创作,安排和监视工作流。

您可以使用各种技术来完成您打算做的ETL工作。气流注定要成为协调器。可以

  • 监视Cron作业
  • 将数据从一个地方传输到另一个地方(这可能包括定期从多个来源获取数据)
  • 机器学习管道。

Airflow还与所有主要的云供应商集成。 MS Azure,GCP,AWS。 See this。它可以与Qubole,Spark等一起很好地工作。

我恳请您在2个单独的灯中看2个单独的东西。做实际的ETL作业可能需要它自己的设置,而以计划的方式运行它就是Airflow的关键所在。气流还可以帮助您完成工作的发展方面。

本文链接:https://www.f2er.com/3121072.html

大家都在问