ODBC-Flusskomponenten

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

In diesem Artikel werden die erforderlichen Konzepte zum Erstellen eines ODBC-Datenflusses mit SQL Server 2019 Integration Services (SSIS) beschrieben.

Der Connector für Open Database Connectivity (ODBC) für SQL Server 2019 Integration Services (SSIS) ermöglicht SSIS-Entwickler*innen ein einfaches Erstellen von Paketen, mit denen Daten aus Datenbanken mit ODBC-Unterstützung geladen bzw. entladen werden.

Der ODBC-Connector ist auf optimale Leistung beim Laden bzw. Entladen von Daten in eine bzw. aus einer Datenbank mit ODBC-Unterstützung im Zusammenhang mit SQL Server 2019 Integration Services (SSIS) ausgelegt.

Vorteile

Die ODBC-Quelle und das ODBC-Ziel für SQL Server 2019 Integration Services (SSIS) bieten für SSIS einen Wettbewerbsvorteil in Projekten, die sich mit dem Laden bzw. Entladen von Daten in Datenbanken mit ODBC-Unterstützung befassen.

Sowohl für die ODBC-Quelle als auch für das ODBC-Ziel ist eine Datenintegration in Datenbanken mit ODBC-Aktivierung bei hoher Leistung möglich. Beide Komponenten können für die Verwendung mit Zeile-für-Zeile-Parameterarraybindungen für ODBC-Anbieter mit hoher Leistung konfiguriert werden, die diesen Bindungsmodus unterstützen, sowie für die Verwendung mit Einzelzeilen-Parameterbindungen für ODBC-Anbieter mit niedriger Leistung.

Erste Schritte mit der ODBC-Quelle und dem ODBC-Ziel

Bevor Sie Pakete einrichten können, die SQL Server 2019 Integration Services (SSIS) verwenden, müssen Sie die Verfügbarkeit der folgenden Elemente sicherstellen.

Die ODBC-Quelle und das ODBC-Ziel stellen eine einfache Möglichkeit dar, Daten zu entladen und zu laden und aus einer Quelldatenbank mit ODBC-Unterstützung in eine Zieldatenbank mit ODBC-Unterstützung zu übertragen.

Um die Quelle oder das Ziel zum Laden oder Entladen von Daten zu verwenden, öffnen Sie ein neues SQL Server 2019 Integration Services-Projekt (SSIS) in SQL Server Data Tools. Ziehen Sie dann die Quelle oder das Ziel auf die Entwurfsoberfläche von SQL Server Data Tools.

  • Die ODBC-Quellkomponente liest Daten aus der Quelldatenbank mit ODBC-Unterstützung.

Sie können die ODBC-Quelle mit jedem Ziel oder jeder von SSIS unterstützten Transformationskomponente verbinden.

Weitere Informationen:

ODBC-Quelle

Quellen-Editor für ODBC (Seite Verbindungs-Manager)

Quellen-Editor für ODBC (Seite Fehlerausgabe)

  • Das ODBC-Ziel lädt Daten in eine Datenbank mit ODBC-Unterstützung. Sie können das Ziel mit jeder Quelle oder jeder von SSIS unterstützten Transformationskomponente verbinden.

Weitere Informationen:

ODBC-Ziel

Ziel-Editor für ODBC (Verbindungs-Manager-Seite)

Ziel-Editor für ODBC (Seite "Fehlerausgabe")

Betriebsszenarien

In diesem Abschnitt werden einige Hauptverwendungsarten von ODBC-Quell- und -Zielkomponenten beschrieben.

Massenkopieren von Daten aus SQL Server-Tabellen in beliebige Datenbanktabellen mit ODBC-Unterstützung

Sie können die Komponenten verwenden, um für Daten Massenkopieren aus einer oder mehreren SQL Server-Tabellen in eine einzelne Datenbanktabelle mit ODBC-Unterstützung durchzuführen.

Im folgenden Beispiel wird gezeigt, wie Sie einen SSIS-Datenflusstask erstellen, mit dem Daten aus einer SQL Server-Tabelle extrahiert und in eine DB2-Tabelle geladen werden.

  • Erstellen Sie ein SQL Server 2019 Integration Services-Projekt (SSIS) in SQL Server Data Tools.

  • Erstellen Sie einen OLE DB-Verbindungs-Manager, der eine Verbindung mit der SQL Server-Datenbank herstellt, in der die zu kopierenden Daten enthalten sind.

  • Erstellen Sie einen ODBC-Verbindungs-Manager, der einen lokal installierten DB2 ODBC-Treiber mit einem DSN verwendet, der auf eine lokale DB2-Datenbank oder DB2-Remotedatenbank verweist. In diese Datenbank werden die Daten aus der SQL Server-Datenbank geladen.

  • Ziehen Sie eine OLE DB-Quelle auf die Entwurfsoberfläche. Konfigurieren Sie dann die Quelle, um die Daten aus der SQL Server-Datenbank und der Tabelle mit den Daten abzurufen, die Sie extrahieren möchten. Verwenden Sie den OLE DB-Verbindungs-Manager, den Sie zuvor erstellt haben.

  • Ziehen Sie ein ODBC-Ziel auf die Entwurfsoberfläche, verbinden Sie die Quellausgabe mit dem ODBC-Ziel, und konfigurieren Sie dann das Ziel, um die Daten in die DB2-Tabelle mit den Daten zu laden, die Sie aus der SQL Server-Datenbank extrahieren. Verwenden Sie den ODBC-Verbindungs-Manager, den Sie zuvor erstellt haben.

