Composants de flux ODBC

S’applique à :SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique décrit les concepts nécessaires pour créer un flux de données ODBC en utilisant SQL Server 2019 Integration Services (SSIS)

Le connecteur d’Open Database Connectivity (ODBC) pour SQL Server 2019 Integration Services (SSIS) aide les développeurs SSIS à créer facilement des packages qui chargent et déchargent des données dans des bases de données ODBC.

Le connecteur ODBC est conçu pour des performances optimales pendant le chargement ou le déchargement de données dans une base de données ODBC dans le contexte de SQL Server 2019 Integration Services (SSIS).

Avantages

La source ODBC et la destination ODBC pour SQL Server 2019 Integration Services (SSIS) fournissent un avantage concurrentiel à SSIS dans les projets impliquant le chargement ou le déchargement de données dans des bases de données ODBC.

La source ODBC et la destination ODBC permettent d'intégrer des données hautes performances dans les bases de données compatibles ODBC. Ces deux composants peuvent être configurés de manière à utiliser des liaisons de table de paramètres selon les lignes pour les fournisseurs ODBC hautement sollicités qui prennent en charge ce mode de liaison, ainsi que des liaisons de paramètre de ligne unique pour les fournisseurs ODBC peu sollicités.

Prise en main de la source et de la destination ODBC

Avant de pouvoir configurer des packages qui utilisent SQL Server 2019 Integration Services (SSIS), vous devez vérifier la disponibilité des éléments suivants.

La source ODBC et la destination ODBC permettent de décharger et de charger facilement des données et de les transférer d'une base de données source compatible ODBC vers une base de données de destination compatible ODBC.

Pour utiliser la source ou la destination afin de charger ou décharger des données, ouvrez un nouveau projet SQL Server 2019 Integration Services (SSIS) dans SQL Server Data Tools. Faites glisser la source ou la destination sur l’aire de conception de SQL Server Data Tools.

  • Le composant source ODBC lit les données dans la base de données source compatible ODBC.

Vous pouvez connecter la source ODBC à n'importe quelle destination ou transformer le composant pris en charge par SSIS.

Voir aussi :

Source ODBC

Éditeur de source ODBC (page Gestionnaire de connexions)

Éditeur de source ODBC (page Sortie d'erreur)

  • La destination ODBC charge les données dans une base de données compatible ODBC. Vous connectez la destination à n'importe quelle source ou transformez le composant pris en charge par SSIS.

Voir aussi :

Destination ODBC

Éditeur de destination ODBC (page Gestionnaire de connexions)

Éditeur de destination ODBC (page Sortie d'erreur)

Scénarios d'utilisation

Cette section décrit quelques-unes des principales utilisations des composants sources et de destination ODBC.

Copie en bloc de données de tables SQL Server vers n'importe quelle table de base de données compatible ODBC

Vous pouvez utiliser les composants pour copier en bloc les données d’une ou de plusieurs tables SQL Server dans une même table de base de données ODBC.

L’exemple suivant montre comment créer une tâche de flux de données SSIS qui extrait des données d’une table SQL Server et les charge dans une table DB2.

  • Créez un projet SQL Server 2019 Integration Services (SSIS) dans SQL Server Data Tools.

  • Créez un gestionnaire de connexions OLE DB qui se connecte à la base de données SQL Server contenant les données à copier.

  • Créez un gestionnaire de connexions ODBC qui utilise un pilote ODBC DB2 installé en local avec un DSN pointant vers une base de données DB2 locale ou distante. Cette base de données contient les données chargées à partir de la base de données SQL Server.

  • Faites glisser une source OLE DB sur l’aire de conception, puis configurez la source pour obtenir les données de la base de données SQL server et la table avec les données à extraire. Utilisez le gestionnaire de connexions OLE DB précédemment créé.

  • Faites glisser une destination ODBC sur l’aire de conception, connectez la sortie de la source à la destination ODBC, puis configurez la destination pour charger dans la table DB2 les données que vous extrayez de la base de données SQL Server. Utilisez le gestionnaire de connexions ODBC précédemment créé.

Copie en bloc de données de tables de base de données compatibles ODBC vers n'importe quelle table SQL Server

Vous pouvez utiliser les composants pour copier en bloc les données d’une ou de plusieurs tables de base de données ODBC dans une même table de base de données SQL Server.

L’exemple suivant montre comment créer une tâche de flux de données SSIS qui extrait des données d’une table de base de données Sybase et les charge dans une table de base de données SQL Server.

  • Créez un projet SQL Server 2019 Integration Services (SSIS) dans SQL Server Data Tools

  • Créez un gestionnaire de connexions ODBC qui utilise un pilote ODBC Sybase installé en local avec un DSN pointant vers une base de données Sybase locale ou distante. Cette base de données est l'emplacement auquel les données sont extraites.

  • Créez un gestionnaire de connexions OLE DB qui se connecte à la base de données SQL Server où charger les données.

  • Faites glisser une source ODBC dans l'aire de conception, puis configurez la source de manière à obtenir les données de la base de données Sybase avec la table que vous allez copier. Utilisez le gestionnaire de connexions ODBC précédemment créé.

  • Faites glisser une destination OLE DB sur l’aire de conception, connectez la sortie de la source à la destination OLE DB, puis configurez la destination pour charger dans la table SQL Server les données que vous extrayez de la base de données Sybase. Utilisez le gestionnaire de connexions OLE DB précédemment créé.

Types de données pris en charge

Les composants SSIS ODBC en bloc prennent en charge tous les types de données ODBC intégrés, notamment les objets volumineux (objets CLOB et BLOB).

Il n’existe aucune prise en charge des types de données pour les types C extensibles tels que décrits dans les spécifications ODBC 3.8. Le tableau suivant décrit les types de données SSIS utilisés pour chaque type SQL ODBC. Un développeur SSIS peut remplacer le mappage par défaut et spécifier un autre type de données SSIS pour les colonnes d'entrée/sortie sans nuire aux performances des conversions de données requises.

Type SQL ODBC Type de données SSIS Commentaires
SQL_BIT DT_BOOL
SQL_TINYINT DT_I1

DT_UI1
Les types de données SQL sont mappés aux types non signés SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) lorsque le pilote ODBC attribue à UNSIGNED_ATTRIBUTE la valeur SQL_TRUE pour ce type de données SQL.
SQL_SMALLINT DT_I2

DT_UI2
Les types de données SQL sont mappés aux types non signés SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) lorsque le pilote ODBC attribue à UNSIGNED_ATTRIBUTE la valeur SQL_TRUE pour ce type de données SQL.
SQL_INTEGER DT_I4

