Destination SDK supporta un set flessibile di funzioni che puoi configurare in base alle tue esigenze di integrazione. Tra queste funzioni è incluso il supporto per CSV formattazione del file.
Quando crei destinazioni basate su file tramite Destination SDK, puoi definire la formattazione dei file CSV esportati. Puoi personalizzare molte opzioni di formattazione, ad esempio, ma non solo:
A seconda della configurazione di destinazione, gli utenti visualizzeranno determinate opzioni nell’interfaccia utente quando si connettono a una destinazione basata su file. Puoi vedere come si presentano queste opzioni in opzioni di formattazione dei file per le destinazioni basate su file documentazione.
Le impostazioni di formattazione dei file fanno parte della configurazione del server di destinazione per le destinazioni basate su file.
Per capire dove questo componente si inserisce in un’integrazione creata con Destination SDK, consulta il diagramma riportato di seguito. opzioni di configurazione oppure consulta la guida su come utilizzare Destination SDK per configurare una destinazione basata su file.
È possibile configurare le opzioni di formattazione del file tramite /authoring/destination-servers
endpoint. Consulta le seguenti pagine di riferimento API per esempi dettagliati di chiamate API, in cui puoi configurare i componenti mostrati in questa pagina.
Questa pagina descrive tutte le impostazioni di formattazione dei file supportate per l'esportazione CSV
file.
Tutti i nomi e i valori dei parametri supportati da Destination SDK sono distinzione maiuscole/minuscole. Per evitare errori di distinzione tra maiuscole e minuscole, utilizza i nomi e i valori dei parametri esattamente come mostrato nella documentazione.
Consulta la tabella seguente per informazioni dettagliate sui tipi di integrazioni che supportano le funzionalità descritte in questa pagina.
Tipo di integrazione | Supporta la funzionalità |
---|---|
Integrazioni in tempo reale (streaming) | No |
Integrazioni basate su file (batch) | Sì |
È possibile modificare diverse proprietà dei file esportati in modo che corrispondano ai requisiti del sistema di ricezione dei file della destinazione, al fine di leggere e interpretare in modo ottimale i file ricevuti da Experienci Platform.
Le opzioni CSV sono supportate solo quando si esportano file CSV. Il fileConfigurations
questa sezione non è obbligatoria durante la configurazione di un nuovo server di destinazione. Se nella chiamata API non trasmetti alcun valore per le opzioni CSV, i valori predefiniti verranno recuperati da tabella di riferimento più avanti verrà utilizzato.
Nell’esempio di configurazione seguente, tutte le opzioni CSV sono predefinite. Le impostazioni di esportazione definite in ciascuna csvOptions
I parametri sono finali e gli utenti non possono modificarli.
"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 }}"
}
}
Nell’esempio di configurazione seguente, nessuna delle opzioni CSV è predefinita. Il value
in ciascuno dei csvOptions
parametri è configurato in un campo corrispondente dei dati del cliente tramite /destinations
endpoint (ad esempio customerData.quote
per quote
file (opzione di formattazione del file) e gli utenti possono utilizzare l’interfaccia utente di Experienci Platform per selezionare tra le varie opzioni configurate nel campo dati cliente corrispondente. Puoi vedere come si presentano queste opzioni in opzioni di formattazione dei file per le destinazioni basate su file documentazione.
{
"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 }}"
}
}
}
Le opzioni di formattazione del file CSV descritte di seguito sono documentate anche nel Guida di Apache Spark per file CSV. Le descrizioni utilizzate di seguito sono tratte dalla guida di Apache Spark.
Di seguito è riportato un riferimento completo di tutte le opzioni di formattazione dei file disponibili in Destination SDK, insieme a esempi di output per ogni opzione.
Campo | Obbligatorio/facoltativo | Descrizione | Valore predefinito | Esempio di output 1 | Esempio di output 2 |
---|---|---|---|---|---|
templatingStrategy |
Obbligatorio | Per ogni opzione di formattazione del file configurata, è necessario aggiungere il parametro templatingStrategy , che può avere due valori:
|
- | - | - |
compression.value |
Facoltativo | Codec di compressione da utilizzare per il salvataggio dei dati nel file. Valori supportati: none , bzip2 , gzip , lz4 , e snappy . |
none |
- | - |
fileType.value |
Facoltativo | Specifica il formato del file di output. Valori supportati: csv , parquet , e json . |
csv |
- | - |
csvOptions.quote.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta un singolo carattere utilizzato per l’escape dei valori tra virgolette, in cui il separatore può far parte del valore. |
null |
Esempio di valore predefinito: quote.value: "u0000" —> male,NULJohn,LastNameNUL |
Esempio personalizzato: quote.value: "\"" —> male,"John,LastName" |
csvOptions.quoteAll.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica se tutti i valori devono essere sempre racchiusi tra virgolette. L’impostazione predefinita prevede solo l’escape di valori contenenti virgolette. |
false |
quoteAll :false --> male,John,"TestLastName" |
quoteAll :true -->"male","John","TestLastName" |
csvOptions.delimiter.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta un separatore per ogni campo e valore. Il separatore può essere costituito da uno o più caratteri. |
, |
delimiter :, --> comma-separated values" |
delimiter :\t --> tab-separated values |
csvOptions.escape.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta un singolo carattere utilizzato per eseguire l’escape delle virgolette all’interno di un valore già tra virgolette. |
\ |
"escape" :"\\" --> male,John,"Test,\"LastName5" |
"escape" :"'" --> male,John,"Test,'''"LastName5" |
csvOptions.escapeQuotes.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica se i valori contenenti virgolette devono essere sempre racchiusi tra virgolette. L’impostazione predefinita prevede l’escape di tutti i valori contenenti una virgoletta. |
true |
- | - |
csvOptions.header.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica se scrivere i nomi delle colonne come prima riga nel file esportato. |
true |
- | - |
csvOptions.ignoreLeadingWhiteSpace.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica se eliminare gli spazi bianchi iniziali dai valori. |
true |
ignoreLeadingWhiteSpace :true --> "male","John","TestLastName" |
ignoreLeadingWhiteSpace :false –> " male","John","TestLastName" |
csvOptions.ignoreTrailingWhiteSpace.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica se rifilare gli spazi vuoti finali dai valori. |
true |
ignoreTrailingWhiteSpace :true --> "male","John","TestLastName" |
ignoreTrailingWhiteSpace :false –> "male ","John","TestLastName" |
csvOptions.nullValue.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta la rappresentazione di stringa di un valore null. |
"" |
nullvalue :"" --> male,"",TestLastName |
nullvalue :"NULL" --> male,NULL,TestLastName |
csvOptions.dateFormat.value |
Facoltativo | Solo per"fileType.value": "csv" . Indica il formato della data. |
yyyy-MM-dd |
dateFormat :yyyy-MM-dd --> male,TestLastName,John,2022-02-24 |
dateFormat :MM/dd/yyyy --> male,TestLastName,John,02/24/2022 |
csvOptions.timestampFormat.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta la stringa che indica un formato timestamp. |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
- | - |
csvOptions.charToEscapeQuoteEscaping.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta un singolo carattere utilizzato per l’escape del carattere virgolette. |
\ quando i caratteri escape e le virgolette sono diversi. \0 quando il carattere di escape e le virgolette sono uguali. |
- | - |
csvOptions.emptyValue.value |
Facoltativo | Solo per"fileType.value": "csv" . Imposta la rappresentazione di stringa di un valore vuoto. |
"" |
"emptyValue":"" --> male,"",John |
"emptyValue":"empty" --> male,empty,John |
maxFileRowCount |
Facoltativo | Indica il numero massimo di righe per file esportato, compreso tra 1.000.000 e 10.000.000. | 5,000,000 | ||
includeFileManifest |
Facoltativo | Abilita il supporto per l'esportazione di un manifesto di file insieme alle esportazioni di file. Il file JSON del manifesto contiene informazioni sulla posizione di esportazione, sulle dimensioni di esportazione e altro ancora. Il manifesto viene denominato utilizzando il formato manifest-<<destinationId>>-<<dataflowRunId>>.json . |
Visualizza un file manifesto di esempio. Il file manifesto include i campi seguenti:
|
Dopo aver letto questo articolo, dovresti conoscere meglio il funzionamento della formattazione dei file in una configurazione del server di destinazione e come configurarla.
Per ulteriori informazioni sugli altri componenti del server di destinazione, consulta i seguenti articoli: