檔案格式設定
Destination SDK支援一組彈性的功能,您可以根據整合需求進行設定。 這些功能中包括CSV檔案格式化的支援。
透過Destination SDK建立以檔案為基礎的目的地時,您可以定義轉存的CSV檔案的格式設定。 您可以自訂許多格式選項,例如但不限於:
- CSV檔案是否應該包含標題;
- 引號值要使用的字元;
- 空值應該是什麼樣子。
視您的目的地設定而定,使用者在連線至檔案式目的地時,會在UI中看到某些選項。 您可以在檔案型目的地的檔案格式選項檔案中看到這些選項的樣子。
檔案格式設定是以檔案為基礎的目的地,屬於目的地伺服器組態的一部分。
若要瞭解此元件在何處適合使用Destination SDK建立的整合,請參閱設定選項檔案中的圖表,或參閱如何使用Destination SDK設定檔案型目的地的指南。
您可以透過/authoring/destination-servers端點設定檔案格式選項。 請參閱下列API參考頁面,以取得詳細的API呼叫範例,您可在此範例設定本頁面中顯示的元件。
此頁面說明已匯出CSV個檔案的所有支援檔案格式設定。
支援的整合型別 supported-integration-types
如需瞭解哪些型別的整合支援本頁面所述功能的詳細資訊,請參閱下表。
支援的引數 supported-parameters
您可以修改匯出檔案的幾個屬性,以符合目的地檔案接收系統的需求,以便以最佳方式讀取和解譯從Experience Platform接收的檔案。
fileConfigurations區段不是強制性的。 如果您沒有在API呼叫中為CSV選項傳遞任何值,則會使用位於下方參考表格中的預設值。使用者無法選取組態選項的CSV選項 file-configuration-templating-none
在以下的設定範例中,所有CSV選項皆為預先定義。 每個csvOptions引數中定義的匯出設定都是最終設定,使用者無法加以修改。
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
},
"maxFileRowCount":5000000,
"includeFileManifest": {
"templatingStrategy":"PEBBLE_V1",
"value":"{{ customerData.includeFileManifest }}"
}
}
CSV選項,使用者可從中選取設定選項 file-configuration-templating-pebble
在以下的設定範例中,並未預先定義任何CSV選項。 每個value引數中的csvOptions是透過/destinations端點在對應的客戶資料欄位中設定的(例如customerData.quote檔案格式選項的quote),使用者可以使用Experience Platform UI在您對應該客戶資料欄位中設定的各種選項之間選取。 您可以在檔案型目的地的檔案格式選項檔案中看到這些選項的樣子。
{
"fileConfigurations":{
"compression":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'compression' and customerData.compression is not empty %}{{customerData.compression}}{% else %}NONE{% endif %}"
},
"fileType":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.fileType}}"
},
"csvOptions":{
"sep":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'csvOptions' and customerData.csvOptions contains 'delimiter' %}{{customerData.csvOptions.delimiter}}{% else %},{% endif %}"
},
"quote":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'csvOptions' and customerData.csvOptions contains 'quote' %}{{customerData.csvOptions.quote}}{% else %}\"{% endif %}"
},
"escape":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'csvOptions' and customerData.csvOptions contains 'escape' %}{{customerData.csvOptions.escape}}{% else %}\\{% endif %}"
},
"nullValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'csvOptions' and customerData.csvOptions contains 'nullValue' %}{{customerData.csvOptions.nullValue}}{% else %}null{% endif %}"
},
"emptyValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"{% if customerData contains 'csvOptions' and customerData.csvOptions contains 'emptyValue' %}{{customerData.csvOptions.emptyValue}}{% else %}{% endif %}"
}
},
"maxFileRowCount":5000000,
"includeFileManifest": {
"templatingStrategy":"PEBBLE_V1",
"value":"{{ customerData.includeFileManifest }}"
}
}
}
支援的檔案格式選項完整參考和範例 file-formatting-reference-and-example
以下是Destination SDK中所有可用檔案格式選項的完整參考,連同每個選項的輸出範例。
templatingStrategy對於您設定的每個檔案格式選項,您必須新增引數templatingStrategy,其可以有兩個值:
compression.valuenone、bzip2、gzip、lz4和snappy。nonefileType.valuecsv、parquet和json。csvcsvOptions.quote.value"fileType.value": "csv"。 設定用於逸出引號值的單一字元,其中分隔符號可以是值的一部分。nullquote.value: "u0000" —> male,NULJohn,LastNameNULquote.value: "\"" —> male,"John,LastName"csvOptions.quoteAll.value"fileType.value": "csv"。 指示是否所有值都一律以引號括住。 預設為僅逸出包含引號字元的值。falsequoteAll:false —> male,John,"TestLastName"quoteAll:true —>"male","John","TestLastName"csvOptions.delimiter.value"fileType.value": "csv"。 為每個欄位和值設定分隔符號。 此分隔符號可為一或多個字元。,delimiter:, —> comma-separated values"delimiter:\t —> tab-separated valuescsvOptions.escape.value"fileType.value": "csv"。 設定用來逸出已加引號之值內的引號的單一字元。\"escape":"\\" —> male,John,"Test,\"LastName5""escape":"'" —> male,John,"Test,'''"LastName5"csvOptions.escapeQuotes.value"fileType.value": "csv"。 指示是否一律將包含引號的值括在引號中。 預設為逸出包含引號字元的所有值。truecsvOptions.header.value"fileType.value": "csv"。 指示是否將欄名稱寫入匯出檔案的第一行。truecsvOptions.ignoreLeadingWhiteSpace.value"fileType.value": "csv"。 指示是否從值中修剪前導空格。trueignoreLeadingWhiteSpace:true —> "male","John","TestLastName"ignoreLeadingWhiteSpace:false—> " male","John","TestLastName"csvOptions.ignoreTrailingWhiteSpace.value"fileType.value": "csv"。 指示是否從值修剪尾端空格。trueignoreTrailingWhiteSpace:true —> "male","John","TestLastName"ignoreTrailingWhiteSpace:false—> "male ","John","TestLastName"csvOptions.nullValue.value"fileType.value": "csv"。 設定null值的字串表示。""nullvalue:"" —> male,"",TestLastNamenullvalue:"NULL" —> male,NULL,TestLastNamecsvOptions.dateFormat.value"fileType.value": "csv"。 指示日期格式。yyyy-MM-dddateFormat:yyyy-MM-dd —> male,TestLastName,John,2022-02-24dateFormat:MM/dd/yyyy —> male,TestLastName,John,02/24/2022csvOptions.timestampFormat.value"fileType.value": "csv"。 設定表示時間戳記格式的字串。yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]csvOptions.charToEscapeQuoteEscaping.value"fileType.value": "csv"。 設定用於逸出引號字元的單一字元。\。 當逸出和引號字元相同時,\0。csvOptions.emptyValue.value"fileType.value": "csv"。 設定空值的字串表示。"""emptyValue":"" --> male,"",John"emptyValue":"empty" --> male,empty,JohnmaxFileRowCountincludeFileManifestmanifest-<<destinationId>>-<<dataflowRunId>>.json。檢視範例資訊清單檔案。 資訊清單檔案包含下列欄位:
flowRunId:產生匯出檔案的資料流執行。scheduledTime:檔案匯出的時間(UTC)。exportResults.sinkPath:存放匯出檔案之存放位置中的路徑。exportResults.name:匯出的檔案名稱。size:匯出的檔案大小(位元組)。
後續步驟 next-steps
閱讀本文後,您應該更瞭解檔案格式設定在目標伺服器設定中的運作方式,以及如何進行設定。
若要深入瞭解其他目的地伺服器元件,請參閱下列文章: