Laden von Daten mit Integration Services in Parallel Data Warehouse
Stellt Referenz- und Bereitstellungsinformationen zum Laden von Daten in SQL Server Parallel Data Warehouse mithilfe von SQL Server Integration Services (SSIS)-Paketen bereit.
Grundlagen
Integration Services ist die Komponente von SQL Server für high-performance extraction, transformation, and loading (ETL) von Daten und wird häufig verwendet, um ein Data Warehouse aufzufüllen und zu aktualisieren.
Der PDW-Zieladapter ist eine Integration Services-Komponente, mit der Sie Daten mithilfe von Integration Services dtsx-Paketen in PDW laden können. In einem Paketworkflow für das Analytics Platform System (PDW) können Sie Daten aus mehreren Quellen laden und zusammenführen und Daten an mehrere Ziele laden. Die Ladevorgänge erfolgen parallel innerhalb eines Pakets und unter mehreren gleichzeitig ausgeführten Paketen, bis zu einem Maximum von 10 in der gleichen Anwendung parallel ausgeführten Ladevorgängen.
Zusätzlich zu den in diesem Thema beschriebenen Aufgaben können Sie andere Features von Integration Services verwenden, um Ihre Daten zu filtern, zu transformieren, zu analysieren und zu bereinigen, bevor Sie sie in das Data Warehouse laden. Sie können auch den Workflow des Pakets verbessern, indem Sie SQL-Anweisungen ausführen, untergeordnete Pakete ausführen oder E-Mails versenden.
Vollständige Dokumentation zu Integration Services finden Sie unter SQL Server Integration Services.
Methoden zum Ausführen eines Integration Services-Pakets
Verwenden Sie eine dieser Methoden, um ein Integration Services-Paket auszuführen.
Ausführen von SQL Server 2008 R2 Business Intelligence Development Studio (BIDS)
Wenn Sie das Paket in BIDS ausführen möchten, klicken Sie mit der rechten Maustaste auf Ihr Paket, und wählen Sie "Paket ausführen" aus.
Standardmäßig führt BIDS Pakete mit 64-Bit-Binärdateien aus. Dies wird durch die Run64BitRuntime-Paketeigenschaft bestimmt. Um diese Eigenschaft festzulegen, wechseln Sie zu Projektmappen-Explorer, klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie "Eigenschaften" aus. Wechseln Sie auf den Eigenschaftenseiten von Integration Services zu Konfigurationseigenschaften, und wählen Sie "Debuggen" aus. Die Run64BitRuntime-Eigenschaft wird unter den Debugoptionen angezeigt. Wenn Sie 32-Bit-Laufzeiten verwenden möchten, legen Sie dies auf "False" fest. Wenn Sie 64-Bit-Laufzeiten verwenden möchten, legen Sie dies auf "True" fest.
Ausführen von SQL Server 2012 SQL Server Data Tools
Wenn Sie das Paket in SQL Server Data Tools ausführen möchten, klicken Sie mit der rechten Maustaste auf Das Paket, und wählen Sie "Paket ausführen" aus.
Ausführen von PowerShell
Um das Paket über Windows PowerShell auszuführen, verwenden Sie das dtexec-Hilfsprogramm : dtexec /FILE <packagePath>
Beispiel: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Ausführen über eine Windows-Eingabeaufforderung
Um das Paket über eine Windows-Eingabeaufforderung auszuführen, verwenden Sie das dtexec-Hilfsprogramm : dtexec /FILE <packagePath>
Beispiel: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Datentypen
Wenn Integration Services zum Laden von Daten aus einer Datenquelle in eine SQL Server-PDW-Datenbank verwendet wird, werden die Daten zuerst aus den Quelldaten zu Integration Services-Datentypen zugeordnet. Dies ermöglicht die Zuordnung von Daten aus mehreren Datenquellen zu einem allgemeinen Satz von Datentypen.
Anschließend werden die Daten von Integration Services zu SQL Server PDW-Datentypen zugeordnet. In der folgenden Tabelle sind für jeden SQL Server-PDW-Datentyp die Integration Services-Datentypen aufgeführt, die in den SQL Server PDW-Datentyp konvertiert werden können.
PDW-Datentyp | Integration Services-Datentypen, die dem PDW-Datentyp zugeordnet sind |
---|---|
BIT | DT_BOOL |
BIGINT | DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4 |
CHAR | DT_STR |
DATE | DT_DBDATE |
DATETIME | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIME2 | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIMEOFFSET | DT_WSTR |
DECIMAL | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
FLOAT | DT_R4, DT_R8 |
INT | DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2 |
MONEY | DT_CY |
NCHAR | DT_WSTR |
NUMERIC | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
NVARCHAR | DT_WSTR, DT_STR |
real | DT_R4 |
SMALLDATETIME | DT_DBTIMESTAMP2 |
SMALLINT | DT_I1, DT_I2, DT_UI1 |
SMALLMONEY | DT_R4 |
TIME | DT_WSTR |
TINYINT | DT_I1 |
VARBINARY | DT_BYTES |
VARCHAR | DT_STR |
Eingeschränkte Unterstützung für die Genauigkeit von Datentypen
PDW generiert einen Überprüfungsfehler, wenn Sie eine DT_NUMERIC oder DT_DECIMAL Eingabespalte zuordnen, die einen Wert mit einer Genauigkeit von mehr als 28 enthält.
Nicht unterstützte Datentypen
SQL Server PDW unterstützt die folgenden Integration Services-Datentypen nicht:
DT_DBTIMESTAMPOFFSET
DT_DBTIME2
DT_GUID
DT_IMAGE
DT_NTEXT
DT_TEXT
Um Spalten, die Daten dieser Typen enthalten, in SQL Server PDW zu laden, müssen Sie eine Datenkonvertierung im Datenfluss vorgelagert hinzufügen, um die Daten in einen kompatiblen Datentyp zu konvertieren.
Berechtigungen
Zum Ausführen eines Integration Services-Ladepakets benötigen Sie Folgendes:
LOAD-Berechtigung für die Datenbank.
Anwendbare INSERT-, UPDATE-, DELETE-Berechtigungen für die Zieltabelle.
Wenn eine Stagingdatenbank verwendet wird, erstellen Sie die BERECHTIGUNG für die Stagingdatenbank. Dies dient zum Erstellen einer temporären Tabelle.
Wenn keine Stagingdatenbank verwendet wird, erstellen Sie die BERECHTIGUNG für die Zieldatenbank. Dies dient zum Erstellen einer temporären Tabelle.
Allgemeine Hinweise
Wenn ein Integration Services-Paket mehrere SQL Server-PDW-Ziele ausführt und eine der Verbindungen beendet wird, beendet Integration Services das Pushen von Daten an alle SQL Server-PDW-Ziele.
Einschränkungen
Bei einem Integration Services-Paket ist die Anzahl der SQL Server-PDW-Ziele für dieselbe Datenquelle durch die maximale Anzahl aktiver Lasten begrenzt. Das Maximum ist vorkonfiguriert und kann nicht vom Benutzer konfiguriert werden.
Jedes Integration Services-Paketziel für dieselbe Datenquelle zählt beim Ausführen des Pakets als eine Last. Angenommen die maximale Anzahl aktiver Ladevorgänge ist z. B. 10. Das Paket wird nicht ausgeführt, wenn versucht wird, 11 oder mehr Ziele für dieselbe Datenquelle zu öffnen.
Mehrere Pakete können gleichzeitig ausgeführt werden, solange jedes Paket nicht mehr als die maximalen aktiven Lasten verwendet. Wenn die maximale Anzahl aktiver Ladevorgänge beispielsweise 10 beträgt, können Sie zwei Pakete mit je 10 Zielen gleichzeitig ausführen. Ein Paket wird ausgeführt während das andere in der Warteschlange steht.
Wenn die Anzahl der Ladevorgänge in der Ladewarteschlange die maximal in die Warteschlange gestellten Lasten überschreitet, wird das Paket nicht ausgeführt. Wenn die maximale Anzahl von Lasten beispielsweise 10 pro Appliance beträgt und die maximale Anzahl von in die Warteschlange gestellten Lasten 40 pro Appliance beträgt, können Sie gleichzeitig fünf Integrationsdienstepakete ausführen, die jeweils 10 Ziele öffnen. Wenn Sie versuchen, ein sechstes Paket auszuführen, wird es nicht ausgeführt.
Wichtig
Die Verwendung einer OLE DB-Datenquelle in SSIS mit dem PDW-Zieladapter kann zu Datenbeschädigungen führen, wenn die Quelltabelle Zeichen- und Varcharspalten mit SQL-Sortierungen enthält. Es wird empfohlen, eine ADO.NET Quelle zu verwenden, wenn die Quelltabelle Zeichen- oder Varcharspalten mit SQL-Sortierungen enthält.
Sperrverhalten
Beim Laden von Daten mit Integration Services verwendet das Analytics Platform System (PDW) Zeilenebenensperren, um Daten in der Zieltabelle zu aktualisieren. Dies bedeutet, dass jede Zeile für Lese- und Schreibzugriff gesperrt ist, während sie aktualisiert wird. Die Zeilen in der Zieltabelle sind nicht gesperrt, während die Daten in die Stagingtabelle geladen werden.
Beispiele
A. Einfaches Laden aus flacher Datei
Die folgende exemplarische Vorgehensweise veranschaulicht ein einfaches Laden von Daten mithilfe von Integration Services zum Laden von Flachdateidaten in eine SQL Server-PDW-Appliance. In diesem Beispiel wird davon ausgegangen, dass Integration Services bereits auf dem Clientcomputer installiert wurde und das SQL Server-PDW-Ziel wie oben beschrieben installiert wurde.
In diesem Beispiel wird in die Orders
Tabelle geladen, die die folgende DDL enthält. Die Orders
Tabelle ist Teil der LoadExampleDB
Datenbank.
CREATE TABLE LoadExampleDB.dbo.Orders (
id INT,
city varchar(25),
lastUpdateDate DATE,
orderDate DATE)
;
Hier sind die Ladedaten:
id city lastUpdateDate orderdate
--------- -------------- ------------------ ----------
1 Seattle 2010-05-01 2010-01-01
2 Denver 2002-06-25 1999-01-02
Erstellen Sie in Vorbereitung auf die Last die Flat-Datei exampleLoad.txt
, die die Ladedaten enthält:
id,city,lastUpdateDate,orderDate
1,Seattle,2010-05-01,2010-01-01
2,Denver,2002-06-25,1999-01-02
Erstellen Sie zunächst ein Integration Services-Paket, indem Sie die folgenden Schritte ausführen:
Wählen Sie in SQL Server Data Tools (SSDT) "Datei", "Neu" und dann "Project" aus. Wählen Sie "Integration Services Project " aus den aufgelisteten Optionen aus. Benennen Sie dieses Projekt
ExampleLoad
, und klicken Sie auf 'OK'.Klicken Sie auf die Registerkarte "Steuerungsfluss", und ziehen Sie dann die Datenfluss Aufgabe aus der Toolbox in den Bereich "Steuerungsfluss".
Klicken Sie auf die Registerkarte Datenfluss, und ziehen Sie dann die Dateiquelle aus der Toolbox in den Bereich Datenfluss. Doppelklicken Sie auf das soeben erstellte Feld, um den Dateiquell-Editor für Flache Dateien zu öffnen.
Klicken Sie auf Verbindungs-Manager und dann auf "Neu".
Geben Sie im Feld "Name des Verbindungs-Managers" einen Anzeigenamen für die Verbindung ein. In diesem Beispiel
Example Load Flat File CM
.Klicken Sie auf "Durchsuchen", und wählen Sie die
ExampleLoad.txt
Datei auf dem lokalen Computer aus.Da die Flache Datei eine Zeile mit Spaltennamen enthält, klicken Sie im ersten Datenzeilenfeld auf die Spaltennamen.
Klicken Sie in der linken Spalte auf "Spalten ", und zeigen Sie eine Vorschau der Daten an, die geladen werden, um sicherzustellen, dass die Spaltennamen und Daten richtig interpretiert wurden.
Klicken Sie in der linken Spalte auf "Erweitert" . Klicken Sie auf jeden Spaltennamen, um den Datentyp zu überprüfen, der den Daten zugeordnet wurde. Der Typ ändert sich im Feld, sodass die Datentypen der geladenen Daten mit den Zielspaltentypen kompatibel sind.
Klicken Sie auf "OK ", um den Verbindungs-Manager zu speichern.
Klicken Sie auf 'OK ', um den Editor für Die Dateiquelle zu beenden.
Geben Sie das Ziel für den Datenfluss an.
Ziehen Sie das SQL Server-PDW-Ziel aus der Toolbox in den bereich Datenfluss.
Doppelklicken Sie auf das soeben erstellte Feld, um den SQL Server PDW-Ziel-Editor zu laden.
Klicken Sie auf den Abwärtspfeil neben Verbindungs-Manager.
Wählen Sie " Neue Verbindung erstellen" aus.
Geben Sie die Informationen für die Server-, Benutzer-, Kennwort- und Zieldatenbank mit spezifischen Informationen für Ihre Appliance ein. (Beispiele sind unten dargestellt). Klicken Sie dann auf OK.
Für InfiniBand-Verbindungen: Servername: Geben Sie <appliance-name-SQLCTL01.17001> ein.
Für Ethernet-Verbindungen: Geben Sie die IP-Adresse des Steuerelementknotenclusters, Kommas, Port 17001 ein. Beispiel: 10.192.63.134.17001.
Benutzer
user1
:Kennwort:
password1
Zieldatenbank:
LoadExampleDB
Wählen Sie die Zieltabelle aus:
Orders
.Wählen Sie "Anfügen" als Lademodus aus, und klicken Sie auf "OK".
Geben Sie den Datenfluss von Quelle zu Ziel an.
Ziehen Sie im Bereich Datenfluss den grünen Pfeil aus dem Feld "Flache Dateiquelle" in das SQL Server-PDW-Zielfeld.
Doppelklicken Sie auf das SQL Server-PDW-Zielfeld , damit der SQL Server-PDW-Ziel-Editor erneut angezeigt wird. Die Spaltennamen aus der Flachdatei auf der linken Seite sollten unter "Nicht zugeordnete Eingabespalten" angezeigt werden. Die Spaltennamen aus der Zieltabelle auf der rechten Seite sollten unter "Nicht zugeordnete Zielspalten" angezeigt werden. Ordnen Sie die Spalten zu, indem Sie in den Listen "Nicht zugeordnete Eingabespalten" und "Nicht zugeordnete Zielspalten" auf die übereinstimmenden Spalten ziehen oder doppelklicken. Klicken Sie auf OK, um Ihre Einstellungen zu speichern.
Speichern Sie das Paket, indem Sie im Menü "Datei" auf "Speichern" klicken.
Führen Sie das Paket auf Ihrem Computer Integration Services aus.
Klicken Sie in den Integrationsdiensten Projektmappen-Explorer (rechte Spalte) mit der rechten Maustaste
Package.dtsx
, und wählen Sie "Ausführen" aus.Das Paket wird ausgeführt, und der Fortschritt sowie alle Fehler werden im Bereich "Fortschritt " angezeigt. Verwenden Sie einen SQL-Client, um die Last zu bestätigen oder die Last über die SQL Server PDW Admin Console zu überwachen.
Weitere Informationen
Erstellen einer Skriptaufgabe, die den SSIS PDW-Zieladapter verwendet
SQL Server Integration Services
Entwerfen und Implementieren von Paketen (IntegrationSdienste)
Lernprogramm: Erstellen eines Einfachen Pakets mithilfe eines Assistenten
Erste Schritte (Integrationsdienste)
Beispiel für dynamische Paketgenerierung
Entwerfen Ihrer SSIS-Pakete für Parallelismus (SQL Server Video)
Verbessern von inkrementellen Lasten mit Änderungsdatenerfassung
Transformation für langsam veränderliche Dimensionen
Masseneinfügungstask