Azure Data Factory のデータセット

適用対象: Azure Data Factory Azure Synapse Analytics

この記事では、データセットの詳細、データセットを JSON 形式で定義する方法、Azure Data Factory パイプラインで使用する方法について説明します。

Azure Data Factory を初めて使用する場合は、Azure Data Factory の概要に関するページを参照してください。

概要

データ ファクトリは、1 つまたは複数のパイプラインを持つことができます。 パイプライン は、1 つのタスクを連携して実行する アクティビティ の論理的なグループです。 パイプライン内の複数のアクティビティは、データに対して実行するアクションを定義します。 ここで、データセット とは、アクティビティ で入力と出力として使用するデータを単に指定または参照するデータの名前付きビューです。 データセットは、テーブル、ファイル、フォルダー、ドキュメントなど、さまざまなデータ ストア内のデータを示します。 たとえば、Azure Blob データセットは、アクティビティによってデータが読み取られる、Blob Storage 内の BLOB コンテナーと BLOB フォルダーを示しています。

データセットを作成する前に、リンクされたサービスを作成して、データ ストアとデータ ファクトリをリンクする必要があります。 リンクされたサービスは、接続文字列によく似ており、Data Factory が外部リソースに接続するために必要な接続情報を定義します。 データセットはリンクされたデータ ストア内のデータの構造を表すもので、リンクされたサービスはデータ ソースへの接続を定義するもの、と捉えることができます。 たとえば、Azure Storage のリンクされたサービスは、ストレージ アカウントをデータ ファクトリにリンクします。 Azure Blob データセットは、処理対象の入力 BLOB を含む Azure Storage アカウント内の BLOB コンテナーとフォルダーを表します。

シナリオの例を次に示します。 Blob Storage のデータを Azure SQL Database にコピーするために、2 つのリンクされたサービスを作成します。Azure Blob Storage と Azure SQL Database。 次に、2 つのデータセットを作成します。区切りテキスト データセット (ソースとしてテキスト ファイルを使用していることを前提とした、Azure Blob Storage のリンクされたサービスを参照するデータセット) と、Azure SQL Table データセット (Azure SQL Database のリンクされたサービスを参照するデータセット) です。 Azure Blob Storage と Azure SQL Database のリンクされたサービスには、Data Factory から Azure Storage と Azure SQL Database それぞれへの接続の実行時に使用される接続文字列が含まれています。 区切りテキスト データセットは、Blob Storage 内の入力 BLOB が含まれた BLOB コンテナーと BLOB フォルダー、およびフォーマットに関する設定を指定します。 Azure SQL Table データセットは、データのコピー先である SQL Database 内の SQL テーブルを示しています。

次の図は、Data Factory でのパイプライン、アクティビティ、データセット、リンクされたサービスの関係を示しています。

パイプライン、アクティビティ、データセット、リンクされたサービスの関係

データセットの JSON

Data Factory のデータセットは JSON 形式では次のように定義されます。

{
    "name": "<name of dataset>",
    "properties": {
        "type": "<type of dataset: DelimitedText, AzureSqlTable etc...>",
        "linkedServiceName": {
                "referenceName": "<name of linked service>",
                "type": "LinkedServiceReference",
        },
        "schema":[

        ],
        "typeProperties": {
            "<type specific property>": "<value>",
            "<type specific property 2>": "<value 2>",
        }
    }
}

次の表では、上記の JSON のプロパティについて説明します。

プロパティ 説明 必須
name データセットの名前。 Azure Data Factory - 名前付け規則を参照してください。 はい
type データセットの型。 Data Factory でサポートされている型のいずれかを指定します (たとえば、DelimitedText、AzureSqlTable)。

詳細については、データセットの型を参照してください。
はい
schema データセットのスキーマは、実際のデータ型と形状を表します。 いいえ
typeProperties 型のプロパティは型によって異なります。 サポートされている型とそのプロパティの詳細については、「データセットの型」セクションを参照してください。 はい

データセットのスキーマをインポートするときに、 [スキーマのインポート] ボタンを選択し、ソースまたはローカル ファイルのどちらからインポートするかを選択します。 ほとんどの場合、ソースからスキーマを直接インポートします。 ただしローカル スキーマ ファイルが既にある (Parquet ファイルまたはヘッダー付きの CSV ) 場合は、そのファイルのスキーマを基に、Data Factory を指示できます。

コピー アクティビティのデータセットは、ソースとシンクで使用されます。 データセットで定義されているスキーマは省略可能で、参照用です。 ソースとシンクの間に列/フィールド マッピングを適用する場合は、スキーマと型のマッピングに関するページを参照してください。

データ フロー内のデータセットは、ソースとシンクの変換で使用されます。 データセットは、基本的なデータ スキーマを定義します。 データがスキーマを持たない場合は、ソースとシンクのスキーマ ドリフトを使用できます。 データセットから取得されたメタデータは、ソース変換でソース プロジェクションとして表示されます。 ソースの変換におけるプロジェクションは、定義された名前と型のデータ フローのデータを表します。

データセットの型

Azure Data Factory では、使用するデータ ストアに応じて、さまざまな種類のデータセットがサポートされています。 Data Factory でサポートされているデータ ストアの一覧は、コネクタの概要に関する記事を参照してください。 データ ストアをクリックすると、それに対応するリンクされたサービスとデータセットの作成方法を確認できます。

たとえば、区切りテキスト データセットの場合、次の JSON サンプルに示すように、データセットの型は DelimitedText に設定されます。

{
    "name": "DelimitedTextInput",
    "properties": {
        "linkedServiceName": {
            "referenceName": "AzureBlobStorage",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": "input.log",
                "folderPath": "inputdata",
                "container": "adfgetstarted"
            },
            "columnDelimiter": ",",
            "escapeChar": "\\",
            "quoteChar": "\""
        },
        "schema": []
    }
}

データセットを作成する

データセットの作成には、.NET APIPowerShellREST API、Azure Resource Manager テンプレート、Azure Portal のいずれかのツール、またはいずれかの SDK を使用できます

最新バージョンとバージョン 1 のデータセットの比較

Data Factory と Data Factory バージョン 1 のデータセット間の相違点を次に示します。

  • 外部プロパティは最新バージョンではサポートされません。 トリガーに置き換えらます。
  • ポリシーと可用性のプロパティは、最新バージョンではサポートされません。 パイプラインの開始時刻は、トリガーによって異なります。
  • 範囲指定されたデータセット (パイプラインで定義されたデータセット) は、最新バージョンではサポートされません。

次のステップ

これらのツールや SDK のいずれかを使用してパイプラインとデータセットを作成する詳しい手順については、次のチュートリアルを参照してください。