Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Avro SerDe

Modo de foco
Avro SerDe - Amazon Athena

Use o Avro SerDe para criar tabelas do Athena a partir dos dados do Avro.

Nome da biblioteca de serialização

O nome da biblioteca de serialização do Avro SerDe é org.apache.hadoop.hive.serde2.avro.AvroSerDe. Para obter informações técnicas, consulte AvroSerDe na documentação do Apache.

Usar o Avro SerDe

Por motivos de segurança, o Athena não oferece suporte ao uso de avro.schema.url para especificação do esquema de tabela; use avro.schema.literal em vez disso.

Para extrair o esquema dos dados no formato Avro, use o arquivo avro-tools-<version>.jar do Apache localizado no subdiretório java da sua versão instalada do Avro. Use o parâmetro getschema para retornar um esquema que você possa usar em sua instrução WITH SERDEPROPERTIES, como no exemplo a seguir.

java -jar avro-tools-1.8.2.jar getschema my_data.avro

Para baixar o Avro, acesse Apache Avro releases (Versões do Apache Avro). Para baixar o Apache Avro Tools diretamente, acesse o repositório do Apache Avro Tools Maven.

Depois de obter o esquema, use uma instrução CREATE TABLE para criar uma tabela do Athena com base nos dados subjacentes do Avro armazenados no Amazon S3. Para especificar o Avro SerDe na sua instrução CREATE TABLE, use ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'. Especifique o esquema usando a cláusula WITH SERDEPROPERTIES, conforme mostrado no exemplo a seguir.

nota

Substitua myregion em s3://athena-examples-myregion/path/to/data/ pelo identificador da região onde o Athena é executado, por exemplo, s3://athena-examples-us-west-1/path/to/data/.

CREATE EXTERNAL TABLE flights_avro_example ( yr INT, flightdate STRING, uniquecarrier STRING, airlineid INT, carrier STRING, flightnum STRING, origin STRING, dest STRING, depdelay INT, carrierdelay INT, weatherdelay INT ) PARTITIONED BY (year STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' WITH SERDEPROPERTIES ('avro.schema.literal'=' { "type" : "record", "name" : "flights_avro_subset", "namespace" : "default", "fields" : [ { "name" : "yr", "type" : [ "null", "int" ], "default" : null }, { "name" : "flightdate", "type" : [ "null", "string" ], "default" : null }, { "name" : "uniquecarrier", "type" : [ "null", "string" ], "default" : null }, { "name" : "airlineid", "type" : [ "null", "int" ], "default" : null }, { "name" : "carrier", "type" : [ "null", "string" ], "default" : null }, { "name" : "flightnum", "type" : [ "null", "string" ], "default" : null }, { "name" : "origin", "type" : [ "null", "string" ], "default" : null }, { "name" : "dest", "type" : [ "null", "string" ], "default" : null }, { "name" : "depdelay", "type" : [ "null", "int" ], "default" : null }, { "name" : "carrierdelay", "type" : [ "null", "int" ], "default" : null }, { "name" : "weatherdelay", "type" : [ "null", "int" ], "default" : null } ] } ') STORED AS AVRO LOCATION 's3://athena-examples-myregion/flight/avro/';

Execute a instrução MSCK REPAIR TABLE na tabela para atualizar metadados da partição.

MSCK REPAIR TABLE flights_avro_example;

Consulte as 10 principais cidades de partida pelo número total de partidas.

SELECT origin, count(*) AS total_departures FROM flights_avro_example WHERE year >= '2000' GROUP BY origin ORDER BY total_departures DESC LIMIT 10;
nota

Os dados da tabela de voos foram extraídos dos Voos fornecidos pelo Departamento de Transportes dos EUA, Bureau of Transportation Statistics (Agência de Estatísticas de Transportes). Saturação do original removida.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.