ODBC フロー コンポーネント

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

このトピックでは、SQL Server 2019 Integration Services (SSIS) を使用して ODBC データ フローを作成するために必要な概念について説明します

SQL Server 2019 Integration Services (SSIS) 用の Connector for Open Database Connectivity (ODBC) を使用すると、SSIS 開発者は、ODBC でサポートされているデータベースからのデータの読み込みおよびアンロードを実行するパッケージを簡単に作成できます。

ODBC コネクタは、SQL Server 2019 Integration Services (SSIS) のコンテキストで、ODBC でサポートされているデータベースへのデータの読み込みやデータのアンロードを実行するときに、最適なパフォーマンスを得ることができるように設計されています。

メリット

SQL Server 2019 Integration Services (SSIS) の ODBC 入力元および ODBC 入力先を使用することで、ODBC でサポートされるデータベースへのデータ読み込みまたはデータのアンロードを処理するプロジェクトで、SSIS に関する競争力がもたらされます。

ODBC 入力元と ODBC 入力先を共に使用することで、ODBC 対応データベースとの高パフォーマンスのデータ統合が可能になります。 どちらのコンポーネントも、行方向のパラメーター配列バインド モードをサポートする機能豊富な ODBC プロバイダーでこのバインド機能を使用するように構成することや、機能が少ない ODBC プロバイダーで単一行のパラメーター バインド機能を使用するように構成することができます。

ODBC 入力元および入力先の概要

SQL Server 2019 Integration Services (SSIS) を使用するパッケージをセットアップする前に、以下のコンポーネントを使用できることを確認する必要があります。

ODBC 入力元および ODBC 入力先を使用すると、データのアンロードと読み込み、ODBC でサポートされているソース データベースからのデータ転送、ODBC でサポートされている入力先データベースへのデータ転送を簡単に実行できます。

データの読み込みまたはアンロードに入力元または入力先を使用するには、SQL Server Data Tools で新しい SQL Server 2019 Integration Services (SSIS) プロジェクトを開きます。 次に、SQL Server Data Tools のデザイン画面上に、入力元または入力先をドラッグします。

  • ODBC 入力元コンポーネントは、ODBC でサポートされているソース データベースからデータを読み取ります。

ODBC 入力元は、SSIS によってサポートされている、任意の入力先または変換コンポーネントに接続できます。

関連項目:

ODBC 入力元

[ODBC ソース エディター] ([接続マネージャー] ページ)

[ODBC ソース エディター] ([エラー出力] ページ)

  • ODBC 入力先は、ODBC でサポートされているデータベースにデータを読み込みます。 入力先を、SSIS によってサポートされている、任意の入力元または変換コンポーネントに接続することはできません。

関連項目:

ODBC 入力先

[ODBC 変換先エディター]\([接続マネージャー] ページ)

ODBC 変換先エディター ([エラー出力] ページ)

操作シナリオ

このセクションでは、ODBC 入力元コンポーネントおよび入力先コンポーネントの主な使用方法の一部について説明します。

SQL Server テーブルから ODBC でサポートされているデータベース テーブルへデータを一括コピーする

コンポーネントを使用して、1 つ以上の SQL Server テーブルから単一の ODBC でサポートされるデータベース テーブルへデータを一括コピーできます。

次の例は、SQL Server テーブルからデータを抽出し、それを DB2 テーブルへ読み込む SSIS データ フロー タスクを作成する方法です。

  • SQL Server Data Tools で、SQL Server 2019 Integration Services (SSIS) プロジェクトを作成します。

  • コピーするデータが格納されている SQL Server に接続するための OLE DB 接続マネージャーを作成します。

  • ローカルまたはリモートの DB2 データベースをポイントする DSN が設定された、ローカルにインストールされている DB2 ODBC ドライバーを使用する ODBC 接続マネージャーを作成します。 このデータベースに、SQL Server データベースのデータが読み込まれます。

  • OLE DB ソースをデザイン画面にドラッグし、抽出するデータが格納されている SQL Server データベースおよびテーブルからデータを取得するようにソースを構成します。 前の手順で作成した OLE DB 接続マネージャーを使用します。

  • ODBC 入力先をデザイン画面にドラックし、ソース出力を ODBC 入力先に接続します。次に、SQL Server データベースから抽出したデータを DB2 テーブルに読み込むように入力先を構成します。 前の手順で作成した ODBC 接続マネージャーを使用します。

ODBC でサポートされているデータベースから SQL Server テーブルへデータを一括コピーする

コンポーネントを使用して、ODBC でサポートされている 1 つ以上のデータベース テーブルから単一の SQL Server データベース テーブルへデータを一括コピーできます。

次の例は、Sybase データベース テーブルからデータを抽出し、それを SQL Server データベース テーブルへ読み込む SSIS データ フロー タスクを作成する方法です。

  • SQL Server Data Tools で、SQL Server 2019 Integration Services (SSIS) プロジェクトを作成します

  • ローカルまたはリモートの Sybase データベースをポイントする DSN が設定された、ローカルにインストールされている Sybase ODBC ドライバーを使用する ODBC 接続マネージャーを作成します。 このデータベースに、データが抽出されます。

  • データの読み込み先の SQL Server データベースに接続するための OLE DB 接続マネージャーを作成します。

  • ODBC 入力元をデザイン画面にドラッグし、コピーするデータが格納されている Sybase データベースからデータを取得するように入力元を構成します。 前の手順で作成した ODBC 接続マネージャーを使用します。

  • OLE DB 変換先をデザイン画面にドラックし、ソース出力を OLE DB 変換先に接続します。次に、Sybase データベースから抽出したデータを SQL Server テーブルに読み込むように変換先を構成します。 前の手順で作成した OLE DB 接続マネージャーを使用します。

