Azure Data Factory または Synapse Analytics を使用して ODBC データ ストアをコピー元またはコピー先としてデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory のコピー アクティビティを使用して、ODBC データ ストアをコピー元またはコピー先としてデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

サポートされる機能

この ODBC コネクタでは、次の機能がサポートされます。

サポートされる機能 IR
Copy アクティビティ (ソース/シンク) 1
Lookup アクティビティ 1

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースおよびシンクとしてサポートされているデータ ストアの一覧については、「サポートされているデータ ストア」の表を参照してください。

具体的には、この ODBC コネクタは、基本または匿名認証を使用して、任意の ODBC 対応データ ストアをコピー元またはコピー先とするデータのコピーをサポートします。 64 ビットの ODBC ドライバーが必要です。 ODBC シンクの場合、サービスでは ODBC バージョン 2.0 標準がサポートされています。

前提条件

この ODBC コネクタを使用するには、次の手順が必要です。

  • セルフホステッド統合ランタイムをセットアップする。 詳細については、セルフホステッド統合ランタイムに関する記事をご覧ください。
  • データ ストア用の 64 ビット ODBC ドライバーを Integration Runtime マシンにインストールする。

作業の開始

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して ODBC データ ストアのリンク サービスを作成する

次の手順を使用して、Azure portal UI で ODBC データ ストアのリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。

  2. ODBC を検索し、ODBC コネクタを選択します。

    Screenshot of the ODBC connector.

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Screenshot of linked service configuration for an ODBC data store.

コネクタの構成の詳細

次のセクションでは、ODBC コネクタに固有の Data Factory エンティティの定義に使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

ODBC のリンクされたサービスでは、次のプロパティがサポートされます。

プロパティ Description 必須
type type プロパティは、次のように設定する必要があります:Odbc はい
connectionString 資格情報部分を除外した接続文字列。 Driver={SQL Server};Server=Server.database.windows.net; Database=TestDatabase; のようなパターンで接続文字列を指定するか、Integration Runtime マシンに設定したシステム DSN (データ ソース名) を DSN=<name of the DSN on IR machine>; で使用することができます (その場合も、リンクされたサービスの資格情報部分をそれに応じて指定する必要があります)。
パスワードを Azure Key Vault に格納して、接続文字列から password 構成をプルすることもできます。 詳細については、「Azure Key Vault への資格情報の格納」を参照してください。
はい
authenticationType ODBC データ ストアへの接続に使用される認証の種類です。
使用できる値は、以下のとおりです。BasicAnonymous
はい
userName 基本認証を使用している場合は、ユーザー名を指定します。 いいえ
password userName に指定したユーザー アカウントのパスワードを指定します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 いいえ
資格情報 (credential) ドライバー固有のプロパティ値の形式で指定された接続文字列のアクセス資格情報の部分。 例: "RefreshToken=<secret refresh token>;". このフィールドを SecureString とマークします。 いいえ
connectVia データ ストアに接続するために使用される統合ランタイム。 「前提条件」に記されているように、セルフホステッド統合ランタイムが必要です。 はい

例 1: 基本認証の使用

{
    "name": "ODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "<connection string>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

例 2: 匿名認証の使用

{
    "name": "ODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "<connection string>",
            "authenticationType": "Anonymous",
            "credential": {
                "type": "SecureString",
                "value": "RefreshToken=<secret refresh token>;"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、ODBC データセット でサポートされるプロパティの一覧を示します。

ODBC 互換データ ストアとの間でデータをコピーする場合、次のプロパティがサポートされます。

プロパティ Description 必須
type データセットの type プロパティは、次のように設定する必要があります:OdbcTable はい
tableName ODBC データ ストア内のテーブルの名前。 ソースの場合はいいえ (アクティビティ ソースの "query" が指定されている場合)、
シンクの場合ははい

{
    "name": "ODBCDataset",
    "properties": {
        "type": "OdbcTable",
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<ODBC linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "tableName": "<table name>"
        }
    }
}

RelationalTable 型のデータセットを使用していた場合、現状のまま引き続きサポートされますが、今後は新しいものを使用することをお勧めします。

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、ODBC ソースでサポートされるプロパティの一覧を示します。

ソースとしての ODBC

ODBC 互換データ ストアからデータをコピーする場合、コピー アクティビティの source セクションで次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:OdbcSource はい
query カスタム SQL クエリを使用してデータを読み取ります。 (例: "SELECT * FROM MyTable")。 いいえ (データセットの "tableName" が指定されている場合)

例:

"activities":[
    {
        "name": "CopyFromODBC",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ODBC input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "OdbcSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

RelationalSource 型のソースを使用していた場合は現状のまま引き続きサポートされますが、今後は新しいものを使用することをお勧めします。

シンクとしての ODBC

ODBC 対応データ ストアにデータをコピーするには、コピー アクティビティのシンクの種類を OdbcSink に設定します。 コピー アクティビティの sink セクションでは、次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのシンクの type プロパティは、次のように設定する必要があります: OdbcSink はい
writeBatchTimeout タイムアウトする前に一括挿入操作の完了を待つ時間です。
使用可能な値: 期間。 例:"00:30:00" (30 分)。
いいえ
writeBatchSize バッファー サイズが writeBatchSize に達したときに SQL テーブルにデータを挿入します。
使用可能な値: 整数 (行数)。
いいえ (既定値は 0 - 自動検出)
preCopyScript コピー アクティビティの毎回の実行で、データをデータ ストアに書き込む前に実行する SQL クエリを指定します。 このプロパティを使用して、事前に読み込まれたデータをクリーンアップできます。 いいえ

注意

"writeBatchSize" が設定されていない場合 (自動検出)、コピー アクティビティは、ドライバーでバッチ操作がサポートされるかどうかを検出した後、サポートされる場合は 10000 を、サポートされない場合は 1 を設定します。 0 以外の値を明示的に設定した場合、コピー アクティビティはその値に従い、実行時にドライバーがバッチ操作をサポートしていない場合は失敗します。

例:

"activities":[
    {
        "name": "CopyToODBC",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ODBC output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "OdbcSink",
                "writeBatchSize": 100000
            }
        }
    }
]

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

接続の問題のトラブルシューティング

接続の問題をトラブルシューティングするには、Integration Runtime Configuration Manager[診断] タブを使用します。

  1. Integration Runtime Configuration Manager を起動します。
  2. [診断] タブに切り替えます。
  3. [テスト接続] セクションで、データ ストアの [種類] (リンクされたサービス) を選択します。
  4. データ ストアへの接続に使用する [接続文字列] を入力し、 [認証] を選択し、 [ユーザー名][パスワード][資格情報] を入力します。
  5. [接続テスト] をクリックして、データ ストアへの接続をテストします。

Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。