CSV マッピング

CSV マッピングを使用して、インジェスト ソース ファイルが区切り記号で区切られた表形式である場合に、テーブル内の列に受信データをマップします。CSV、TSV、PSV、SCSV、SOHsv、TXT、RAW。 詳細については、サポートされるデータ形式に関するページを参照してください。

マッピング リストの各要素は、特定の列のマッピングを定義します。 これらの要素は、、datatype、および propertiesの 3 つのプロパティcolumnから構築されます。 詳細については、 データ マッピングの概要に関するページを参照してください

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

プロパティ Type 説明
Ordinal int CSV 内の列の順序番号。
ConstValue string CSV ファイル内の値ではなく、列に使用される定数値。
変換 string マッピング変換を使用してコンテンツに適用する必要がある 変換。 でサポートされている変換は のみです SourceLocation

注意

  • または SourceLocation 変換を使用する場合ConstValueは、Ordinal設定を解除する必要があります。
  • TXT 形式と RAW 形式の場合、テキストは 1 列の行として扱われるので、0 のみを Ordinal マップできます。

重要

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

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

[
  {"Column": "event_time", "Properties": {"Ordinal": "0"}},
  {"Column": "event_name", "Properties": {"Ordinal": "1"}},
  {"Column": "event_type", "Properties": {"Ordinal": "2"}},
  {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}}
  {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
]

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

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMapping =
        ```
        [
            {"Column": "event_time", "Properties": {"Ordinal": "0"}},
            {"Column": "event_name", "Properties": {"Ordinal": "1"}},
            {"Column": "event_type", "Properties": {"Ordinal": "2"}},
            {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}},
            {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
        ]
        ```
    )

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

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

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMappingReference = "MappingName"
    )

ID のマッピング

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

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