Massenkopieren von Daten aus Datenbanktabellen mit ODBC-Unterstützung in beliebige SQL Server-Tabellen

Sie können die Komponenten verwenden, um für Daten Massenkopieren aus einer oder mehreren Datenbanktabellen mit ODBC-Unterstützung in eine einzelne SQL Server-Datenbanktabelle durchzuführen.

Im folgenden Beispiel wird gezeigt, wie Sie einen SSIS-Datenflusstask erstellen, bei dem Daten aus einer Sybase-Datenbanktabelle extrahiert und in eine SQL Server-Datenbanktabelle geladen werden.

  • Erstellen Sie ein SQL Server 2019 Integration Services-Projekt (SSIS) in SQL Server Data Tools.

  • Erstellen Sie einen ODBC-Verbindungs-Manager, der einen lokal installierten Sybase ODBC-Treiber mit einem DSN verwendet, der auf eine lokale Sybase-Datenbank oder Sybase-Remotedatenbank verweist. Die Daten werden in diese Datenbank extrahiert.

  • Erstellen Sie einen OLE DB-Verbindungs-Manager, der eine Verbindung mit der SQL Server-Datenbank herstellt, in die Sie die Daten laden möchten.

  • Ziehen Sie eine ODBC-Quelle in die Entwurfsoberfläche. Konfigurieren Sie anschließend die Quelle, um die zu kopierenden Daten aus der entsprechenden Sybase-Tabelle abzurufen. Verwenden Sie den ODBC-Verbindungs-Manager, den Sie zuvor erstellt haben.

  • Ziehen Sie ein OLE DB-Ziel auf die Entwurfsoberfläche, verbinden Sie die Quellausgabe mit dem OLE DB-Ziel, und konfigurieren Sie dann das Ziel, um die Daten in die SQL Server-Tabelle mit den Daten zu laden, die Sie aus der Sybase-Datenbank extrahieren. Verwenden Sie den OLE DB-Verbindungs-Manager, den Sie zuvor erstellt haben.

Unterstützte Datentypen

Die SSIS-Komponenten für ODBC-Massenvorgänge unterstützen alle integrierten ODBC-Datentypen sowie große Objekte (CLOBs und BLOBs).

Es ist keine Datentypunterstützung für erweiterbare C-Typen vorhanden, die in der ODBC 3.8-Spezifikation beschrieben werden.In der folgenden Tabelle wird beschrieben, welche SSIS-Datentypen für die einzelnen ODBC-SQL-Typen verwendet werden. Ein SSIS-Entwickler kann die Standardzuordnung überschreiben und einen anderen SSIS-Datentyp für Eingabe-/Ausgabespalten angeben, ohne dass sich dies auf die Leistung für die erforderlichen Datenkonvertierungen auswirkt.

ODBC-SQL-Typ SSIS-Datentyp Kommentare
SQL_BIT DT_BOOL
SQL_TINYINT DT_I1

DT_UI1
SQL-Datentypen werden SSIS-Typen ohne Vorzeichen zugeordnet (DT_UI1, DT_UI2, DT_UI4, DT_UI8), wenn der ODBC-Treiber UNSIGNED_ATTRIBUTE für diesen SQL-Datentyp auf SQL_TRUE festlegt.
SQL_SMALLINT DT_I2

DT_UI2
SQL-Datentypen werden SSIS-Typen ohne Vorzeichen zugeordnet (DT_UI1, DT_UI2, DT_UI4, DT_UI8), wenn der ODBC-Treiber UNSIGNED_ATTRIBUTE für diesen SQL-Datentyp auf SQL_TRUE festlegt.
SQL_INTEGER DT_I4

DTUI4
SQL-Datentypen werden SSIS-Typen ohne Vorzeichen zugeordnet (DT_UI1, DT_UI2, DT_UI4, DT_UI8), wenn der ODBC-Treiber UNSIGNED_ATTRIBUTE für diesen SQL-Datentyp auf SQL_TRUE festlegt.
SQL_BIGINT DT_I8

