次の方法で共有


Azure Data Factory または Synapse Analytics を使用してAzure Data Explorer間でデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

この記事では、Azure Data Factory パイプラインと Synapse Analytics パイプラインでコピー アクティビティを使用して、Azure Data Explorer との間でデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

ヒント

サービスとの統合Azure Data Explorerの詳細については、通常、Integrate Azure Data Explorerを参照してください。

サポートされる機能

このAzure Data Explorer コネクタは、次の機能でサポートされています。

サポートされる機能 IR
Copy アクティビティ (ソース/シンク) (1) (2)
マッピング データ フロー (ソース/シンク)
Lookup アクティビティ (1) (2)

(1) Azure統合ランタイム (2) セルフホステッド統合ランタイム

サポートされている任意のソース データ ストアからAzure Data Explorerにデータをコピーできます。 Azure Data Explorerからサポートされている任意のシンク データ ストアにデータをコピーすることもできます。 コピー アクティビティによってソースまたはシンクとしてサポートされているデータ ストアの一覧については、サポートされているデータ ストアに関するページの表をご覧ください。

Note

セルフホステッド統合ランタイムを使用したオンプレミス データ ストア経由でのAzure Data Explorerとの間でのデータのコピーは、バージョン 3.14 以降でサポートされています。

Azure Data Explorer コネクタを使用すると、次の操作を行うことができます。

  • Microsoft Entra アプリケーション トークン認証をサービス プリンシパルで使用して、データをコピーします。
  • ソースとして、KQL (Kusto) クエリを使用してデータを取得する。
  • シンクとして、コピー先テーブルにデータを追加する。

作業の開始

ヒント

Azure Data Explorer コネクタのチュートリアルについては、「Azure Data Explorer との間でデータをコピーする」と、データベースから Azure Data Explorer への一括コピーに関するページを参照してください。

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

UI を使用して Azure Data Explorer にリンクされたサービスを作成する

Azure ポータル UI でAzure Data Explorerするリンクされたサービスを作成するには、次の手順に従います。

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

    Azure Data Factory UI を使用した新しいリンク サービスの作成のスクリーンショット

  2. エクスプローラーを検索し、Azure Data Explorer (Kusto) コネクタを選択します。

    Azure Data Explorer (Kusto) コネクタのスクリーンショット.

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

    Azure Data Explorer のリンクされたサービス構成のスクリーンショット

コネクタの構成の詳細

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

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

Azure Data Explorer コネクタでは、次の認証の種類がサポートされています。 詳細については、対応するセクションをご覧ください。

サービス プリンシパルの認証

サービス プリンシパルの認証を使用するには、次の手順に従ってサービス プリンシパルを取得し、アクセス許可を付与します。

  1. アプリケーションをMicrosoft ID プラットフォームに登録します。 方法については、「Quickstart: Microsoft ID プラットフォームを参照してください。 これらの値を記録しておきます。リンクされたサービスを定義するときに使います。

    • アプリケーション ID
    • アプリケーション キー
    • テナント ID
  2. Azure Data Explorerでサービス プリンシパルに適切なアクセス許可を付与します。 ロールとアクセス許可>管理の詳細については、「Manage Azure Data Explorer データベースのアクセス許可>

    • ソースとして、少なくともデータベース ビューアー ロールをデータベースに付与します。
    • シンクとして、少なくともデータベース ユーザー ロールをデータベースに付与します

Note

UI を使用して作業する場合、デフォルトでは、ログイン ユーザー アカウントを使用して Azure Data Explorer のクラスター、データベース、およびテーブルが一覧表示されます。 サービス プリンシパルを使用してオブジェクトを一覧表示するには、更新ボタンの横にあるドロップダウンをクリックします。これらの操作に対するアクセス許可がない場合は、名前を手動で入力します。

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

