P: O que é o Amazon Athena?

Amazon Athena é um serviço de query interativo que facilita a análise de dados no Amazon S3 usando SQL padrão. O Athena não usa servidor, de forma que não existe uma infraestrutura para configurar ou gerenciar; é possível começar a analisar os dados imediatamente. Não é necessário nem mesmo carregar dados no Athena, ele trabalha diretamente com os dados armazenados no S3. Para começar, basta fazer login no Athena Management Console, definir seu schema e dar início às queries. O Amazon Athena usa Presto, com suporte completo a SQL padrão, e funciona com diversos formatos de dados padrão, como CSV, JSON, ORC, Apache Parquet e Avro. Apesar de o Amazon Athena ser ideal para queries rápidas ad hoc e se integrar com o Amazon QuickSight para facilidade de visualização, ele também consegue lidar com análise complexa, inclusive grandes joins, funções de janela e arrays.

P: O que posso fazer com o Amazon Athena?

O Amazon Athena ajuda você analisar os dados armazenados no Amazon S3. Você pode usar o Athena para rodar queries ad hoc usando SQL padrão ANSI, sem a necessidade de agregar ou carregar os dados no Athena. O Amazon Athena pode processar datasets desestruturados, semi-estruturados e estruturados. Os exemplos incluem formatos de dados CSV, JSON e Avro, além de formatos de dados colunares como Apache Parquet e Apache ORC. O Amazon Athena se integra com o Amazon QuickSight para facilidade de visualização. Você também pode usar o Amazon Athena para gerar relatórios ou explorar dados com ferramentas de business intelligence ou clientes SQL conectados via driver JDBC.

P: Como faço para começar a usar o Amazon Athena?

Para começar a usar o Amazon Athena, basta fazer login no Console de Gerenciamento da AWS para o Athena e criar seu schema escrevendo statements DDL no console ou usando um assistente de criação de tabelas. Então, você pode começar a consultar dados usando o editor de queries incorporado. O Athena faz queries dos dados diretamente pelo Amazon S3, para que nenhum carregamento seja necessário.  

P: Como faço para acessar o Amazon Athena?

O Amazon Athena pode ser acessado pelo Console de Gerenciamento da AWS, bem como por meio de uma API e um driver JDBC. De forma programática, você pode rodar queries, adicionar tabelas ou partições usando o driver JDBC.

P: Quais são os limites de serviço associados ao Amazon Athena?

Clique aqui para saber mais sobre os limites de serviço

P: Qual é a tecnologia por trás do Amazon Athena?

O Amazon Athena usa Presto, com suporte completo a SQL padrão, e funciona com diversos formatos de dados padrão, como CSV, JSON, ORC, Avro e Parquet. O Athena consegue lidar com análises complexas, inclusive grandes joins, funções de janela e arrays. Como o Amazon Athena usa o Amazon S3 como datastore subjacente, ele é altamente disponível e durável, com dados armazenados em redundância em vários locais e vários dispositivos em cada local.

P: Como o Amazon Athena armazena definições de tabela e schema?

O Amazon Athena usa um catálogo de dados gerenciado para armazenar informações e schemas sobre os bancos de dados e as tabelas que você cria para os dados armazenados no Amazon S3. Nas regiões em que o AWS Glue encontra-se disponível, você pode fazer o upgrade para usar o AWS Glue Data Catalog com o Amazon Athena. Nas regiões em que o AWS Glue não está disponível, o Athena usa um catálogo interno.

Você pode modificar o catálogo usando statements DDL ou pelo Console de Gerenciamento da AWS. Todos os esquemas que você definir serão automaticamente salvos, a menos que você explicitamente os exclua. O Athena usa a tecnologia schema-on-read, o que significa que suas definições de tabela são aplicadas aos dados no S3 quando as queries estiverem sendo executadas. Não é necessário carregamento nem transformação de dados. Você pode excluir as definições de tabela e o schema sem afetar os dados subjacentes armazenados no Amazon S3.

P: Por que devo atualizar o AWS Glue Data Catalog?

O AWS Glue é um serviço ETL totalmente gerenciado. O Glue tem três componentes principais: 1) um crawler que verifica automaticamente suas fontes de dados, identifica formatos de dados e infere schemas, 2) um serviço ETL totalmente gerenciado que permite transformar e migrar dados para vários destinos, e 3) um catálogo de dados que armazena informações de metadados sobre tabelas e bancos de dados armazenados no S3 ou em um datastore compatível com JDBC. Para usar os benefícios do Glue, você deve fazer o upgrade, deixando de usar o catálogo interno do Athena e adotando o Glue Data Catalog.

