Passer

Les paradigmes ETL et ELT – Quelles sont les différences ?

2021-02-12-Matillion1

Traduit de l’article https://www.matillion.com/resources/blog/better-faster-smarter-elt-vs-etl avec l’aimable autorisation de Matillion

Date de publication originale – 29 décembre 2020

ELT? Est-ce une faute de frappe? C’est une réaction typique de nombreux professionnels des données familiers avec l’acronyme «ETL» lorsqu’ils rencontrent pour la première fois l’acronyme subtilement différent «ELT».

Ce que nous appelons traditionnellement les outils ETL (pour l’extraction, le chargement et la transformation) s’exécutent dans des entrepôts de données hébergés sur du matériel haut de gamme spécialisé dans le datacenter d’une entreprise. 

Depuis 2013, cependant, les entrepôts de données cloud ont fourni une puissance de calcul évolutive presque à l’infini. Ces ressources permettent aux entreprises de renoncer aux transformations pré-chargement et de répliquer les données brutes dans leurs entrepôts de données – l’extraction et le chargement en premier. Ensuite, ils peuvent transformer les données selon leurs besoins, dans le cloud, à l’aide du langage SQL. Avec des outils modernes, ETL devient en fait ELT. Cependant, de nombreuses personnes utilisent encore «ETL» pour désigner l’un ou l’autre type d’outil de données.

Donc non, «ELT» n’est pas une faute de frappe. Ce sont ces mêmes activités familières d’extraction, de transformation et de chargement, mais exécutées dans un ordre différent et plus efficace. La nouvelle commande tire parti des entrepôts de données cloud modernes – Snowflake, Amazon Redshift, Google BigQuery et Azure Synapse – ainsi que de la technologie Lakehouse utilisée dans Delta Lake sur Databricks. Si vous souhaitez utiliser davantage vos données pour prendre de meilleures décisions commerciales plus rapidement, l’ELT dans le cloud est la solution. 

Voyons pourquoi.

Qu’est-ce que le paradigme ETL? (Extraire, transformer et charger)

Tout d’abord, rappelons-nous exactement ce qu’est le paradigme ETL et pourquoi nous en avons besoin. ETL est la méthode traditionnelle pour extraire des données à partir de nombreuses plates-formes sources, transformer les données sur votre serveur ETL, puis charger les données transformées dans un entrepôt de données, où elles sont prêtes pour l’analyse et la visualisation.

La partie «Extraire» peut être relativement simple, s’il s’agit d’une seule source de données telle qu’une base de données ERP. Mais s’il s’agit d’une base de données ERP plus un certain nombre de lignes de systèmes d’entreprise ou de sources de données tierces externes, cela se complique rapidement. Que vous ayez une ou plusieurs sources, vous avez besoin de bons connecteurs pour extraire les données de votre source.

L’étape «Transformer» peut également varier en complexité. Il peut s’agir d’une dénormalisation simple des données normalisées contenues dans un ERP ou une base de données métier. Il peut également s’agir d’une tâche plus complexe, comme la conversion des unités de mesure en une base commune ou l’harmonisation des noms de clients. 

Enfin, il y a la tâche «Charger»: nous avons les données, nous les avons transformées, et maintenant elles vont dans l’entrepôt de données.

Que l’ETL soit simple ou plus compliqué, il est caractérisé par des activités d’I/O systèmes qui peuvent se retrouver assez intense, beaucoup de traitement de chaînes et de transformation de variables, et beaucoup d’analyse de données.

En d’autres termes, il est très gourmand en calcul.

Qu’est-ce que le paradigme ELT? (Extraire, Charger et Transformer)

Le paradigme ELT implique les mêmes activités que l’ETL, mais dans ce cas, les parties «E» et «L» de l’ELT sont effectuées en un seul mouvement directement vers la plate-forme de données cible. «Extract» fonctionne de la même manière avec ELT ou ETL. «Charger» est également le même, sauf que dans ELT, vous chargez des données dans votre cible avant de la transformer. Mais l’activité «Transformer» est très différente. Au lieu de transformer vos données dans votre moteur / serveur ETL, vous utilisez la puissance de votre entrepôt de données cloud pour traiter les données brutes que vous avez extraites et chargées.

