Azure Data Factory および Azure Synapse Analytics 内のデータセット

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

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

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

概要

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

データセットを作成する前に、リンクされたサービスを作成して、データ ストアをそのサービスにリンクする必要があります。 リンクされたサービスは、接続文字列によく似ており、サービスが外部リソースに接続するために必要な接続情報を定義します。 データセットはリンクされたデータ ストア内のデータの構造を表すもので、リンクされたサービスはデータ ソースへの接続を定義するもの、と捉えることができます。 たとえば、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 のリンクされたサービスには、そのサービスが Azure Storage と Azure SQL Database にそれぞれ接続するために実行時に使用する接続文字列が含まれています。 区切りテキスト データセットは、Blob Storage 内の入力 BLOB が含まれた BLOB コンテナーと BLOB フォルダー、およびフォーマットに関する設定を指定します。 Azure SQL Table データセットは、データのコピー先である SQL Database 内の SQL テーブルを示しています。

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

Relationship between pipeline, activity, dataset, linked services

UI を使用して、データセットを作成します。

Azure Data Factory Studio でデータセットを作成するには、[作成者] タブ (鉛筆アイコン付き) を選択し、プラス記号アイコンを選択して [データセット] を選択します。

Shows the Author tab of the Azure Data Factory Studio with the new dataset button selected.

新しいデータセット ウィンドウが表示され、既存または新規のリンクされたサービスを設定するために、Azure Data Factory で使用可能な任意のコネクタを選択することができます。

Shows the new dataset window where you can choose the type of linked service to any of the supported data factory connectors.

次に、データセットの形式を選択するように求めるメッセージが表示されます。

Shows the dataset format window allowing you to choose a format for the new dataset.

最後に、データセットに対して選択した種類の既存のリンクされたサービスを選択するか、サービスがまだ定義されていない場合は新しいサービスを作成できます。

Shows the set properties window where you can choose an existing dataset of the type selected previously, or create a new one.

データセットを作成したら、Azure Data Factory 内の任意のパイプライン内でそれを使用できます。

データセットの JSON

データセットは 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 のプロパティについて説明します。

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

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

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

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

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

データセットの型

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

たとえば、区切りテキスト データセットの場合、次の 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 のデータセットの比較

Azure Data Factory の現在のバージョン (および Azure Synapse Analytics) 内のデータセットと、従来の Azure Data Factory バージョン 1 内のデータセットの違いを次に示します。

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

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