Tipos De Dados Avro

Versão:
2022.3
Last modified: March 27, 2020

Use a ferramenta de dados de entradapara ler arquivos Avro descompactados e descomprimidas e use a ferramenta de dados de saídapara gravar arquivos Avro.

Entrada

Somente a compressão de desinflar é suportado.

A maioria dos 14 tipos de dados Avro nativos são suportados. O mapeamento de tipo na importação de é da seguinte maneira:

  • Seqüência de caracteres: UTF-8 convertido em V_WString (UTF-16)
  • Bytes: mantido como BLOB (use ferramenta blob para converter conforme necessário)
  • Int: mantido como Int32
  • Longo: mantido como Int64
  • Float: mantido como float
  • Dobro: mantido como o dobro
  • Boolean: mantido como bool
  • NULL: não suportado
  • Enum: convertido em String equivalente
  • União: Alteryx oferece suporte a uniões com dois subtipos. Ambos os subtipos devem ser equivalentes (por exemplo, int ou ambos Double) ou um deles deve ser nulo.
    • O tipo de campo Alteryx será o tipo da ramificação não-nula (ou ambas as ramificações no caso que ambos são não-NULL)
    • Se a ramificação não-nula estiver ativa, o campo Alteryx conterá esse valor
    • Se a ramificação nula estiver ativa, o campo Alteryx será definido como NULL
    • Uniões inválidas são importadas como JSON em um V_WString (use a ferramenta de análise JSON para converter conforme necessário). Por exemplo, uma União com um int como sua ramificação ativa pode ser representada como "{" int ": 123}".
  • Corrigido: mantido como BLOB (use ferramenta blob para converter conforme necessário)

Os seguintes tipos Avro não são suportados nativamente, mas são importados como JSON em uma cadeia de caracteres (use a ferramenta JSON Parsepara converter conforme necessário):

  • Registro: por exemplo, "{" SubField1 ": 7," SubField2 ":" campo2 "} para um registro contendo ambos os campos int e String
  • Array: por exemplo, "[1, 2, 3, 4, 5]" para uma matriz de inteiros
  • MAP: por exemplo, "{" key1 ": value1," Key2 ": value2}" para um mapa de cadeia de caracteres para Double

Saída

Ao escrever arquivos Avro, existem duas opções:

Se essa opção não estiver selecionada, todos os campos de saída serão gravados como seus tipos de Avro nativos (não-União).  Os campos Alteryx que são nulos serão gravados como seu valor padrão (por exemplo, o número 0 para um Int32 e uma seqüência de caracteres vazia para um campo de cadeia de caracteres).

Considere o uso de uma ferramenta de fórmulapara manipular valores nulos com um valor ' conhecido ' para que eles possam ser manipulados no Hadoop.

  1. Habilitar compactação (deflate): ativar a compactação aumentará o tempo de saída, mas, com arquivos maiores, também reduzirá o tempo de rede. A compactação suportada usa o algoritmo DEFLATE (essencialmente gzip) e deve ser suportado nativamente por outras ferramentas compatíveis com Avro, como o hive.
  2. Ao escrever arquivos Avro, há duas opções: se essa opção não for selecionada, todos os campos de saída serão escritos como seus tipos avro nativos (não-união).  Os campos Alteryx que são nulos serão gravados como seu valor padrão (por exemplo, o número 0 para um Int32 e uma seqüência de caracteres vazia para um campo de cadeia de caracteres). Considere o uso de uma ferramenta de fórmulapara manipular valores nulos com um valor ' conhecido ' para que eles possam ser manipulados no Hadoop.
  3. Ativar compactação (deflate): habilitar a compactação aumentará o tempo de saída, mas, com arquivos maiores, também reduzirá o tempo de rede. A compactação suportada usa o algoritmo DEFLATE (essencialmente gzip) e deve ser suportado nativamente por outras ferramentas compatíveis com Avro, como o hive.
  4. Suporte a valores nulos: selecionar esta opção escreverá campos _ all_ como uniões com uma ramificação nula e uma ramificação de valor. Se o valor Alteryx for nulo, a saída Avro Union terá sua ramificação nula selecionada, caso contrário, ela terá sua ramificação de valor selecionada.
  5. O mapeamento de tipo do Alteryx para Avro é o seguinte:
  6. Bool: mantido como Boolean
  7. Byte, Int16, Int32: mantido int (32-bit)
  8. Int64: mantido como longo (64-bit)
  9. Float: mantido como float
  10. Dobro: mantido como o dobro
  11. FixedDecimal: convertido em Double
  12. String, V_String, Date, time, DateTime: mantido como String (UTF-8)
  13. WString, V_WString: convertido em String (UTF-8)
  14. BLOB, SpatialBlob: mantidos como bytes
  15. : Selecionar esta opção escreverá campos _ all_ como uniões com uma ramificação nula e uma ramificação de valor. Se o valor Alteryx for nulo, a saída Avro Union terá sua ramificação nula selecionada, caso contrário, ela terá sua ramificação de valor selecionada.

O mapeamento de tipo do Alteryx para Avro é o seguinte:

  • Bool: mantido como Boolean
  • Byte, Int16, Int32: mantido int (32-bit)
  • Int64: mantido como longo (64-bit)
  • Float: mantido como float
  • Dobro: mantido como o dobro
  • FixedDecimal: convertido em Double
  • String, V_String, Date, time, DateTime: mantido como String (UTF-8)
  • WString, V_WString: convertido em String (UTF-8)
  • BLOB, SpatialBlob: mantidos como bytes
Esta página foi útil?

Problemas com seu produto Alteryx? Visite a Comunidade Alteryx ou entre em contato com nossa Equipe de Suporte. Não é possível enviar este formulário? Envie-nos um e-mail.