我正在寻找一种开放源代码技术,该技术将允许我创建计划的批处理(例如,每1小时查询一些SQL DB(如Oracle),然后插入到Kafka。可能会对数据进行一些转换)之间)。问题是我需要能够传输大量数据(“大数据”)。
例如,我阅读了有关Apache Airflow的文章,但它似乎不适合大量数据。
我还可以使用哪些其他技术?
我正在寻找一种开放源代码技术,该技术将允许我创建计划的批处理(例如,每1小时查询一些SQL DB(如Oracle),然后插入到Kafka。可能会对数据进行一些转换)之间)。问题是我需要能够传输大量数据(“大数据”)。
例如,我阅读了有关Apache Airflow的文章,但它似乎不适合大量数据。
我还可以使用哪些其他技术?
一个简单易用的解决方案是使用Talend Open Studio for Big Data这样的开源ETL工具创建一个ETL,该ETL从oracle读取您的数据,然后将其写入Kafka。考虑到这就是您所需要的,您可以使用三个组件使用talend来完成此任务。
另一种解决方案是在Spark作业中对ETL进行编码,以直接从您的Spark代码写入Kafka。如果您有足够的内存,Spark会提供真正非常快的内存处理,以便您可以利用它。
此外,由于您要每小时进行一次此操作,因此应基于时间过滤oracle输入,以仅获取增量行,而不是整个快照。
,您应该看到Apache Big Data projects和Oracle 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工作。气流注定要成为协调器。可以
Airflow还与所有主要的云供应商集成。 MS Azure,GCP,AWS。 See this。它可以与Qubole,Spark等一起很好地工作。
我恳请您在2个单独的灯中看2个单独的东西。做实际的ETL作业可能需要它自己的设置,而以计划的方式运行它就是Airflow的关键所在。气流还可以帮助您完成工作的发展方面。