DTUI4
Les types de données SQL sont mappés aux types non signés SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) lorsque le pilote ODBC attribue à UNSIGNED_ATTRIBUTE la valeur SQL_TRUE pour ce type de données SQL.
SQL_BIGINT DT_I8

DT_UI8
Les types de données SQL sont mappés aux types non signés SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) lorsque le pilote ODBC attribue à UNSIGNED_ATTRIBUTE la valeur SQL_TRUE pour ce type de données SQL.
SQL_DOUBLE DT_R8
SQL_FLOAT DT_R8
SQL_REAL DT_R4
SQL_NUMERIC (p,s) DT_NUMERIC (p,s) Le type de données numérique est mappé à DT_NUMERIC lorsque P est supérieur ou égal à 38, que S est supérieur ou égal à 0 et que S est inférieur ou égal à P.
DT_R8 Le type de données numérique est mappé à DT_R8 lorsqu'au moins une des conditions suivantes est remplie :

La précision est supérieure à 38

L'échelle est inférieure à zéro

L'échelle est supérieure à 38

L'échelle est supérieure à la précision
DT_CY Le type de données numérique est mappé à DT_CY lorsqu'il est déclaré comme type de données monétaire.
SQL_DECIMAL (p,s) DT_NUMERIC (p,s) Le type de données décimal est mappé à DT_NUMERIC lorsque P est supérieur ou égal à 38, que S est supérieur ou égal à 0 et que S est inférieur ou égal à P.
DT_R8 Le type de données décimal est mappé à DT_R8 lorsqu'au moins une des conditions suivantes est remplie :

La précision est supérieure à 38

L'échelle est inférieure à zéro

L'échelle est supérieure à 38

L'échelle est supérieure à la précision
DT_CY Le type de données décimal est mappé à DT_CY lorsqu'il est déclaré comme type de données monétaire.
SQL_DATE

SQL_TYPE_DATE
DT_DBDATE
SQL_TIME

SQL_TYPE_TIME
DT_DBTIME
SQL_TIMESTAMP

SQL_TYPE_TIMESTAMP
DT_DBTIMESTAMP

DT_DBTIMESTAMP2
Les type de données SQL_TIMESTAMP sont mappés à DT_DBTIMESTAMP2 si l’échelle est supérieure à 3. Dans tous les autres cas, ils sont mappés à DT_DBTIMESTAMP.
SQL_CHAR

SQLVARCHAR
DT_STR

DT_WSTR

DT_TEXT

DT_NTEXT
DT_STR est utilisé si la longueur de colonne est inférieure ou égale à 8 000 et si la propriété ExposeStringsAsUnicode a la valeur false.

DT_WSTR est utilisé si la longueur de colonne est inférieure ou égale à 8 000 et si la propriété ExposeStringsAsUnicode a la valeur true.

DT_TEXT est utilisé si la longueur de colonne est supérieure à 8 000 et si la propriété ExposeStringsAsUnicode a la valeur false.

DT_NTEXT est utilisé si la longueur de colonne est supérieure à 8 000 et si la propriété ExposeStringsAsUnicode a la valeur true.
SQL_LONGVARCHAR DT_TEXT

DT_NTEXT
DT_NTEXT est utilisé si la propriété ExposeStringsAsUnicode a la valeur true.
SQL_WCHAR

SQL_WVARCHAR
DT_WSTR

DT_NTEXT
DT_WSTR est utilisé si la longueur de colonne est inférieure ou égale à 4000.

DT_NTEXT est utilisé si la longueur de colonne est supérieure à 4000.
SQL_WLONGVARCHAR DT_NTEXT
SQL_BINARY DT_BYTE

DT_IMAGE
DT_BYTES est utilisé si la longueur de colonne est inférieure ou égale à 8000.

DT_IMAGE si la longueur de colonne est supérieure à 8000.
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
Types de données spécifiques au fournisseur DT_BYTES

DT_IMAGE
DT_BYTES est utilisé si la longueur de colonne est inférieure ou égale à 8000.

DT_IMAGE est utilisé si la longueur de colonne est zéro ou supérieure à 8000.

Dans cette section