2017-09-04 29 views
1

我有2个用例:最佳ETL包在Python

  • 提取物,从Oracle/PostgreSQL的/红移/ S3/CSV转换和加载到我自己的红移集群
  • 排定作业做日常运行/每周(INSERT + TABLE或INSERT + NONE选项更可取)。

我目前正在使用:

  1. SQLAlchemy的的提取物(作品以及一般)。用于转换和加载的PETL(适用于较小的数据集,但对于〜50m +行很慢,并且与数据库的连接超时)。
  2. 调度组件的内部工具(它将转换存储在XML中,然后存储来自XML的加载并且看起来相当长且复杂)。

我一直在寻找this link,但会欢迎更多的建议。如果有一个“更简单”的过程,我可以通过Python完成所有工作(我只使用Redshift,因为它看起来是最好的选择),所以也可以导出到Spark或类似的。

回答

0

如何

  • 的Python
  • 熊猫

这就是我们用我们的ETL处理。

+0

是的我正在使用Python,并希望继续。 :)有趣的你提到熊猫。您有关于Pandas如何用于ETL的链接或教程?我倾向于仅将它用于数据操作。你的意思是使用SQLAlchemy进行连接(创建引擎),然后将表转换为Pandas数据框,并将其导出到Redshift表中?我喜欢PETL,因为它允许您简单地提取/转换/加载而不需要创建表格,但如果这更容易,我很乐意。期待你的想法。 –

+0

正如你所提到的。使用SqlAlchemy的大熊猫。不需要临时表只需操作DataFrame,因此它的格式适合加载到表中。如果您希望其他产品看看Pentaho或IBM的Datastage,但这些是ETL的Java前端。 –

+0

有趣。但是,你如何使用SQLAlchemy实际加载表?你如何找到一份日常工作? Petl的速度很慢,因此“大型”数据很快。 –