DT_UI8
SQL-Datentypen werden SSIS-Typen ohne Vorzeichen zugeordnet (DT_UI1, DT_UI2, DT_UI4, DT_UI8), wenn der ODBC-Treiber UNSIGNED_ATTRIBUTE für diesen SQL-Datentyp auf SQL_TRUE festlegt.
SQL_DOUBLE DT_R8
SQL_FLOAT DT_R8
SQL_REAL DT_R4
SQL_NUMERIC (p,s) DT_NUMERIC (p,s) Der numerische Datentyp wird DT_NUMERIC zugeordnet, wenn Folgendes gilt: P ist größer oder gleich 38, S ist größer oder gleich 0 und S ist kleiner oder gleich P.
DT_R8 Der numerische Datentyp wird DT_R8 zugeordnet, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

Genauigkeit ist größer als 38

Skalierung ist kleiner als 0 (null)

Skalierung ist größer als 38

Skalierung ist größer als Genauigkeit
DT_CY Der numerische Datentyp wird DT_CY zugeordnet, wenn er als money-Datentyp deklariert wird.
SQL_DECIMAL (p,s) DT_NUMERIC (p,s) Der decimal-Datentyp wird DT_NUMERIC zugeordnet, wenn Folgendes gilt: P ist größer oder gleich 38, S ist größer oder gleich 0 und S ist kleiner oder gleich P.
DT_R8 Der decimal-Datentyp wird DT_R8 zugeordnet, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

Genauigkeit ist größer als 38

Skalierung ist kleiner als 0 (null)

Skalierung ist größer als 38

Skalierung ist größer als Genauigkeit
DT_CY Der decimal-Datentyp wird DT_CY zugeordnet, wenn er als money-Datentyp deklariert wird.
SQL_DATE

SQL_TYPE_DATE
DT_DBDATE
SQL_TIME

SQL_TYPE_TIME
DT_DBTIME
SQL_TIMESTAMP

SQL_TYPE_TIMESTAMP
DT_DBTIMESTAMP

DT_DBTIMESTAMP2
„SQL_TIMESTAMP“-Datentypen werden „DT_DBTIMESTAMP2“ zugeordnet, wenn die Skalierung größer als 3 ist. In allen anderen Fällen werden sie DT_DBTIMESTAMP zugeordnet.
SQL_CHAR

SQLVARCHAR
DT_STR

DT_WSTR

DT_TEXT

DT_NTEXT
DT_STR wird verwendet, wenn die Spaltenlänge kleiner oder gleich 8000 ist und die ExposeStringsAsUnicode -Eigenschaft den Wert „false“ aufweist.

DT_WSTR wird verwendet, wenn die Spaltenlänge kleiner oder gleich 8000 ist und die ExposeStringsAsUnicode -Eigenschaft den Wert „true“ aufweist.

DT_TEXT wird verwendet, wenn die Spaltenlänge größer als 8000 ist und die ExposeStringsAsUnicode -Eigenschaft den Wert „false“ aufweist.

DT_NTEXT wird verwendet, wenn die Spaltenlänge größer als 8000 ist und die ExposeStringsAsUnicode -Eigenschaft den Wert „true“ aufweist.
SQL_LONGVARCHAR DT_TEXT

DT_NTEXT
DT_NTEXT wird verwendet, wenn die ExposeStringsAsUnicode -Eigenschaft den Wert „true“ aufweist.
SQL_WCHAR

SQL_WVARCHAR
DT_WSTR

DT_NTEXT
DT_WSTR wird verwendet, wenn die Spaltenlänge kleiner oder gleich 4000 ist.

DT_NTEXT wird verwendet, wenn die Spaltenlänge größer als 4000 ist.
SQL_WLONGVARCHAR DT_NTEXT
SQL_BINARY DT_BYTE

DT_IMAGE
DT_BYTES wird verwendet, wenn die Spaltenlänge kleiner oder gleich 8000 ist.

DT_IMAGE wird verwendet, wenn die Spaltenlänge größer als 8000 ist.
SQL_LONGVARBINARY DT_IMAGE
SQL_GUID DT_GUID
SQL_INTERVAL_YEAR

SQL_INTERVAL_MONTH

SQL_INTERVAL_DAY

SQL_INTERVAL_HOUR

SQL_INTERVAL_MINUTE

SQL_INTERVAL_SECOND

SQL_INTERVAL_YEAR_TO_MONTH

SQL_INTERVAL_DAY_TO_HOUR

SQL_INTERVAL_DAY_TO_MINUTE

SQL_INTERVAL_DAY_TO_SECOND

SQL_INTERVAL_HOUR_TO_MINUTE

SQL_INTERVAL_HOUR_TO_SECOND

SQL_INTERVAL_MINUTE_TO_SECOND
DT_WSTR
Anbieterspezifische Datentypen DT_BYTES

DT_IMAGE
DT_BYTES wird verwendet, wenn die Spaltenlänge kleiner oder gleich 8000 ist.

DT_IMAGE wird verwendet, wenn die Spaltenlänge 0 (null) oder größer als 8000 ist.

In diesem Abschnitt