【发布时间】:2018-11-03 23:56:29
【问题描述】:
有几个 OLTP Postgres 数据库每天总共接受 1 亿行。
还有一个Greenplum DWH。如何加载这 1 亿行数据,每天只需少量转换到 Greenplum?
我将为此使用Python。
我确信以传统方式 (psycopg2 + cursor.execute("INSERT ...) 执行此操作,即使是批处理,也会花费大量时间并且会在整个系统中造成瓶颈。
您对如何优化数据加载过程有什么建议吗?任何可能有帮助的链接或书籍也欢迎。
【问题讨论】:
-
查看 Apache Airflow、Celery、Pandas 等选项。
-
@dmitryro Airflow 只是一个任务调度程序。 Celery 更专注于实时处理,而我需要每天一夜之间一次加载数据。 Pandas 对数据转换很有用,但它有点慢,对加载没有帮助。这些解决方案对我有何帮助?
-
如果您关心性能和资源而不是按计划进行的工作,请查看 go、scala、kafka、spark。如果需要,您可以并行化 Pandas 或使用线程和多处理使其并发 - 如果您使用 Python,请再次使用 Celery 或 Tornado 框架。
-
@dmitryro 但是 kafka 是用于流式数据的,而 tornado 是一个网络服务器。我不知道这如何有助于从 OLTP 数据库中提取数据并将数据加载到 DWH 中。这里的主要问题是将数据加载到 DWH 中,这些解决方案似乎都不会帮助我。还是我错了?您能否描述一下您列出的解决方案如何帮助我加载数据?提前谢谢你
标签: python database etl data-warehouse greenplum