1

Ich löse derzeit diese Aufgabe: einige Daten sollten von AdventureWorks2012 zu Anchor-Modell-Tabellen auf dem gleichen Server in MsSQL gesendet werden. Das ist mein Anker-Modell Anchor modelWie senden Daten von OLE DB-Quelle zu Anchor-Modell Tabellen mit ETL-Prozedur?

Anchor Model diagram in MsSQL

An dieser Stelle ich ein ziemlich einfaches Integration Services-Projekt in Visual Studio und es sieht so aus. Kontrollfluss:
enter image description here Zum Beispiel Load_territories ist: ![enter image description here

Die wichtigste Voraussetzung ist, alle Tabellen von Anchor Modell Tabellen in MsSQL zu füllen, aber ich bin vor immer ein Problem: die Menge der Attribute in den Tabellen ist unterschiedlich und einige von ihnen wiederholen sich Bei diesem Bild in der zweiten Tabelle im Grunde TR_ID, TR_GRP_TR_ID, TR_TID_TR_ID, TR_TNM_TR_ID enthalten die gleichen Werte von dwh_key, aber es ist unmöglich, eine Eins-zu-viele-Beziehung zwischen Attributen zu erstellen. Mein Lehrer hat mir empfohlen Lookup zu verwenden, aber ich kann nicht herausfinden, wie sie in diesem Projekt umzusetzen enter image description here

+0

betrachten eine Antwort zu akzeptieren oder Feedback geben, warum es nicht Ihre Frage beantworten. – jangorecki

Antwort

1

Dies als Betrug angesehen werden kann, aber wenn Sie Daten in die aktuelle Ansicht einfügen, anstatt die einzelnen 6NF Tabellen alle Diese ID-Felder werden von der zugrunde liegenden Trigger-Logik gefüllt. Ich vermute, dass dies den Zweck der Verwendung von SSIS jedoch zunichte machen würde, da Sie Attribute tatsächlich sequenziell und nicht parallel laden würden.

Eine weitere Option besteht darin, die Ersatzschlüsselverwaltung dem ETL-Tool zu überlassen. Dies würde erfordern, dass Sie den Datentyp für Ihre Identitäten von Ganzzahlen auf GUID umstellen: s. SSIS kann dann eine GUID generieren und Sie können dann dieselbe GUID verwenden, um alle Attribute aufzufüllen. Beachten Sie, dass der Anker zuerst geladen werden muss oder Sie eine Fremdschlüsselverletzung erhalten.

Die am häufigsten verwendete Lösung besteht jedoch darin, die Ersatzschlüsselverwaltung der Datenbank zu überlassen (und Ganzzahlen zu verwenden). Sie würden einen Schritt ausführen, in dem Sie die Metadatenspalte im Anker mit der gewünschten Anzahl neuer Identitäten füllen, die erstellt werden sollen. Mit der Metadaten-Nummer können Sie dann die neu generierten Identitäten auswählen und diese in Ihren Datenfluss zusammenführen. Es spielt keine Rolle, welche Nummer welcher Zeile zugewiesen wird. Danach können alle Attribute parallel gefüllt werden, einschließlich ihrer ID-Spalten.

Natürlich, wenn dies für mehr als eine erste Ladung verwendet werden soll, müssten Sie auch Schritte hinzufügen, um zu erkennen, ob die Daten, die Sie laden, bereits bekannt sind oder nicht.

Ich kann auch empfehlen, die Video-Tutorial in diesem Blog-Eintrag verwiesen beobachten: https://clinthuijbers.wordpress.com/2013/06/14/ssis-anchor-modeling-example-tutorial/

Verwandte Themen