CSV マッピング
インジェスト ソース ファイルが区切り記号で区切られた表形式 (CSV、TSV、PSV、SCSV、SOHsv、TXT、RAW) のいずれかである場合は、CSV マッピングを使用して、受信データをテーブル内の列にマップします。 詳細については、サポートされるデータ形式に関するページを参照してください。
マッピング リスト内の各要素は、特定の列のマッピングを定義します。 これらの要素は、 column
、 datatype
、 properties
の 3 つのプロパティから構成されます。 詳細については、 データ マッピングの概要を参照してください。
各 CSV マッピング要素には、次のいずれかの省略可能なプロパティが含まれている必要があります。
プロパティ | タイプ | 説明 |
---|---|---|
Ordinal | int |
CSV 内の列の順序番号。 |
ConstValue | string |
CSV ファイル内の値ではなく、列に使用する定数値。 |
変換 | string |
マッピング変換を使用してコンテンツに適用する必要がある変換。 サポートされている変換は SourceLocation だけです。 |
Note
ConstValue
変換またはSourceLocation
変換を使用する場合は、Ordinal
設定を解除する必要があります。- TXT 形式と RAW 形式の場合、テキストは 1 列の行として扱われるので、マップできるのは
Ordinal
0 のみです。
重要
キューに入ったインジェストの場合:
- マッピングで参照されているテーブルがデータベースに存在しない場合は、すべての列に有効なデータ型が指定されているため、自動的に作成されます。
- マッピングで参照されている列がテーブルに存在しない場合、列に対して有効なデータ型が指定されている場合、その列に対して最初にデータが取り込まれると、その列が最後の列としてテーブルに自動的に追加されます。 マッピングに新しい列を追加するには、 .alter インジェスト マッピング コマンドを使用します。
- データは、インジェスト プロパティを使用してバッチ処理されます。 異なる 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 マッピングを使用します ( 識別マッピングを参照)。
.ingest into Table123 (@"source1", @"source2")
with
(
format="csv"
)