2017-09-04 62 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的速度很慢,因此「大型」數據很快。 –