プロパティ 説明 必須
type プロパティは、AzureDataExplorer に設定する必要があります。 はい
エンドポイント Azure Data Explorer クラスターのエンドポイント URL。形式は https://<clusterName>.<regionName>.kusto.windows.net はい
データベース データベースの名前。 はい
テナント アプリケーションが存在するテナントの情報 (ドメイン名またはテナント ID) を指定します。 これは、Kusto 接続文字列 の "機関 ID" と呼ばれます。 Azure ポータルの右上隅にマウス ポインターを置いて取得します。 はい
サービスプリンシパルID (servicePrincipalId) アプリケーションのクライアント ID を取得します。 これは、Kusto 接続文字列 の "Microsoft Entra アプリケーション クライアント ID" と呼ばれます。 はい
servicePrincipalKey(サービスプリンシパルキー) アプリケーションのキーを取得します。 これは、Kusto 接続文字列 の "Microsoft Entra アプリケーション キー" と呼ばれます。 このフィールドをSecureStringとしてマークして安全に格納するか、Azure Key Vaultに格納されているセキュリティで保護されたデータを参照します。 はい
connectVia (接続ビア) データ ストアに接続するために使用される統合ランタイム。 データ ストアがプライベート ネットワーク内にある場合は、Azure統合ランタイムまたはセルフホステッド統合ランタイムを使用できます。 指定しない場合は、既定のAzure統合ランタイムが使用されます。 いいえ

例: サービス プリンシパル キー認証の使用

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
            "tenant": "<tenant name/id e.g. microsoft.onmicrosoft.com>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            }
        }
    }
}

システム割り当てマネージド ID 認証

Azure リソースのマネージド ID の詳細については、「Azure リソースの管理 IDを参照してください。

システム割り当てマネージド ID 認証を使用するには、次の手順に従ってアクセス許可を付与します。

  1. ファクトリまたは Synapse ワークスペースと共に生成されたマネージド ID オブジェクト ID の値をコピーして、マネージド ID 情報を取得します

  2. マネージド ID に、Azure Data Explorerで適切なアクセス許可を付与します。 ロールとアクセス許可>管理の詳細については、「Manage Azure Data Explorer データベースのアクセス許可>

    • ソースとしてデータベース ビューアー ロールをデータベースに付与する。
    • シンクとしてデータベース インジェスター ロールおよびデータベース ビューアー ロールをデータベースに付与する。

Note

UI を使用して作成する場合、ログインユーザーアカウントを使用して Azure Data Explorer のクラスター、データベース、テーブルを一覧表示します。 これらの操作のためのアクセス許可がない場合は、名前を手動で入力します。

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

プロパティ 説明 必須
type プロパティは、AzureDataExplorer に設定する必要があります。 はい
エンドポイント Azure Data Explorer クラスターのエンドポイント URL。形式は https://<clusterName>.<regionName>.kusto.windows.net はい
データベース データベースの名前。 はい
connectVia (接続ビア) データ ストアに接続するために使用される統合ランタイム。 データ ストアがプライベート ネットワーク内にある場合は、Azure統合ランタイムまたはセルフホステッド統合ランタイムを使用できます。 指定しない場合は、既定のAzure統合ランタイムが使用されます。 いいえ

例: システム割り当てマネージド ID 認証を使用する

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
        }
    }
}

ユーザー割り当てマネージド ID 認証

Azure リソースのマネージド ID の詳細については、Azure リソースの管理 ID に関するページを参照してください

ユーザー割り当てマネージド ID 認証を使用するには、次の手順に従います。

  1. ユーザー割り当てマネージド ID を 1 つまたは複数作成しAzure Data Explorerでアクセス許可を付与します。 ロールとアクセス許可>管理の詳細については、「Manage Azure Data Explorer データベースのアクセス許可>

    • ソースとして、少なくともデータベース ビューアー ロールをデータベースに付与します。
    • シンクとして、少なくともデータベースのデータ取り込みロールをデータベースに付与します。
  2. 1 つ以上のユーザー割り当てマネージド ID をデータ ファクトリまたは Synapse ワークスペースに割り当て、ユーザー割り当てマネージド ID ごとに資格情報を作成します。

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

