Nachdem ich einige Zeit mit Data Warehousing gearbeitet habe, habe ich sowohl ETL (Extract Transform Load) als auch ELT (Extract Load Transform) Prozesse erstellt. Es scheint, dass ELT ein neuerer Ansatz zur Bestückung von Data Warehouses ist, der Cluster-Computing-Ressourcen leichter nutzen kann. Ich würde gerne hören, was andere Leute denken, dass die Vorteile von ETL und ELT übereinander sind und wenn Sie das eine oder andere verwenden sollten.Was ist besser, ETL oder ELT?
Antwort
Nachdem ich gründlich mit ETL und ELT gespielt habe, bin ich zu dem Schluss gekommen, dass man ELT um jeden Preis vermeiden sollte. ETL bereitet die Daten für Ihr Lagerhaus vor, bevor Sie es tatsächlich laden. ELT lädt die Rohdaten jedoch in das Lager und Sie transformieren es an Ort und Stelle. Das ist problematisch, wenn Sie ein ausgelastetes Data Warehouse haben. Wenn eine Berichtsabfrage in einer Tabelle ausgeführt wird, die Sie aktualisieren möchten, wird Ihre Abfrage blockiert. Folglich ist es möglich, dass Berichtsabfragen Aktualisierungen verzögern oder blockieren.
Nun könnten einige von Ihnen sagen, dass Berichtsabfragen kein Update blockieren müssen, und Sie können Ihre Isolationsstufe so einstellen, dass fehlerhafte Lesevorgänge zugelassen werden. Berichtsabfragen werden jedoch in der Regel nicht von Softwareentwicklern ausgeführt. Sie werden von Geschäftsanwendern ausgeführt, sodass Sie sich nicht darauf verlassen können, dass sie ihre Isolationsstufen richtig festlegen. Außerdem können nicht alle Berichte schmutzige Lesevorgänge tolerieren.
Es gibt Fälle, in denen ELT jedoch funktionieren kann, indem es in Ihr Data Warehouse eingeführt wird, ist gefährlich und folglich empfehle ich für Ihre Vernunft und für Wartbarkeit, es zu vermeiden.
Ich benutze beide. Es ist einfach eine Frage der Bequemlichkeit und Funktionalität. Es kommt auf den Fall an. Manchmal mache ich TEL - d. H. Die Transformation wird in der Quelldatenbank (in einer gespeicherten Prozedur oder Ansicht) durchgeführt und dann extrahiert und direkt geladen.
Was besser ist, ist schwer zu beantworten - hängt vom Problem ab.
Ich bevorzuge mehrstufige ETL - ECCD (Extract, Clean, Conform, Deliver) wann immer möglich. Ich behalte auch mittlere CSV-Dateien nach jedem Extrakt, sauber und konform Schritt; benötigt etwas Speicherplatz, ist aber sehr nützlich. Wenn DW aufgrund von Fehlern in ETL oder DW-Schema-Änderungen neu geladen werden muss, müssen Quellsysteme nicht erneut abgefragt werden - sie befinden sich bereits in flachen Dateien. Es ist auch sehr praktisch, grep, sed und awk durch flache Dateien im Staging-Bereich, wenn nötig. Wenn es mehrere Quellsysteme gibt, die in das gleiche DW einspeisen, müssen nur Extraktionsschritte für jedes der Quellsysteme entwickelt (und beibehalten) werden - alle Schritte sind sauber, konform und liefern.
Ich bevorzuge ELT. Man kann sagen, dass es gegen die Norm ist. Es erfordert einen Wechsel in Mentalität und Designansatz gegenüber traditionellen Methoden. Aber es nutzt existierende Hardware und Fähigkeiten, was die Kosten und Risiken im Entwicklungsprozess weiter reduziert.
Wenn wir die referenzielle Integrität im ETL-Ansatz sicherstellen möchten, müssen Daten vom Ziel zum ETL-Server (Engine) heruntergeladen werden. Aber wir müssen es nicht im ETL-Ansatz tun.
Um das Beste aus einem ELT-Ansatz zu erhalten, ist ein offenes Ohr erforderlich.
Ich stimme damit nicht überein. Ich denke, es gibt einen Platz für beide Ansätze. Ich persönlich bevorzuge ELT, wenn die Situation es erlaubt. Die meisten Data Warehouses werden nachts während ihrer Wartungsfenster geladen ... und wenn Sie sich auf Data Warehouses in einer Follow-the-Sun-Umgebung beziehen, werden Sie auf Probleme stoßen, unabhängig davon, mit welcher Vorgehensweise Sie gehen wenig kreativ). Ich finde, ich habe mehr Kontrolle mit ELT .. ganz zu schweigen von Ihrer Fähigkeit, Rohdaten für Archivzwecke zu behalten. –
Noch eine Sache, die ich hinzufügen wollte ...Ich denke, ELT benötigt erfahrenere Datenbank/SQL-Ressourcen, um es zu verwalten, da ein Großteil der Arbeit in der Datenbank stattfindet. Dies ist auf Umwegen eine ähnliche Frage wie die Anwendung vs Datenbank Frage ... http://stackoverflow.com/questions/119540/business-logic-database-oder-application-layer –
Es gibt keine richtige Antwort .. .. –