2017-09-04 5 views
1

J'ai 2 cas d'utilisation:Les meilleurs paquets ETL en Python

  • Extract, Transform et Load d'Oracle/PostgreSQL/Redshift/S3/CSV à mon propre cluster Redshift
  • Planifier le travail faire fonctionne tous les jours/weekly (les options INSERT + TABLE ou INSERT + NONE sont préférables).

J'utilise actuellement:

  1. SQLAlchemy pour les extraits (fonctionne bien en général).
  2. PETL pour les transformations et les charges (fonctionne bien sur les ensembles de données plus petits, mais pour ~ 50m + lignes, il est lent et la connexion aux bases de données expire).
  3. Un outil interne pour le composant de planification (qui stocke la transformation en XML, puis les charges du XML et semble plutôt long et compliqué).

J'ai regardé par this link mais aimerais des suggestions additionnelles. L'exportation vers Spark ou similaire est également bienvenue s'il y a un processus "plus facile" où je peux tout faire par Python (je n'utilise Redshift que parce que cela semble être la meilleure option).

Répondre

0

Que diriez-vous

  • Python
  • Pandas

Voici ce que nous utilisons pour notre traitement ETL.

+0

Yup J'utilise Python et je veux continuer. :) Intéressant, vous mentionnez Pandas. Avez-vous un lien ou un tutoriel sur la façon dont Pandas peut être utilisé pour ETL? J'ai tendance à l'utiliser uniquement pour la manipulation de données. Voulez-vous dire se connecter en utilisant SQLAlchemy (créer un moteur), puis convertir la table en une base de données Pandas, et l'exporter dans une table Redshift? J'ai aimé le PETL car il permet simplement d'extraire/transformer/charger sans avoir besoin de créer des tables mais je suis content si c'est plus facile. Dans l'attente de vos pensées. –

+0

Exactement comme vous l'avez mentionné. Pandas avec SqlAlchemy. Pas besoin de tables temporaires juste manipuler le DataFrame de sorte qu'il est dans le format approprié pour le chargement dans la table. Si vous voulez d'autres produits, regardez Pentaho ou le Datastage d'IBM, mais ce sont des frontaux Java pour ETL. –

+0

Intéressant. Mais comment charger la table en utilisant SQLAlchemy? Comment vous levez-vous un travail quotidien? Est-ce rapide pour les "grandes" données car petl est assez lent. –