ETL für Faulpelze Einführung in Biml für SSIS Organizer 11.06.2016 SQLSaturday Rheinland 2016 Bronze Sponsor 11.06.2016 SQLSaturday Rheinland 2016 Silver Sponsor 11.06.2016 SQLSaturday Rheinland 2016 Gold Sponsor 11.06.2016 SQLSaturday Rheinland 2016 Save the date! 8. October 2016 – New Microsoft Office 11.06.2016 SQLSaturday Rheinland 2016 Save the date! 8. October 2016 – New Microsoft Office 11.06.2016 SQLSaturday Rheinland 2016 Wer ist heute hier? DBA? DEV? Management? Sonstige? SSIS User? Biml Erfahrungen? 11.06.2016 SQLSaturday Rheinland 2016 Wer bin ich? Ben Weissman, Solisyon, Nürnberg @bweissman [email protected] SQL Server seit Version 6.5 Zu blöd für C# Ausgangssituation DTSX Pakete Quelle Was wir haben Staging Umgebung Was wir wollen (möglichst automatisiert) Was ist eigentlich Biml? Biml ist eine Markup Sprache – also: XML Erfunden/Entwickelt von Varigence So sieht Biml aus: <Biml xmlns="http://schemas.varigence.com/biml.xsd"> <Packages> <Package Name="HelloBiml"/> </Packages> </Biml> Wird erst in Verbindung mit BimlScript/APIs mächtig Kann neben SSIS auch für T-SQL und SSAS genutzt werden Verschiedenste Frontends Das heißt so viel, wie…? Kompatibilität zwischen SQL Versionen wird belanglos Gesteigerte Produktivität durch Zeitersparnis bei “dummen” Datenbeladungen – Suche nach Mustern! Je besser ein Task standardisierbar ist (z.B. Beladung einer Staging Umgebung), desto höher der Zeitgewinn Basis Konstrukt Pakete Tabellen Schemata Datenbanken Verbindungen META DATEN Wie funktioniert das dann? Biml Code Biml Engine Ergebnis </> XML, BimlScript, C#, VB … SQL Server Tabellen, DTSX Pakete etc. Frontends Let‘s write some basic Biml… Demo Was ist nötig für ein echtes erstes Ergebnis? Auswahl eines Frontends Erstellen einer Zieldatenbank mit Steuertabellen Befüllen der Steuertabellen Welche Daten sollen von wo geladen werden? Erstellen einer Biml Lösung auf dieser Basis Wie steuern wir das? Im einfachsten Fall gibt es nur eine Steuertabelle: Tables Hier definieren wir einfach alle Tabellen (per Name), die wir importieren wollen Wie sieht diese Tabelle wirklich aus? Demo Schritt 1 – Verbindungs Meta Daten 01_Environment.biml Verbindungsdaten (statisch) META DATEN Schritt 1 – Verbindungs Meta Daten 01_Environment.biml Schritt 2 – Tabellen Meta Daten FOR EACH LOOP 02_BuildMeta.biml Tabellen META DATEN Schritt 2 – Tabellen Meta Daten 02_BuildMeta.biml Schritt 3 – Erstellen der Staging Tabellen FOR EACH LOOP 03_BuildStaging.biml Erstellen der Staging Tabellen Schritt 3 – Erstellen der Staging Tabellen 03_BuildStaging.biml Schritt 4 – Befüllen der Staging Tabellen FOR EACH LOOP 04_PopulateStaging.biml Schritt 4 – Befüllen der Staging Tabellen 04_PopulateStaging.biml Coding time – My Simple Biml! Zeit für eine richtige Demo! Zusammenfassung Mit nur 1 Tabelle haben wir die Staging Umgebung erstellt und befüllt Sehr überschaubarer Code (< 80 Zeilen XML/BimlScript in 4 Dateien) Für einfache Tasks ist das ggf. schon sehr hilfreich Nicht sehr flexibel und, gerade bei großen Tabellen, viel Overhead Was kann man da machen? Wir brauchen etwas mehr Steuerinformationen Connections Aus welchen Quellen beziehen wir Daten? Tables Aus welchen Tabellen beziehen wir welche Spalten? Packages In welchen Unterpaketen wollen wir die Tabellen aufteilen? Schritt 1 – Verbindungs Meta Daten FOR EACH LOOP 01_Environment.biml Verbindungsdaten META DATEN Schritt 2 – Tabellen Meta Daten FOR EACH LOOP FOR EACH LOOP FOR EACH LOOP 02_BuildMeta.biml SELECT * SELECT col1, col2, … Tables META DATEN Schritt 3 – Erstellen der Staging Tabellen FOR EACH LOOP 03_BuildStaging.biml Erstellen der Staging Tabellen Schritt 4 – Befüllen der Staging Tabellen FOR EACH LOOP FOR EACH LOOP 04_PopulateStaging.biml / 05_PopulateTable.biml My Full Biml! Nun kommt die noch viel coolere Demo! Da muss doch noch mehr gehen? Index management „Housekeeping“ Inkrementelle Beladung / Erstellung Timestamps zu Dataloads hinzufügen Includes, Reference Scripts etc. nutzen um Redundanzen zu minimieren und Lesbarkeit zu erhöhen Reverse engineering von bestehendem DWH … Mehr? https://www.bimlscript.com/ http://www.sqlservercentral.com/stairway/100550/ http://www.cathrinewilhelmsen.net/biml/ http://sqlblog.com/blogs/andy_leonard/ http://Biml-Blog.de Gibt es noch… Fragen?
© Copyright 2024 ExpyDoc