ELT est également très gourmand en calcul. Mais cette activité à forte intensité de calcul se produit dans un environnement hautement puissant et évolutif – le cloud, plutôt que dans un serveur sur site qui a peut-être besoin de faire un compromis entre la transformation des données et la gestion des transactions.

Les entrepôts de données dans le cloud tels que Snowflake, Redshift, Google BigQuery et Azure Synapse sont des bases de données en colonnes, de sorte que les opérations d’indexation et d’emplacement d’enregistrement sont beaucoup plus rapides. Et ce sont également des bases de données massivement parallèles, de sorte que les transformations requises sont effectuées en parallèle, et non séquentiellement, avec plusieurs nœuds gérant plusieurs transformations en même temps.

Vous faites donc des activités intensives en calcul là où cela a du sens, de manière plus rapide et plus efficace. 

Avec ELT, vous “ extrayez “ les données du système source et les diffuser vers un stockage cloud intermédiaire, tel qu’Amazon S3 ou Google Cloud Storage avant de les “ charger “ dans la plate-forme de données cible (un entrepôt de données cloud comme Snowflake ou Delta Lake sur Databricks). Les données extraites transitent mais ne sont jamais conservées sur le disque. Vous facilitez les transformations en générant et en exécutant SQL approprié sur la base de données MPP cible.

ETL vs ELT: avantages et inconvénients

ETL

Le moteur ETL est une ressource de calcul et, en tant que tel, doit être suffisamment puissant pour gérer de grandes quantités de données à transformer. Mais «puissant» signifie souvent aussi cher!

Comme vous vous en doutez probablement, la charge de travail d’un ETL traditionnel présente certaines limites. À savoir, les environnements exécutant le logiciel ETL ne sont pas conçus pour évoluer de la même manière que les entrepôts de données cloud le font aujourd’hui. Par conséquent, lorsque les volumes de données augmentent et que les charges de travail deviennent plus complexes, ces environnements traditionnels consomment plus de ressources informatiques, créant des goulots d’étranglement dans la chaîne de données qui peuvent avoir un impact négatif sur vos rapports et vos analyses. Le pire résultat? Pertes d’adaptabilité et opportunités manquées causées par des décisions commerciales prises avec des données obsolètes, incomplètes ou inexactes. 

Cependant, tout n’est pas nécessairement noir. Si votre volume de données est prévisible, provient d’un nombre de sources bien connu et que vos transformations sont minimes, le paradigme ETL et une infrastructure sur site peuvent toujours être une stratégie rentable légitime. Cependant, pour la plupart des entreprises modernes, cela devient l’exception plutôt que la norme.

ELT

Un ELT contrairement à un ETL, extrait les données des systèmes sources, les charge directement et sans transformation préalable sous leur forme brute dans une plate-forme cible, puis vous permet de les transformer grâce à la base de données. Cela rend toutes les données accessibles et faciles à auditer.

Un ELT exploite la puissance de la plate-forme d’entreposage de données elle-même pour effectuer des transformations et obtenir les données dans un format prêt pour l’analyse. Un ELT applique toutes les transformations à l’entrepôt de données lui-même et signifie que vous n’avez besoin que d’une seule infrastructure puissante. Les progrès supplémentaires sur les bases de données relationnelles rendent la transformation de vos données dans la base de données plus facile, plus rapide et plus rentable. Cette conception se traduit par des économies sur l’infrastructure, des charges de travail plus performantes et des cycles de développement plus courts. Vos données sont rapidement migrées et immédiatement disponibles pour des transformations et des analyses en fonction des questions et des besoins actuels de l’entreprise.

