Azure Data Factory と Azure Synapse Analytics での Avro 形式
適用対象: Azure Data Factory Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
Avro ファイルを解析したり、データを Avro 形式に書き込む場合は、この記事に従ってください。
Avro 形式は、Amazon S3、Amazon S3 Compatible Storage、Azure Blob、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure Files、File System、FTP、Google Cloud Storage、HDFS、HTTP、Oracle Cloud Storage、SFTP の各コネクタでサポートされます。
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Avro データセットでサポートされるプロパティの一覧を示します。
プロパティ | 内容 | 必須 |
---|---|---|
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* セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | コピー アクティビティのソースの type プロパティを AvroSource に設定する必要があります | はい |
storeSettings | データ ストアからデータを読み取る方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる読み取り設定があります。 詳細については、コネクタの記事で Copy アクティビティのプロパティに関するセクションを参照してください。> |
いいえ |
シンクとしての Avro
Copy アクティビティの *sink* セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | コピー アクティビティのソースの type プロパティを AvroSink に設定する必要があります。 | はい |
formatSettings | プロパティのグループ。 後の Avro の書き込み設定に関する表を参照してください。 | いいえ |
storeSettings | データ ストアにデータを書き込む方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる書き込み設定があります。 詳細については、コネクタの記事で Copy アクティビティのプロパティに関するセクションを参照してください。> |
いいえ |
formatSettings
でサポートされている Avro の書き込み設定:
プロパティ | 内容 | 必須 |
---|---|---|
type | formatSettings の種類は AvroWriteSettings に設定する必要があります。 | Yes |
maxRowsPerFile | データをフォルダーに書き込むとき、複数のファイルに書き込み、ファイルあたりの最大行を指定することを選択できます。 | No |
fileNamePrefix | maxRowsPerFile が構成されている場合に使用されます。データを複数のファイルに書き込むとき、ファイル名のプレフィックスを指定します。結果的に <fileNamePrefix>_00000.<fileExtension> のパターンになります。 指定されていない場合、ファイル名プレフィックスは自動生成されます。 このプロパティは、ソースがファイルベース ストアかパーティション オプション対応データ ストアの場合、適用されません。 |
いいえ |
Mapping Data Flow のプロパティ
マッピング データ フローでは、次のデータ ストアで avro 形式での読み取りと書き込みを実行できます。Azure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、SFTP。また、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 ファイルに自動マッピングできます。