ODBC フロー コンポーネント

適用対象:yesSQL Server (サポートされているすべてのバージョン) yesSSIS Integration RuntimeのAzure Data Factory

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

SQL Server 2019 Integration Services (SSIS) 用コネクタ 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 SQL Server 2019 Integration Services (SSIS) Project を開SQL Server Data Tools。 次に、ソースまたは変換先を、ソースまたはコピー先のデザイン画面にドラッグSQL Server Data Tools。

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

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

関連項目:

ODBC 入力元

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

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

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

関連項目:

ODBC 入力先

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

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

操作シナリオ

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

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

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

次の例は、SQL Server テーブルからデータを抽出して DB2 テーブルに読み込む SSIS Data Flow Task を作成する方法を示しています。

  • 2019 SQL Server 2019 Integration Services (SSIS) Projectを作成SQL Server Data Tools。

  • コピーするOLE DBを含む SQL Serverデータベースに接続する接続マネージャーを作成します。

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

  • ソースOLE DBデザイン 画面にドラッグし、抽出するデータを含む SQL Server データベースとテーブルからデータを取得するソースを構成します。 前の手順で作成した OLE DB 接続マネージャーを使用します。

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

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

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

次の例は、Sybase データベース テーブルからデータを抽出し、SQL Server データベース テーブルに読み込む SSIS Data Flow Task を作成する方法を示しています。

  • 2019 SQL Server 2019 Integration Services (SSIS) Projectを作成SQL Server Data Tools

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

  • データをOLE DBデータベースに接続するSQL Server接続マネージャーを作成します。

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

このセクションの内容