文件格式配置
Destination SDK支持一组灵活的功能,您可以根据集成需求配置这些功能。 在这些功能中,支持CSV文件格式。
通过Destination SDK创建基于文件的目标时,您可以定义导出的CSV文件的格式设置。 您可以自定义许多格式选项,例如但不限于:
- 颁厂痴文件是否应包含标头;
 - 用于引用值的字符;
 - 空值应当是什么样的。
 
根据您的目标配置,当连接到基于文件的目标时,用户将在UI中看到某些选项。 您可以在基于文件的目标的文件格式选项文档中查看这些选项的样子。
文件格式设置是基于文件的目标的目标服务器配置的一部分。
要了解此组件在何处适合使用Destination SDK创建的集成,请参阅配置选项文档中的关系图,或查看如何使用Destination SDK配置基于文件的目标的指南。
您可以通过/authoring/destination-servers端点配置文件格式选项。 有关详细的API调用示例,请参阅以下API参考页面,您可以在其中配置此页面中显示的组件。
本页介绍已导出CSV文件的所有支持的文件格式设置。
支持的集成类型 supported-integration-types
有关哪些类型的集成支持此页面上描述的功能,请参阅下表。
支持的参数 supported-parameters
您可以修改导出文件的几个属性,以符合目标文件接收系统的要求,从而以最佳方式读取和解读从Experience Platform收到的文件。
fileConfigurations部分不是必需的。 如果您没有在API调用中传递任何用于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 }}"
      }
    }
            颁厂痴选项,用户可在其中选择配置选项 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"。 设置空值的字符串表示形式。""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,JohnmaxFileRowCount后续步骤 next-steps
阅读本文后,您应该更好地了解文件格式在目标服务器配置中的工作方式,以及如何对其进行配置。
要了解有关其他目标服务器组件的更多信息,请参阅以下文章: