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 が使用されます。 |