サポートされるデータ型

ODBC 一括 SSIS コンポーネントは、ラージ オブジェクト (CLOB および BLOB) を含む、すべての組み込み ODBC データ型をサポートします。

ODBC 3.8 仕様で規定されている 拡張 C 型はサポートされません。次の表に、各 ODBC SQL 型に対応する SSIS データ型を示します。 SSIS 開発者は既定のマッピングをオーバーライドして、入出力列で使用する SSIS データ型を個別に指定できます。このときに必要となるデータ変換によって、パフォーマンスが影響を受けることはありません。

ODBC SQL 型 SSIS データ型 コメント
SQL_BIT DT_BOOL
SQL_TINYINT DT_I1

DT_UI1
ODBC ドライバーで SQL データ型の UNSIGNED_ATTRIBUTE が SQL_TRUE に設定されている場合、その SQL データ型は SSIS の符号なしのデータ型 (DT_UI1、DT_UI2、DT_UI4、DT_UI8) にマッピングされます。
SQL_SMALLINT DT_I2

DT_UI2
ODBC ドライバーで SQL データ型の UNSIGNED_ATTRIBUTE が SQL_TRUE に設定されている場合、その SQL データ型は SSIS の符号なしのデータ型 (DT_UI1、DT_UI2、DT_UI4、DT_UI8) にマッピングされます。
SQL_INTEGER DT_I4

DTUI4
ODBC ドライバーで SQL データ型の UNSIGNED_ATTRIBUTE が SQL_TRUE に設定されている場合、その SQL データ型は SSIS の符号なしのデータ型 (DT_UI1、DT_UI2、DT_UI4、DT_UI8) にマッピングされます。
SQL_BIGINT DT_I8

DT_UI8
ODBC ドライバーで SQL データ型の UNSIGNED_ATTRIBUTE が SQL_TRUE に設定されている場合、その SQL データ型は SSIS の符号なしのデータ型 (DT_UI1、DT_UI2、DT_UI4、DT_UI8) にマッピングされます。
SQL_DOUBLE DT_R8
SQL_FLOAT DT_R8
SQL_REAL DT_R4
SQL_NUMERIC (p,s) DT_NUMERIC (p,s) P が 38 以上で、S が 0 以上または P 以下の場合、数値データ型は DT_NUMERIC にマッピングされます。
DT_R8 以下の条件が少なくとも 1 つ満たされる場合、数値データ型は DT_R8 にマッピングされます。

有効桁数が 38 より大きい

小数点以下桁数が 0 より小さい

小数点以下桁数が 38 より大きい

小数点以下桁数が有効桁数より大きい
DT_CY money データ型として宣言されている場合、数値データ型は DT_CY にマッピングされます。
SQL_DECIMAL (p,s) DT_NUMERIC (p,s) P が 38 以上で、S が 0 以上または P 以下の場合、10 進データ型は DT_NUMERIC にマッピングされます。
DT_R8 以下の条件が少なくとも 1 つ満たされる場合、10 進データ型は DT_R8 にマッピングされます。

有効桁数が 38 より大きい

小数点以下桁数が 0 より小さい

小数点以下桁数が 38 より大きい

小数点以下桁数が有効桁数より大きい
DT_CY money データ型として宣言されている場合、10 進データ型は DT_CY にマッピングされます。
SQL_DATE

SQL_TYPE_DATE
DT_DBDATE
SQL_TIME

SQL_TYPE_TIME
DT_DBTIME
SQL_TIMESTAMP

SQL_TYPE_TIMESTAMP
DT_DBTIMESTAMP

DT_DBTIMESTAMP2
小数点以下桁数が 3 より大きい場合、SQL_TIMESTAMP データ型は DT_DBTIMESTAMP2 にマッピングされます。 それ以外の場合は、DT_DBTIMESTAMP にマッピングされます。
SQL_CHAR

SQLVARCHAR
DT_STR

DT_WSTR

DT_TEXT

DT_NTEXT
列の長さが 8000 以下で、 ExposeStringsAsUnicode プロパティが false の場合に DT_STR が使用されます。

列の長さが 8000 以下で、 ExposeStringsAsUnicode プロパティが true の場合に DT_WSTR が使用されます。

列の長さが 8000 より長く、 ExposeStringsAsUnicode プロパティが false の場合に DT_TEXT が使用されます。

列の長さが 8000 より長く、 ExposeStringsAsUnicode プロパティが true の場合に DT_NTEXT が使用されます。
SQL_LONGVARCHAR DT_TEXT

DT_NTEXT
ExposeStringsAsUnicode プロパティが true の場合に DT_NTEXT が使用されます。
SQL_WCHAR

SQL_WVARCHAR
DT_WSTR

DT_NTEXT
列の長さが 4000 以下の場合に DT_NTEXT が使用されます。

列の長さが 4000 より長い場合に DT_NTEXT が使用されます。
SQL_WLONGVARCHAR DT_NTEXT
SQL_BINARY DT_BYTE

DT_IMAGE
列の長さが 8000 以下の場合に DT_BYTES が使用されます。

列の長さが 8000 より長い場合に DT_IMAGE が使用されます。
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
プロバイダー固有のデータ型 DT_BYTES

DT_IMAGE
列の長さが 8000 以下の場合に DT_BYTES が使用されます。

列の長さが 0 または 8000 より長い場合に DT_IMAGE が使用されます。

このセクションの内容