postgresql - 用于近实时 ETL 架构的正确工具

标签 postgresql neo4j etl airflow luigi

我们有一个系统,我们的主要数据存储(和“通用数据源”)是 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/

相关文章:

testing - 数据仓库测试自动化

c# - 如何使用 postgresql 函数获取多结果集

javascript - Sequelize 按日期分组,忽略小时/分钟/秒

javascript - 在 Neo4j 中创建批量节点时如何生成唯一的 UUID

csv - 将 64k 元组导入 Neo4j

sql-server - SSIS 条件 split 沿袭错误

amazon-web-services - AWS Glue 在顺序运行时输出空文件

Postgresql - 不匹配时插入并返回 pid

sql - 条件选择从 postgresql 数据库错误

c# - Neo4jClient "CASE WHEN"连同返回