Os benefícios do upgrade para o Glue Data Catalog são:

  1. Repositório de metadados unificado: o AWS Glue é integrado a uma grande variedade de Serviços da AWS. O AWS Glue aceita dados armazenados no Amazon Aurora, no Amazon RDS MySQL, no Amazon RDS PostgreSQL, no Amazon Redshift e no Amazon S3, bem como nos bancos de dados MySQL e PostgreSQL da Virtual Private Cloud (Amazon VPC) em execução no Amazon EC2. O AWS Glue disponibiliza integração de fábrica ao Amazon Athena, ao Amazon EMR, ao Amazon Redshift Spectrum e a qualquer aplicativo compatível com o Apache Hive Metastore.
  2. Reconhecimento automático de schema e partição: o AWS Glue faz automaticamente crawling de fontes de dados, identifica formatos de dados e sugere schemas e transformações. Os crawlers podem ajudar a automatizar a criação de tabelas e o carregamento automático de partições.
  3. Pipelines fáceis de criar: o mecanismo ETL do AWS Glue gera código Python personalizável, reutilizável e portátil. É possível editar o código usando um notebook ou um IDE preferencial, e compartilhá-lo com outras pessoas usando o GitHub. Quando seu trabalho ETL estiver pronto, você poderá programá-lo para que seja executado na infraestrutura Spark com aumento de escala horizontal, totalmente gerenciada do AWS Glue. O AWS Glue não tem servidor, por isso ele administra o provisionamento, a configuração e a escalabilidade dos recursos exigidos para executar trabalhos ETL, o que permite a integração total do ETL ao seu fluxo de trabalho.

Clique aqui para saber mais sobre o Glue Data Catalog.

P: Existem instruções detalhadas sobre o upgrade para o AWS Data Catalog?

Sim. O guia detalhado pode ser encontrado aqui.

P: Em quais regiões o Amazon Athena está disponível?

Consulte a tabela de produtos e serviços por região para conhecer detalhes da disponibilidade do serviço do Amazon Athena por região.

P: Qual é a diferença entre o Amazon Athena, o Amazon EMR e o Amazon Redshift?

Serviços de query como o Amazon Athena, data warehouses como o Amazon Redshift e estruturas de processamento de dados sofisticadas como o Amazon EMR atendem a diferentes necessidades e casos de uso. Você só precisa escolher a ferramenta certa para o trabalho. O Amazon Redshift tem a maior rapidez no desempenho de query para relatórios corporativos e cargas de trabalho de business intelligence, especialmente naqueles que envolvem SQL extremamente complexo com múltiplos joins e subqueries. O Amazon EMR simplifica e oferece boa relação custo-benefício para a execução de estruturas de processamento altamente distribuídas, como Hadoop, Spark e Presto, quando comparado a implantações locais (on-premises). O Amazon EMR é flexível – você pode rodar aplicações e código personalizados, além de definir parâmetros computacionais, de memória, armazenamento e aplicações específicos para otimizar os requisitos analíticos. O Amazon Athena é a forma mais fácil de rodar queries ad hoc para dados no S3 sem a necessidade de configurar nem gerenciar nenhum servidor.

P: Quando usar um data warehouse corporativo repleto de recursos, como o Amazon Redshift vs. um serviço de query como o Amazon Athena?

Um data warehouse como o Amazon Redshift é a sua melhor opção quando você precisar reunir em um formato comum dados de várias fontes diferentes – como sistemas de inventário, sistemas financeiros e sistemas de vendas a varejo – e armazená-lo por longos períodos, de forma a criar relatórios de negócios sofisticados com base em dados históricos; nesse caso, um data warehouse como o Amazon Redshift é a melhor escolha.

Data warehouses coletam dados de toda a empresa e agem como "fonte única da verdade" para geração e análise de relatórios. Os data warehouses pegam dados de várias fontes, os formata e organiza, armazena e oferece suporte a queries complexas de alta velocidade que produzem relatórios comerciais. O mecanismo de query do Amazon Redshift foi otimizado para ter um desempenho especialmente bom neste caso de uso – quando você precisa rodar queries complexas que fazem a junção de um grande números de tabelas de bancos de dados muito grandes. O TPC-DS é um benchmark padrão projetado para replicar este caso de uso, e o Redshift roda essas queries até 20 vezes mais rápido que os serviços de queries otimizados para dados não estruturados. Quando você precisar rodar queries contra dados altamente estruturados com muitos joins de muitas tabelas muito grandes, selecione Amazon Redshift.

Por comparação, serviços de query como o Amazon Athena facilitam a execução de queries interativas contra dados diretamente no Amazon S3, sem a preocupação de formatação de dados ou gerenciamento de infraestrutura. Por exemplo, o Athena é ótimo se você precisar só rodar uma query rápida em alguns logs da web para solucionar um problema de desempenho no seu local. Com os serviços de query, isso pode ser feito com mais rapidez. Basta definir uma tabela para seus dados e iniciar a query usando SQL padrão.

Você também pode usar os dois serviços em conjunto. Se você colocar seus dados no Amazon S3 antes de carregá-los no Amazon Redshift, esses dados também poderão ser registrados e consultados pelo Amazon Athena.

P: Quando devo usar o Amazon EMR ou o Amazon Athena?

O Amazon EMR vai muito além da simples execução de queries SQL. Com o EMR, você pode rodar diversas tarefas de processamento de dados de escalonamento horizontal para aplicações como Machine Learning, análise de gráficos, transformação de dados, streaming de dados e praticamente qualquer coisa que você puder codificar. Você deve usar o Amazon EMR se usar código personalizado para processar e analisar datasets extremamente grandes com as estruturas de processamento de big data mais recentes, como Spark, Hadoop, Presto ou Hbase. O Amazon EMR lhe dá controle total sobre a configuração dos seus clusters e do software instalado neles.

Você deverá usar o Amazon Athena se quiser rodar queries SQL ad hoc interativas nos dados no Amazon S3 sem ter de gerenciar infraestruturas ou clusters.

P: Posso usar o Amazon Athena para fazer queries de dados que processo usando o Amazon EMR?

Sim, o Amazon Athena é compatível com muitos dos mesmos formatos de dados que o Amazon EMR. O catálogo de dados do Athena é compatível com a metastore Hive. Se você estiver usando EMR e já tiver um metastore Hive, basta executar os statements DDL no Amazon Athena e começar a fazer queries dos dados imediatamente, sem afetar os trabalhos no Amazon EMR.

P: Como faço para criar tabelas e schemas para meus dados no Amazon S3?

O Amazon Athena usa Apache Hive DDL para definir tabelas. Você pode executar instruções DDL usando o console do Athena, o driver JDBC, a API ou o assistente de criação de tabelas do Athena. Se você usar o AWS Glue Data Catalog com o Athena, poderá também usar os crawlers do Glue para inferir schemas e partições automaticamente. Um crawler do AWS Glue conecta-se a um datastore, analisa uma lista priorizada de classificadores para extrair o schema dos dados e de outras estatísticas e, por fim, preenche o Glue Data Catalog com os metadados obtidos. Os crawlers podem ser executados periodicamente para detectar a disponibilidade de novos dados, bem como alterações feitas nos dados atuais, inclusive alterações de definição de tabela. Os crawlers adicionam automaticamente novas tabelas, novas partições para tabelas atuais e novas versões de definições de tabela. É possível personalizar os crawlers do Glue para classificar seus próprios tipos de arquivos.

Ao criar um novo schema de tabela no Amazon Athena, o schema será armazenado no catálogo de dados e usado ao executar consultas, mas não modificará os dados no S3. O Athena usa uma abordagem conhecida como schema-on-read, que permite a você projetar seu schema nos seus dados no momento em que executa uma query. Isso elimina a necessidade de carregamento ou transformação de dados. Saiba mais sobre criação de tabelas.

P: Que formatos de dados são compatíveis com o Amazon Athena?

O Amazon Athena é compatível com uma grande variedade de formatos de dados, como CSV, TSV, JSON ou Textfiles, e também com formatos colunares de código aberto, como Apache ORC e Apache Parquet. O Athena também é compatível com dados compactados em formato Snappy, Zlib, LZO e GZIP. Ao compactar, particionar e usar formatos colunares, você pode melhorar o desempenho e reduzir os custos.

P: Que tipos de dados são compatíveis com o Amazon Athena?

O Amazon Athena é compatível com tipos de dados simples, como INTEGER, DOUBLE, VARCHAR, e com tipos de dados complexos, como MAPS, ARRAY e STRUCT.  

P: Posso executar alguma query Hive no Athena?

O Amazon Athena só usa o Hive para DDL (Data Definition Language) e para criação/modificação e exclusão de tabelas e/ou partições. Clique aqui para ver a lista completa de statements compatíveis. O Athena usa Presto ao executar queries SQL no Amazon S3. Você pode executar statements SELECT de SQL compatível com ANSI para fazer query dos seus dados no Amazon S3.

P: O que é SerDe?

SerDe é a sigla de Serializer/Deserializer (serializador/desserializador), que são bibliotecas que dizem ao Hive como interpretar formatos de dados. Os statements DLL do Hive exigem que você especifique um SerDe, de forma que o sistema saiba como interpretar os dados para os quais você está apontando. O Amazon Athena usa SerDes para interpretar os dados lidos pelo Amazon S3. O conceito do SerDes no Athena é o mesmo que o conceito usado no Hive. O Amazon Athena é compatível com os seguintes SerDes:

  1. Logs do Apache Web: "org.apache.hadoop.hive.serde2.RegexSerDe"
  2. CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  3. TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  4. Delimitadores personalizados: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  5. Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
  6. Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde"
  7. JSON: “org.apache.hive.hcatalog.data.JsonSerDe” OU org.openx.data.jsonserde.JsonSerDe

P: Posso adicionar meu próprio SerDe (serializador/desserializador) ao Amazon Athena?

Atualmente, não é possível adicionar seu próprio SerDe ao Amazon Athena. Como nós valorizamos seus comentários, se houver algum SerDe que você gostaria de adicionar, entre em contato com a equipe do Athena pelo endereço Athena-feedback@amazon.com

P: Eu criei arquivos Parquet/ORC usando Spark/Hive. Poderei fazer query deles via Athena?

Sim, arquivos Parquet e ORC criados via Spark podem ser lidos no Athena.

P: Tenho dados que vêm do Kinesis Firehose. Posso fazer query deles usando o Athena?

Se os dados do seu Kinesis Firehose estiverem armazenados no Amazon S3, você pode fazer query deles usando o Amazon Athena. Basta criar um schema para seus dados no Athena e iniciar a query. Recomendamos que você organize os dados em partições para otimizar o desempenho. Você pode adicionar partições criadas pelo Kinesis Firehose usando statements DDL ALTER TABLE. Saiba mais sobre partições.

P: O Amazon Athena é compatível com particionamento de dados?

Sim. O Amazon Athena permite que você particione os dados em qualquer coluna. As partições lhe permitem limitar a quantidade de dados lidos a cada query, acarretando economia de custos e agilidade no desempenho. Você pode especificar o esquema de particionamento usando a cláusula PARTITIONED BY no statement CREATE TABLE. Saiba mais sobre particionamento de dados.

P: Como faço para adicionar novos dados a uma tabela existente no Amazon Athena?

Se seus dados forem particionados, você precisará executar uma query de metadados (ALTER TABLE ADD PARTITION) para adicionar a partição ao Athena quando forem disponibilizados novos dados no Amazon S3. Se seus dados não estiverem particionados, a simples adição de novos dados (ou arquivos) ao prefixo existente adicionará automaticamente os dados ao Athena. Saiba mais sobre particionamento de dados.

P: Já tenho grandes quantidades de dados de log no Amazon S3. Posso usar o Amazon Athena para fazer queries?

Sim, o Amazon Athena facilita rodar queries SQL padrão nos dados de log existentes. O Athena faz queries dos dados diretamente pelo Amazon S3, para que nenhuma movimentação ou carregamento de dados sejam necessários. Basta definir seu schema usando statements DDL e iniciar imediatamente as queries dos dados.

P: Que tipos de queries são compatíveis com o Amazon Athena?

O Amazon Athena é compatível com queries SQL padrão ANSI. O Amazon Athena usa o Presto, um mecanismo SQL distribuído, in-memory e de código aberto, e é capaz de lidar com análises complexas, inclusive grandes joins, funções de janela e arrays.

P: Posso usar o Amazon QuickSight com o Amazon Athena?

Sim. O Amazon Athena se integra ao Amazon QuickSight, permitindo que você visualize os dados armazenados no Amazon S3.

P: O Athena é compatível com outras ferramentas de BI e outros clientes SQL?

Sim. O Amazon Athena vem com um driver JDBC que você pode usar com outras ferramentas de business intelligence ou clientes SQL. Saiba mais sobre como usar um driver JDBC com o Athena.

P: O Athena é compatível com funções definidas pelo usuário (UDF)?

Atualmente, o Athena não é compatível com UDFs personalizadas. Se você precisar de suporte para UDF, envie um e-mail para nós no endereço athena-feedback@amazon.com e nos conte mais sobre as suas necessidades.

P: Como faço para acessar as funções compatíveis com o Amazon Athena?

Clique aqui para saber mais sobre as funções compatíveis com o Amazon Athena.

P: Como faço para melhorar o desempenho da minha query?

