我们有一个系统,我们的主要数据存储(和“通用数据源”)是 Postgres,但我们实时和夜间聚合地复制该数据。我们目前复制到 Elasticsearch、Redis、Redshift(仅限夜间),并且还在添加 Neo4j。
我们的 ETL 管道已经足够扩展,以至于我们开始研究像 Airflow 这样的工具和 Luigi ,但从我最初的研究可以看出,这些工具几乎完全用于聚合批量加载。
是否有任何工具可以处理 ETL 过程,既可以处理大批量 ETL 过程,也可以处理即时、大容量、单个记录的复制? Airflow 或 Luigi 会处理这个而我只是错过了吗?
谢谢!
最佳答案
就 Luigi 而言,您最终可能会采用微批处理方法,以较短的时间间隔运行作业。例如,您可以每分钟触发一个 cron 作业来检查 Postgres 表中的新记录并处理该批处理。您可以为每个项目创建一个任务,以便您的处理流程本身围绕单个项目。在大量情况下,比如每秒更新数百次以上,这是一个真正的挑战。
Apache Spark 具有可扩展的批处理模式和微批处理模式,以及一些可以适应 ETL 的基本流水线运算符。然而,解决方案在支持基础设施方面的复杂程度上升了很多。
关于postgresql - 用于近实时 ETL 架构的正确工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028094/