Tipos De Dados Avro
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.
- 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.
- 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.
- 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.
- 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.
- 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
- : 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