Os relatórios de Feed de dados do cliente contêm vários campos de dados, delimitados por caracteres ASCII que normalmente não são visíveis na tela. Este artigo descreverá como determinar o número de campos que o seu relatório contém. Para ver quais campos estão disponíveis no relatório, visite https://marketing.adobe.com/resources/help/en_US/aam/c_cdf_fields.html
Nos relatórios, os seguintes delimitadores são usados:
- Para separação de campos, o caractere ASCII corresponde ao código 01. Isso geralmente é chamado de SOH (start of heading).
- Para separação de matriz, o caractere ASCII corresponde ao código 02. Isso geralmente é chamado de STX (start of text).
- Para dicionários:
- A separação de chave/valor será o caractere ASCII correspondente ao código 03. Isso geralmente é chamado de ETX (end of text).
- A separação de elementos será a mesma que para matrizes (02). Esses caracteres separadores ocorrem com pouca frequência nos dados brutos, portanto, não há risco de confundir os dados.
Existem duas maneiras conhecidas de visualizar os delimitadores, usando um terminal Unix/Linux ou a interface de linha de comando Cygwin no Windows. Com delimitadores visíveis, você pode contá-los e determinar o número de campos, mesmo se os campos estiverem vazios.
1- Usar o comando 'translate' ("tr") - Traduz o código ASCII 01 (separação de campo, SOH) para "|"
$ zcat /path/to/dir/AAM_CDF_1234_000001_0.gz | head -5 | tr '\001' '|' | tr '\002' ',' | tr '\003' ':'2013-10-01
18:11:09|00042314524877950034124736683724775790|1083|318722|32619|\N|http://www.acmeflights.com/?cs:e=m&cs:q=&cs:m=&cs:cid=&seg=dap&cs:tv=449&cs:a=pb_retention_search&cs:pro=cpb&cs:ki=581078065|199.30.25.942013-10-01 17:48:52|00067720900173020484560039672852520207|684|64766|\N|d_cb:demdexDestCallback1380649775741,d_dst:1,d_px:19400,d_ld:vin_crm%3D5138.1380649775159.4959%26containerid%3D684%26_ts%3D1380649775741,d_rtbd:json,d_cts:1|http://www.acmemotors.com/|165.234.104.462013-10-01 17:48:52|00067720900173020484560039672852520207|684|64675|32619,20406,20407,2246,20396|d_cb:demdexDestCallback1380649775740,d_dst:1,d_px:19315,d_ld:containerid%3D684%26_ts%3D1380649775740,d_rtbd:json,d_cts:1|http://www.acmemotors.com/|165.234.104.462013-10-01 17:49:14|00067720900173020484560039672852520207|684|64766|\N|d_cb:demdexDestCallback1380649797960,d_dst:1,d_px:19400,d_ld:vin_crm%3D5138.1380649775159.4959%26containerid%3D684%26_ts%3D1380649797960,d_rtbd:json,d_cts:1|http://www.acmemotors.com/inventory/newsearch/Used/|165.234.104.462013-10-01 17:49:14|00067720900173020484560039672852520207|684|64675|32619,20406,20407,2246,20396|d_cb:demdexDestCallback1380649797957,d_dst:1,d_px:19315,d_ld:containerid%3D684%26_ts%3D1380649797957,d_rtbd:json,d_cts:1|http://www.acmemotors.com/inventory/newsearch/Used/|165.234.104.46
2- Usar o comando "less" - Uma captura de tela do Cygwin, em um computador com Windows, visualizando uma linha de dados
O símbolo "^A" indica a localização do separador de campos
$ zcat /path/to/dir/AAM_CDF_1234_000001_0.gz | head -1 | less