プロパティ 説明 必須
type プロパティは、AzureDataExplorer に設定する必要があります。 はい
エンドポイント Azure Data Explorer クラスターのエンドポイント URL。形式は https://<clusterName>.<regionName>.kusto.windows.net はい
データベース データベースの名前。 はい
認証情報 ユーザー割り当てマネージド ID を資格情報オブジェクトとして指定します。 はい
connectVia (接続ビア) データ ストアに接続するために使用される統合ランタイム。 データ ストアがプライベート ネットワーク内にある場合は、Azure統合ランタイムまたはセルフホステッド統合ランタイムを使用できます。 指定しない場合は、既定のAzure統合ランタイムが使用されます。 いいえ

例: ユーザー割り当てマネージド ID 認証を使用する

{
    "name": "AzureDataExplorerLinkedService",
    "properties": {
        "type": "AzureDataExplorer",
        "typeProperties": {
            "endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
            "database": "<database name>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        }
    }
}

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

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

データをAzure Data Explorerにコピーするには、データセットの type プロパティを AzureDataExplorerTable に設定します。

次のプロパティがサポートされています。

プロパティ 説明 必須
type プロパティは、AzureDataExplorerTable に設定する必要があります。 はい
テーブル リンクされたサービスが参照するテーブルの名前。 シンクの場合は Yes、ソースの場合は No

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

{
   "name": "AzureDataExplorerDataset",
    "properties": {
        "type": "AzureDataExplorerTable",
        "typeProperties": {
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Azure Data Explorer linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

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

ソースとしてのAzure Data Explorer

Azure Data Explorerからデータをコピーするには、Copy アクティビティ ソースの type プロパティを AzureDataExplorerSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

プロパティ 説明 必須
コピー アクティビティのソースの type プロパティを、次の値に設定する必要があります: AzureDataExplorerSource はい
クエリ KQL 形式で指定された読み取り専用要求。 参照としてカスタム KQL クエリを使用します。 はい
queryTimeout クエリ要求がタイムアウトするまでの待機時間。既定値は 10 分 (00:10:00)、許容される最大値は 1 時間 (01:00:00) です。 いいえ
noTruncation 返される結果セットを切り詰めるかどうかを示します。 既定では、結果は 500,000 件のレコードまたは 64 メガバイト (MB) の後に切り詰められます。 アクティビティの正常な動作のためには、切り詰めを強くお勧めします。 いいえ

Note

既定では、Azure Data Explorer ソースのサイズ制限は 500,000 レコードまたは 64 MB です。 切り捨てることなくすべてのレコードを取得するには、クエリの先頭に set notruncation; を指定します。 詳細については、「クエリの制限」を参照してください。

例:

"activities":[
    {
        "name": "CopyFromAzureDataExplorer",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "AzureDataExplorerSource",
                "query": "TestTable1 | take 10",
                "queryTimeout": "00:10:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        },
        "inputs": [
            {
                "referenceName": "<Azure Data Explorer input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ]
    }
]

シンクとしてのAzure Data Explorer

データをAzure Data Explorerにコピーするには、コピー アクティビティ シンクの type プロパティを AzureDataExplorerSink に設定します。 コピー アクティビティの sink セクションでは、次のプロパティがサポートされます。

プロパティ 説明 必須
コピー アクティビティのシンクの type プロパティは、次のように設定する必要があります: AzureDataExplorerSink はい
ingestionMappingName Kusto テーブルで事前作成済みのマッピングの名前。 ソースからAzure Data Explorerに列をマッピングするには、サポートされているすべてのソースストアと形式(CSV、JSON、Avro形式を含む)に対して、コピーアクティビティの「列マッピング」(名前による暗黙的なマッピング、または明示的に構成されたもの)やAzure Data Explorerのマッピングを利用することができます。 いいえ
additionalProperties Azure Data Explorer シンクによってまだ設定されていないインジェスト プロパティを指定するために使用できるプロパティ バッグ。 具体的には、インジェスト タグの指定に便利です。 詳細については、Azure Data Explore データ インジェストドキュメントを参照してください。 いいえ

例:

"activities":[
    {
        "name": "CopyToAzureDataExplorer",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataExplorerSink",
                "ingestionMappingName": "<optional Azure Data Explorer mapping name>",
                "additionalProperties": {<additional settings for data ingestion>}
            }
        },
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Data Explorer output dataset name>",
                "type": "DatasetReference"
            }
        ]
    }
]

Mapping Data Flow のプロパティ

マッピング データ フローでデータを変換する場合は、Azure Data Explorerのテーブルの読み取りと書き込みを行うことができます。 詳細については、マッピング データ フローのソース変換シンク変換に関する記事を参照してください。 ソースとシンクの種類として、Azure Data Explorer データセットまたは inline データセット を使用できます。

ソース変換

次の表に、Azure Data Explorer ソースでサポートされるプロパティの一覧を示します。 これらのプロパティは、[ソース オプション] タブで編集できます。

名前 説明 必須 使用できる値 データ フロー スクリプトのプロパティ
テーブル 入力として [テーブル] を選択した場合、データ フローは、インライン データセットを使用するときに、Azure Data Explorer データセットまたはソース オプションで指定されたテーブルからすべてのデータをフェッチします。 いいえ (インライン データセットのみ)
テーブル名
クエリ KQL 形式で指定された読み取り専用要求。 参照としてカスタム KQL クエリを使用します。 いいえ クエリ
タイムアウト クエリ要求がタイムアウトするまでの待機時間。既定値は '172000' (2 日間) です。 いいえ 整数 タイムアウト

Azure Data Explorerソース スクリプトの例

ソースの種類としてデータセットAzure Data Explorer使用する場合、関連するデータ フロー スクリプトは次のようになります。

source(allowSchemaDrift: true,
	validateSchema: false,
	query: 'table | take 10',
	format: 'query') ~> AzureDataExplorerSource

インライン データセットを使用する場合、関連付けられているデータ フロー スクリプトは次のようになります。

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'query',
    query: 'table | take 10',
    store: 'azuredataexplorer') ~> AzureDataExplorerSource

シンク変換

次の表に、Azure Data Explorer シンクでサポートされているプロパティを示します。 これらのプロパティは、[設定] タブで編集できます。インライン データセットを使用する場合、「データセットのプロパティ」セクションで説明されているプロパティと同じ追加の設定が表示されます。

名前 説明 必須 使用できる値 データ フロー スクリプトのプロパティ
テーブル アクション 書き込み前に変換先テーブルのすべての行を再作成するか削除するかを指定します。
- None: テーブルに対してアクションは実行されません。
- [再作成]: テーブルが削除され、再作成されます。 新しいテーブルを動的に作成する場合に必要です。
- [切り詰め]: ターゲット テーブルのすべての行が削除されます。
いいえ true または false recreate
切り詰める
事前および事後の SQL スクリプト データがシンク データベースに書き込まれる前 (前処理) と書き込まれた後 (後処理) に実行される複数の Kusto 管理コマンドを指定します。 いいえ preSQL; postSQL
タイムアウト クエリ要求がタイムアウトするまでの待機時間。既定値は '172000' (2 日間) です。 いいえ 整数 タイムアウト

Azure Data Explorer のシンクスクリプトの例

シンクの種類としてデータセットAzure Data Explorer使用する場合、関連するデータ フロー スクリプトは次のようになります。

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	format: 'table',
	preSQLs:['pre SQL scripts'],
	postSQLs:['post SQL script'],
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink

インライン データセットを使用する場合、関連付けられているデータ フロー スクリプトは次のようになります。

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    format: 'table',
    store: 'azuredataexplorer',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink

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

プロパティの詳細については、ルックアップ アクティビティに関する記事を参照してください。

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

  • Azure Data Factoryおよび Synapse Analytics から Azure Data Explorer にデータを<>コピーする方法について説明します。