CSV 映射
适用于:✅Azure 数据资源管理器
当引入源文件采用以下任何一种分隔符分隔的表格格式时,可使用 CSV 映射将传入数据映射到表内的列:CSV、TSV、PSV、SCSV、SOHsv、TXT 和 RAW。 有关详细信息,请参阅支持的数据格式。
映射列表中的每个元素定义特定列的映射。 这些元素通过这三个属性进行构造:column
、datatype
和 properties
。 有关详细信息,请参阅数据映射概述。
每个 CSV 映射元素都必须包含以下可选属性之一:
属性 | 类型 | 说明 |
---|---|---|
Ordinal | int |
CSV 中的列顺序号。 |
ConstValue | string |
要用于列而非 CSV 文件内某个值的常数值。 |
转换 | string |
应通过映射转换应用于内容的转换。 唯一支持的转换是 SourceLocation 。 |
注意
- 使用
ConstValue
或SourceLocation
转换时,必须取消设置Ordinal
。 - 对于 TXT 和 RAW 格式,只能映射
Ordinal
0,因为文本被视为单列行。
重要
对于排队引入:
- 如果映射中引用的表不存在于数据库中,则会自动创建该表,前提是为所有列指定了有效的数据类型。
- 如果映射中引用的某个列在表中不存在,则在首次为该列引入数据时,会自动将该列添加为表中的最后一列,前提是为该列指定了有效的数据类型。 若要向映射添加新列,请使用 .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"
)
标识映射
在引入期间使用 CSV 映射而不定义映射架构(请参阅标识映射)。
.ingest into Table123 (@"source1", @"source2")
with
(
format="csv"
)