Azure Data Factory と Azure Synapse Analytics での Avro 形式

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

Avro ファイルを解析したり、データを Avro 形式に書き込む場合は、この記事に従ってください。

Avro 形式は、Amazon S3Amazon S3 Compatible StorageAzure BlobAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2Azure FilesFile SystemFTPGoogle Cloud StorageHDFSHTTPOracle Cloud StorageSFTP の各コネクタでサポートされます。

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

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

プロパティ Description 必須
type データセットの type プロパティは、Avro に設定する必要があります。 はい
location ファイルの場所の設定。 ファイル ベースの各コネクタには、固有の場所の種類と location でサポートされるプロパティがあります。 詳細については、コネクタの記事でデータセットのプロパティに関するセクションを参照してください。> はい
avroCompressionCodec Avro ファイルへの書き込み時に使用する圧縮コーデック。 Avro ファイルから読み取る場合、サービスでは、ファイルのメタデータに基づいて圧縮コーデックが自動的に判別されます。
サポートされる型は "none" (既定値)、"deflate"、"snappy" です。 Avro ファイルの読み取りおよび書き込みの場合、コピー アクティビティでは現在、Snappy がサポートされていないことに注意してください。
いいえ

注意

Avro ファイルでは、列名に空白文字はサポートされません。

Azure Blob Storage の Avro データセットの例を次に示します。

{
    "name": "AvroDataset",
    "properties": {
        "type": "Avro",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "avroCompressionCodec": "snappy"
        }
    }
}

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

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

ソースとしての Avro

Copy アクティビティの *source* セクションでは、次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティを AvroSource に設定する必要があります はい
storeSettings データ ストアからデータを読み取る方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる読み取り設定があります。 詳細については、コネクタの記事で Copy アクティビティのプロパティに関するセクションを参照してください。> いいえ

シンクとしての Avro

Copy アクティビティの *sink* セクションでは、次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティを AvroSink に設定する必要があります。 はい
formatSettings プロパティのグループ。 後の Avro の書き込み設定に関する表を参照してください。 いいえ
storeSettings データ ストアにデータを書き込む方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる書き込み設定があります。 詳細については、コネクタの記事で Copy アクティビティのプロパティに関するセクションを参照してください。> いいえ

formatSettings でサポートされている Avro の書き込み設定:

プロパティ Description 必須
type formatSettings の種類は AvroWriteSettings に設定する必要があります。 Yes
maxRowsPerFile データをフォルダーに書き込むとき、複数のファイルに書き込み、ファイルあたりの最大行を指定することを選択できます。 No
fileNamePrefix maxRowsPerFile が構成されている場合に使用されます。
データを複数のファイルに書き込むとき、ファイル名のプレフィックスを指定します。結果的に <fileNamePrefix>_00000.<fileExtension> のパターンになります。 指定されていない場合、ファイル名プレフィックスは自動生成されます。 このプロパティは、ソースがファイルベース ストアかパーティション オプション対応データ ストアの場合、適用されません。
いいえ

Mapping Data Flow のプロパティ

マッピング データ フローでは、次のデータ ストアで avro 形式での読み取りと書き込みを実行できます。Azure Blob StorageAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2SFTP。また、Amazon S3 で avro 形式を読み取ることができます。

ソース プロパティ

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

名前 説明 必須 使用できる値 データ フロー スクリプトのプロパティ
ワイルド カードのパス ワイルドカードのパスに一致するすべてのファイルが処理されます。 データセットで設定されているフォルダーとファイル パスはオーバーライドされます。 no String[] wildcardPaths
パーティションのルート パス パーティション分割されたファイル データについては、パーティション フォルダーを列として読み取るためにパーティションのルート パスを入力できます no String partitionRootPath
ファイルの一覧 処理するファイルを一覧表示しているテキスト ファイルをソースが指しているかどうか no true または false fileList
ファイル名を格納する列 ソース ファイル名とパスを使用して新しい列を作成します no String rowUrlColumn
完了後 処理後にファイルを削除または移動します。 ファイル パスはコンテナー ルートから始まります no 削除: true または false
移動: ['<from>', '<to>']
purgeFiles
moveFiles
最終更新日時でフィルター処理 最後に変更された日時に基づいてファイルをフィルター処理する場合に選択 no Timestamp modifiedAfter
modifiedBefore
[Allow no files found](ファイルの未検出を許可) true の場合、ファイルが見つからない場合でもエラーはスローされない no true または false ignoreNoFilesFound

シンクのプロパティ

次の表では、Avro のシンクでサポートされるプロパティの一覧を示します。 これらのプロパティは、 [設定] タブで編集できます。

名前 説明 必須 使用できる値 データ フロー スクリプトのプロパティ
フォルダーのクリア 書き込みの前に宛先フォルダーがクリアされるかどうか no true または false truncate
ファイル名のオプション 書き込まれたデータの名前付け形式です。 既定では、part-#####-tid-<guid> という形式で、パーティションごとに 1 ファイルです いいえ パターン: String
パーティションあたり: String[]
列内のデータとして: String
1 つのファイルに出力する: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames
すべてを引用符で囲む すべての値を引用符で囲みます no true または false quoteAll

データ型のサポート

コピー アクティビティ

コピー アクティビティでは、Avro の複合データ型はサポートされていません (レコード、列挙型、配列、マップ、共用体、および固定)。

データ フロー

データ フローで Avro ファイルを使用する場合は、複合データ型の読み取りと書き込みを行うことができますが、最初にデータセットから物理スキーマをクリアしてください。 データ フローでは、ロジカル プロジェクションを設定し、複雑な構造体の列を導出し、それらのフィールドを Avro ファイルに自動マッピングできます。