次の方法で共有


AVRO マッピング

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

AVRO マッピングを使用して、インジェスト ソース ファイルが AVRO 形式の場合に、受信データをテーブル内の列にマップします。

マッピング リスト内の各要素は、特定の列のマッピングを定義します。 これらの要素は、 columndatatypepropertiesの 3 つのプロパティから構成されます。 詳細については、 データ マッピングの概要を参照してください。

各 AVRO マッピング要素には、次のいずれかの省略可能なプロパティが含まれている必要があります。

プロパティ タイプ 説明
フィールド string AVRO レコード内のフィールドの名前。
Path string 値が $ で始まる場合は、テーブル内の列の内容となる AVRO ドキュメント内のフィールドへのパスとして解釈されます。 AVRO レコード全体を示すパスが $。 値が $ で始まらない場合は、定数値として解釈されます。 特殊文字を含むパスは、['Property Name'] としてエスケープする必要があります。 詳しくは、「JSONPath 構文」を参照してください。
ConstValue string AVRO ファイル内の値ではなく、列に使用される定数値。
変換 string マッピング変換を使用してコンテンツに適用する必要がある変換

Note

フィールドとパスは相互に排他的です。

次の代替手段は同等です。

[
  {"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
  {"Column": "event_name", "Properties": {"Field": "EventName"}}
]

重要

キューに入ったインジェストの場合:

  • マッピングで参照されているテーブルがデータベースに存在しない場合は、すべての列に有効なデータ型が指定されているため、自動的に作成されます。
  • マッピングで参照されている列がテーブルに存在しない場合、列に対して有効なデータ型が指定されている場合、その列に対して最初にデータが取り込まれると、その列が最後の列としてテーブルに自動的に追加されます。 マッピングに新しい列を追加するには、 .alter インジェスト マッピング コマンドを使用します。
  • データは、インジェスト プロパティを使用してバッチ処理されます。 異なる ConstValue 値など、使用されるインジェスト マッピング プロパティが異なるほど、インジェストの断片化が増え、パフォーマンスが低下する可能性があります。

[
  {"Column": "event_timestamp", "Properties": {"Field": "Timestamp"}},
  {"Column": "event_name",      "Properties": {"Field": "Name"}},
  {"Column": "event_type",      "Properties": {"Field": "Type"}},
  {"Column": "event_time",      "Properties": {"Field": "Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

上記のマッピングは、 .ingest 管理コマンドの一部として提供されるときに JSON 文字列としてシリアル化されます。

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "AVRO",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Field": "Field1"}},
        {"Column": "column_b", "Properties": {"Field": "$.[\'Field name with space\']"}}
      ]
      ```
  )

事前に作成されたマッピング

マッピングが作成されたら.ingest管理コマンドで名前でマッピングを参照します。

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="AVRO",
        ingestionMappingReference = "Mapping_Name"
    )

ID のマッピング

マッピング スキーマを定義せずにインジェスト中に AVRO マッピングを使用します ( 識別マッピングを参照)。

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="AVRO"
    )