web-dev-qa-db-fra.com

Quels sont les arguments en faveur de l'utilisation du processus ELT sur ETL?

J'ai réalisé que mon entreprise utilise un processus ELT (extraction-transformation-charge) au lieu d'utiliser un processus ETL (extraction-transformation-charge).
Quelles sont les différences entre les deux approches et dans quelles situations l'une serait-elle "meilleure" que l'autre? Ce serait formidable si vous pouviez fournir quelques exemples.

19
What'sUP

beaucoup de discussions sur ETL vs ELT là-bas.

La principale différence entre ETL et ELT est où le traitement a lieu Le traitement ETL des données se produit dans l'outil ETL (généralement un enregistrement à la fois et mémoire) Le traitement ELT des données se produit dans le moteur de base de données

Les données sont identiques et les résultats finaux des données peuvent être obtenus dans les deux méthodes.

cela dépend beaucoup de vous et de votre environnement.Si vous avez un moteur de base de données solide et un bon matériel et que vous pouvez effectuer un traitement lourd, ELT est bon pour vous.Si vous avez un moteur de datawarehouse occupé et que vous devez le libérer du traitement, allez pour ETL.

notez qu'avoir un outil ETL vous donne les deux options, comme ETL (T), vous pouvez faire la transformation dans l'outil ETL et vous pouvez aussi faire la transformation dans le moteur de base de données

mais ELT, vous n'avez que l'option de transformation dans le moteur de base de données, mais vous devez savoir que les bases de données sont meilleures pour les opérations basées sur des ensembles que les outils ETL d'enregistrement à la fois.

question similaire posée sur DONC mais supportant ETL et aussi un Nice Article comparant ETL vs ELT, mais favorisant ELT

13
AmmarR

C'est presque une question de sémantique. Beaucoup d'air chaud est libéré dans les discussions à ce sujet, mais je ne suis pas vraiment convaincu qu'il existe une réelle profondeur philosophique à une distinction entre les deux.

À un certain niveau, vous pouvez voir ETL comme transformant des données dans un outil côté client avant de finalement le charger, ELT impliquant que les données sont transférées vers une sorte de zone de transit avec relativement peu de changement de format. La "transformation" a lieu ensuite.

Ce sont des définitions très moelleuses et pourraient être appliquées à une grande variété d'architectures techniques, et il existe de nombreuses conceptions possibles que l'un ou l'autre terme pourrait être utilisé pour décrire.

Je suis très fortement en faveur d'une architecture où toute la logique de transformation et métier peut être intégrée dans une base de code plus ou moins homogène, et j'ai fait beaucoup de systèmes où la logique de transformation était assez complexe. Cela avait tendance à simplement utiliser l'outil ETL pour atterrir les données, puis toute la transformation a été effectuée dans des procédures stockées. On pourrait peut-être décrire cela comme ETL ou ELT, la différence étant simplement une question de sémantique.

Cependant, certains outils sont très centrés sur les bases de données (Oracle Data Integrator, par exemple, est souvent appelé outil ELT). Si vous vous abonnez à cette vue, alors "Extraire" et "Charger" se produisent avant que les données ne soient transformées lors de leur atterrissage dans une zone de transit, puis compressées par du code SQL ou PL/SQL (qui peut être généré par l'outil ou manuscrite). Plusieurs personnes à qui j'ai parlé semblent considérer le principal mérite de l'ODI car ce n'est pas OWB.

Si vous utilisez un outil côté client tel qu'Informatica Powercentre ou MS SQL Server Integration Services, l'outil peut effectuer une transformation approfondie du côté client des données. Certains outils ETL, tels que Ascential Datastage et Ab Initio sont conçus pour faire beaucoup de travail avec des fichiers plats et des structures de données en mémoire pour plus de vitesse. Dans ce type d'architecture, la transformation a déjà été effectuée avant son chargement. Peut-être que ce type d'architecture pourrait être définitivement classé comme "ETL", même si j'ai vu de nombreux projets axés sur les outils où tout le travail réel est effectué par un tas de code de procédure stockée.

Il y a des avantages à divers outils et approches architecturales, mais on ne peut pas faire une déclaration générale sur les mérites des approches 'ETL' contre 'ELT' parce que les termes sont si larges que la différence n'a presque aucun sens. Certains outils et architectures peuvent avoir des avantages spécifiques - par exemple, l'utilisation intensive de fichiers plats par Ab Initio lui confère un avantage de performances significatif sur de gros volumes de données.

Dans la pratique, faire la distinction entre "ETL" et "ELT" n'a pas beaucoup de sens sans entrer dans une discussion beaucoup plus approfondie sur les exigences du système, la plate-forme et l'architecture technique.

C'est aussi une question d'argent. Lorsque les volumes de données sont élevés comme vous le signalez, les solutions basées sur des fichiers plats comme Ab Initio et DataStage Parallel Extender sont en effet plus rapides, mais peuvent être des propositions à six chiffres de moyenne à élevée. IRI CoSort est très axé sur ETL (selon leur comparaison ELT), et la seule façon abordable que j'ai vue pour traiter le volume de transformation avec la vitesse du système de fichiers, à l'exception d'une implémentation Hadoop complexe. Je pense également que le fait de jeter du matériel sur le problème en général (ce que font également les appliances ELT et les bases de données en mémoire), n'est pas aussi évolutif en termes de coûts.

1
Suraj Singh