Usar formatos de armazenamento colunares
Apache Parquet
Os formatos de armazenamento colunar têm as seguintes características que os tornam adequados para o uso com o Athena:
-
Compactação por coluna, com algoritmo de compactação selecionado para o tipo de dados da coluna para economizar espaço de armazenamento no Amazon S3 e reduzir E/S e espaço no disco durante o processamento de consultas.
-
A aplicação de predicados em Parquet e ORC permite que as consultas do Athena busquem somente os blocos de que precisa, melhorando a performance das consultas. Quando uma consulta do Athena obtém valores de coluna específicos dos seus dados, ela usa as estatísticas dos predicados de bloco de dados, como valores máximos e mínimos, para determinar se é para ler ou ignorar o bloco.
-
A divisão de dados em Parquet e ORC permite que o Athena divida a leitura de dados entre vários leitores e aumente o paralelismo durante o processamento da consulta.
Para converter seus dados brutos existentes de outros formatos de armazenamento em Parquet ou ORC, é possível executar consultas CREATE TABLE AS SELECT (CTAS) no Athena e especificar um formato de armazenamento de dados como Parquet ou ORC, ou usar o crawler do AWS Glue.
Escolher entre Parquet e ORC
A escolha entre ORC (Optimized Row Columnar) e Parquet depende de seus requisitos específicos de uso.
O Apache Parquet fornece esquemas eficientes de compactação e codificação de dados e é ideal para executar consultas complexas e processar grandes quantidades de dados. O Parquet é otimizado para uso com o Apache Arrow
O ORC fornece uma maneira eficiente de armazenar dados do Hive. Os arquivos ORC geralmente são menores do que os arquivos Parquet, e os índices ORC podem agilizar as consultas. Além disso, o ORC é compatível com tipos complexos, como estruturas, mapas e listas.
Ao escolher entre Parquet e ORC, considere o seguinte:
Desempenho da consulta: o Parquet é compatível com uma variedade maior de tipos de consulta, por isso pode ser a melhor opção se você planeja realizar consultas complexas.
Tipos de dados complexos: se você estiver usando tipos de dados complexos, o ORC pode ser a melhor opção, porque ele é compatível com uma variedade maior de tipos de dados complexos.
Tamanho do arquivo: se o espaço em disco for uma preocupação, o ORC geralmente resulta em arquivos menores, o que pode reduzir os custos de armazenamento.
Compactação: tanto o Parquet quanto o ORC oferecem boa compactação, mas o melhor formato para você pode depender do seu caso específico de uso.
Evolução: tanto o Parquet quanto o ORC são compatíveis com uma evolução do esquema, o que significa que você pode adicionar, remover ou modificar colunas ao longo do tempo.
Tanto o Parquet quanto o ORC são boas opções para aplicações de big data, mas considere os requisitos do seu cenário antes de escolher. Talvez você queira realizar avaliações comparativas em seus dados e consultas para ver qual formato funciona melhor para seu caso de uso.
Converter em formatos colunares
As opções para converter facilmente dados de origem, como JSON ou CSV, em um formato colunar, incluem o uso de consultas CREATE TABLE AS ou a execução de trabalhos no AWS Glue.
-
Você pode usar consultas (CTAS)
CREATE TABLE AS
para converter dados em Parquet ou ORC em uma única etapa. Para ver um exemplo, consulte Exemplo: gravar resultados da consulta em um formato diferente na página Exemplos de consultas CTAS. -
Para obter informações sobre como usar o Athena para ETL para transformar dados de CSV em Parquet, consulte Usar CTAS e INSERT INTO para ETL e análise de dados.
-
Para obter informações sobre como executar um trabalho do AWS Glue para transformar dados CSV em Parquet, consulte a seção “Transformar dados CSV em formato Parquet” na publicação Construir a fundação de um data lake com o AWS Glue e o Amazon S3
no blog sobre big data da AWS. O AWS Glue oferece suporte à mesma técnica para converter dados CSV em ORC ou dados JSON em Parquet ou ORC.