Você pode melhorar o desempenho da sua query ao compactar, particionar ou converter os dados em formatos colunares. O Amazon Athena é compatível com formatos de dados em CSV, JSON ou colunar, como Apache Parquet e Apache ORC. Converter seus dados em formato compactado e colunar diminui o custo e melhora o desempenho da query ao permitir que o Athena examine menos dados do S3 ao executar sua query.

P: Como controlo o acesso aos meus dados?

O Amazon Athena lhe permite controlar o acesso aos seus dados usando políticas do AWS Identity and Access Management (IAM), listas de controle de acesso (ACLs) e políticas do bucket do Amazon S3. Com as políticas de IAM, você pode conceder aos usuários do IAM controle fino aos buckets do S3. Ao controlar o acesso aos dados no S3, você pode restringir quais usuários podem fazer queries usando o Athena.

O Athena pode consultar dados criptografados no Amazon S3?

Sim, você pode consultar dados criptografados usando a Criptografia no lado do servidor com o Amazon S3-Managed Encryption Keys, a Criptografia no lado do servidor com o AWS Key Management Service (KMS) – Managed Keys e a Criptografia no lado do cliente com as chaves gerenciadas pelo KMS. O Amazon Athena também tem integração com o KMS e oferece uma opção de criptografar seus conjuntos de resultados.

P: O Athena tem alta disponibilidade?

Sim. O Amazon Athena tem alta disponibilidade e executa queries usando recursos computacionais em vários locais, roteando automaticamente as queries da forma adequada se determinada unidade não estiver acessível. O Athena usa o Amazon S3 como datastore subjacente, conferindo alta disponibilidade e durabilidade aos seus dados. O Amazon S3 proporciona infraestrutura durável para armazenar dados importantes e foi projetado para oferecer durabilidade de objetos de 99,999999999%. Seus dados são armazenados com redundância em várias instalações e diversos dispositivos em cada instalação.

P: Posso fornecer acesso intercontas ao bucket do S3 de outra pessoa?

Sim, você pode fornecer acesso intercontas ao Amazon S3.

P: Como é determinado o preço do Amazon Athena?

O preço do Amazon Athena é determinado por query e cobranças baseadas na quantidade de dados examinados pela query. Você pode armazenar dados em diversos formatos no Amazon S3. Se você compactar seus dados, particioná-los ou convertê-los em formatos de armazenamento colunar, pagará menos, pois examinará menos dados. Converter dados pelo formato colunar permite que o Athena leia somente as colunas de que precisa para processar a query. Veja a página de preços do Athena para obter mais detalhes

P: Por que a cobrança é menor quando eu uso um formato colunar?

O Amazon Athena cobra você pela quantidade de dados examinada por query. Compactar seus dados permite que o Amazon Athena examine menos dados. Converter seus dados em formatos colunares permite que o Athena leia seletivamente somente as colunas necessárias para processar os dados. Particionar seus dados também permite que o Athena restrinja a quantidade de dados examinados. Isso traz economia de custo e melhoria no desempenho. Veja o exemplo de definição de preços para obter mais detalhes.

P: Como faço para diminuir meus custos?

Você pode economizar de 30% a 90% nos custos com queries e obter melhor desempenho ao compactar, particionar e converter seus dados em formatos colunares. Cada uma dessas operações reduz a quantidade de dados de que o Amazon Athena precisa para examinar e executar uma query. O Amazon Athena é compatível com Apache Parquet e ORC, dois dos formatos colunares abertos mais populares. Você pode ver a quantidade de dados escaneados por query no console do Athena.  

P: O Amazon Athena pode me cobrar por queries que falharem?

Não, você não é cobrado por queries que falharem.

P: O Amazon Athena pode me cobrar por queries canceladas?

Sim, se você cancelar uma query manualmente, será cobrado pela quantidade de dados examinados até o ponto em que cancelou a query.

P: Há alguma cobrança adicional associada ao Amazon Athena?

O Amazon Athena consulta dados diretamente pelo Amazon S3; por isso, seus dados-fonte são cobrados segundo as tarifas do S3. Quando o Amazon Athena roda uma query, ele armazena os resultados em um bucket do S3 da sua escolha e você é cobrado na tarifa padrão do S3 para esses conjuntos de resultados. Recomendamos que você monitore esses buckets e use políticas de ciclo de vida para controlar quantos dados ficam retidos.

P: Serei cobrado pelo uso do AWS Glue Data Catalog?

Sim. Você será cobrado separadamente pelo uso do AWS Glue Data Catalog. Clique aqui para saber mais sobre a definição de preço do Glue Data Catalog.