Cela signifie également que vous n’avez pas besoin de savoir comment vous allez utiliser ces données dès le départ. Vous avez la liberté de transformer les données à un stade ultérieur une fois que son cas d’utilisation devient plus clair. Cette capacité est de plus en plus attrayante compte tenu de la nature changeante du développement avec la montée en puissance des méthodologies Agiles itératives. L’ELT peut donc être plus aligné sur l’état d’esprit technique actuel.

Alors ELT est la meilleure option?

La réponse à cette question n’est pas un simple «oui» ou «non». ELT a des obstacles que vous ne devriez pas ignorer.

Comme vos transformations sont effectuées dans la base de données, vous aurez besoin d’espace disponible et de puissance de calcul pour effectuer les transformations souhaitées. Sans une plate-forme adéquate, les performances et les requêtes en souffriront. Et obtenir cette plate-forme dans une architecture traditionnelle coûte vraiment cher, très rapidement. Les plateformes de données cloud telles que Snowflake, Amazon Redshift, Azure Synapse, Google BigQuery et Delta Lake ont non seulement une puissance et une évolutivité adéquates, mais elles sont également extrêmement rentables par rapport aux architectures on-premise hautes performances. 

Un autre problème dont nous entendons souvent parler est le processus rapide et laborieux d’écriture de scénario. Il ne s’agit pas seulement de charger des données, mais de les transformer. Cela s’applique particulièrement lorsqu’il s’agit de types de données inhabituels ou non structurés, ou lorsque l’accès n’est pas simplement basé sur des fichiers. Davantage de données, de sources de données et de sorties nécessaires peuvent rendre les transformations lourdes de code complexes et vulnérables aux erreurs humaines. Le script, l’exécution et la restauration peuvent prendre des jours ou des semaines dans les cas où des erreurs sont commises. Heureusement, il existe un certain nombre d’outils sur le marché qui rendent ce processus plus rapide et plus facile, comme Matillion.

ELT vs ETL: l’essentiel

Avec un ELT, vous bénéficiez à deux reprises de l’avantage de votre puissante base de données: pendant les transformations et pendant le traitement des requêtes. Votre choix d’utiliser ETL vs ELT doit être basé sur votre plate-forme cible. Les flux de travail ETL ont tendance à déclencher DDL (insertions / mises à jour / suppressions) pour chaque ligne traitée. Cela peut fonctionner correctement avec les bases de données traditionnelles, mais pas aussi bien avec les plates-formes MPP modernes qui sont optimisées en lecture mais généralement un peu lentes avec les écritures. ELT est sans doute un meilleur choix lorsqu’il s’agit de plates-formes MPP modernes en raison des gains de performances qu’il offre.

De plus, un ELT offre généralement un coût d’entrée plus bas. Mettre en place des activités intensives en calcul dans Big Iron a toujours été considéré comme judicieux, pour ceux qui pouvaient se permettre le prix d’un gros ordinateur central ou d’un serveur haut de gamme. Mais aujourd’hui, ce Big Iron est accessible à toute entreprise avec le prix d’un abonnement mensuel abordable sur le Cloud. De même, des bases de données en colonnes massivement parallèles existent depuis des années. Mais ces offres étaient sur place et coûteuses, avec un point d’entrée libellé en centaines de milliers de dollars. Aujourd’hui encore, les entrepôts de données dans le cloud rendent les MPP accessibles à toute entreprise au prix d’un abonnement mensuel à faible coût.

Matillion ETL – ou est-ce ELT ?

Chez Matillion, nous pensons que le paradigme ELT a beaucoup de sens. Matillion ETL est un outil d’intégration de données spécialement conçu pour Snowflake, Amazon Redshift, Google BigQuery, Azure Synapse et Delta Lake sur Databricks. Nous appelons le produit Matillion ETL puisque «ETL» est plus communément connu, Matillion est en fait un produit ELT. En suivant une approche ELT, Matillion charge les données sources directement dans votre base de données, ce qui vous permet de transformer et de préparer les données pour l’analyse en utilisant la puissance de votre architecture de données cloud.