CSV 對應

當您擷取來源檔案是下列任一分隔符分隔表格式格式時,請使用 CSV 對應,將傳入數據對應至數據表內的數據行:CSV、TSV、PSV、SCSV、SOHsv、TXT 和 RAW。 如需詳細資訊,請參閱支持 的數據格式

對應清單中的每個元素都會定義特定數據行的對應。 這些元素是從三個屬性建構而成: columndatatypeproperties。 深入了解 數據對應概觀

每個 CSV 對應元素都必須包含下列任一選擇性屬性:

屬性 類型 Description
序數 int CSV 中的資料行順序編號。
ConstValue string 要用於數據行的常數值,而不是 CSV 檔案內的某些值。
轉換 string 應該在具有 對應轉換的內容上套用的轉換。 唯一支援的轉換是 SourceLocation

注意

  • 使用 或 SourceLocation 轉換時ConstValueOrdinal必須未設定。
  • 針對 TXT 和 RAW 格式,只能 Ordinal 對應 0,因為文字會被視為單一行行。

重要

針對佇列擷取:

  • 如果對應中所參考的數據表不存在於資料庫中,就會自動建立它,前提是所有數據行都指定了有效的數據類型。
  • 如果對應中參考的數據行不存在於數據表中,它會在第一次為該數據行內嵌數據時自動加入數據表,因為數據行指定了有效的數據類型。 若要將新數據行新增至對應,請使用 .alter ingestion 對應命令
  • 數據會使用擷取屬性進行批處理。 所使用的更相異擷取對應屬性,例如不同的 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"
    )