Redshift da Amazon é um information warehouse em nuvem rápido e totalmente gerenciado que torna econômica a análise de seus dados usando SQL padrão e ferramentas de enterprise intelligence. Você pode usar o Amazon Redshift para analisar dados estruturados e semiestruturados e consultar information lakes e bancos de dados operacionais de forma integrada, usando {hardware} projetado pela AWS e ajuste baseado em machine studying automatizado (ML) para oferecer desempenho de preço de alto nível em escala.
Amazon Redshift oferece desempenho de preço pronto para uso. No entanto, ele também oferece otimizações adicionais que você pode usar para melhorar ainda mais esse desempenho e obter tempos de resposta de consulta ainda mais rápidos do seu information warehouse.
Uma dessas otimizações para reduzir o tempo de execução da consulta é pré-calcular os resultados da consulta na forma de um visão materializada. Visualizações materializadas no Redshift aceleram a execução de consultas em tabelas grandes. Isto é útil para consultas que envolvem agregações e junções de múltiplas tabelas. As visualizações materializadas armazenam um conjunto de resultados pré-computados dessas consultas e também oferecem suporte ao recurso de atualização incremental para tabelas locais.
Os clientes usam tabelas de information lake para obter armazenamento econômico e interoperabilidade com outras ferramentas. Com formatos de tabela abertos (OTFs), como o Apache Iceberg, os dados são continuamente adicionados e atualizados.
O Amazon Redshift agora oferece a capacidade de atualizar gradativamente suas visualizações materializadas em tabelas de information lake, incluindo arquivos abertos e formatos de tabela, como Apache Iceberg.
Nesta postagem, mostraremos passo a passo quais operações são suportadas em formatos de arquivo abertos e tabelas de information lake transacionais para permitir a atualização incremental da visualização materializada.
Pré-requisitos
Para percorrer os exemplos nesta postagem, você precisa dos seguintes pré-requisitos:
- Você pode testar a atualização incremental de visualizações materializadas em tabelas de information lake padrão em sua conta usando um information warehouse e um information lake existentes do Redshift. No entanto, se quiser testar os exemplos usando dados de amostra, baixe os dados de amostra. Os arquivos de amostra são ‘|’ arquivos de texto delimitados.
- Um AWS Identification and Entry Administration (IAM) função anexada ao Amazon Redshift para conceder o permissões mínimas obrigado a usar Espectro Redshift com Serviço de armazenamento simples da Amazon (Amazon S3) e Cola AWS.
- Defina a função do IAM como padrão função no Amazon Redshift.
Atualização incremental de visualização materializada em tabelas de information lake padrão
Nesta seção, você aprenderá como criar e atualizar de forma incremental visualizações materializadas no Amazon Redshift em arquivos de texto padrão no Amazon S3, mantendo a atualização dos dados com uma abordagem econômica.
- Carregar o primeiro arquivo,
buyer.tbl.1
baixado do Pré-requisitos seção no bucket S3 desejado com o prefixobuyer
. - Conecte-se ao grupo de trabalho sem servidor do Amazon Redshift ou ao cluster provisionado do Redshift usando Editor de consultas v2.
- Crie um esquema externo.
- Crie uma tabela externa chamada
buyer
no esquema externodatalake_mv_demo
criado na etapa anterior. - Valide os dados de amostra no cliente externo.
- Crie uma visão materializada na tabela externa.
- Valide os dados na visão materializada.
- Carregar um novo arquivo
buyer.tbl.2
no mesmo bucket S3 ebuyer
localização do prefixo. Este arquivo contém um registro adicional. - Usando Editor de consultas v2 atualize a visualização materializada
customer_mv
. - Valide a atualização incremental da visualização materializada quando o novo arquivo for adicionado.
- Recuperar o número atual de linhas presentes na visualização materializada
customer_mv
. - Excluir o arquivo existente
buyer.tbl.1
do mesmo bucket S3 e prefixobuyer
. Você só deveria terbuyer.tbl.2
nobuyer
prefixo do seu bucket S3. - Usando Editor de consultas v2atualize a visualização materializada
customer_mv
de novo. - Verifique se a visualização materializada é atualizada incrementalmente quando o arquivo existente é excluído.
- Recuperar a contagem de linhas atual na visualização materializada
customer_mv
. Deve agora ter um registro como presente nobuyer.tbl.2
arquivo. - Modifique o conteúdo do baixado anteriormente
buyer.tbl.2
arquivo alterando a chave do cliente de999999999
para111111111
. - Salve o arquivo modificado e carregue-o novamente no mesmo bucket do S3, substituindo o arquivo existente no
buyer
prefixo. - Usando Editor de consultas v2atualize a visualização materializada
customer_mv
- Valide se a visualização materializada foi atualizada incrementalmente depois que os dados foram modificados no arquivo.
- Valide se os dados na visualização materializada refletem as alterações de dados anteriores
999999999
para111111111
.
Atualização incremental de visualização materializada em tabelas de information lake do Apache Iceberg
Iceberg Apache é um formato de tabela aberta de information lake que está se tornando rapidamente um padrão do setor para gerenciamento de dados em information lakes. O Iceberg apresenta novos recursos que permitem que vários aplicativos trabalhem juntos nos mesmos dados de maneira transacionalmente consistente.
Nesta seção, exploraremos como Redshift da Amazon pode integrar-se perfeitamente com o Apache Iceberg. Você pode usar essa integração para criar visualizações materializadas e atualizá-las de forma incremental usando uma abordagem econômica, mantendo a atualização dos dados armazenados.
- Faça login no Console de gerenciamento da AWSVá para Amazon Atenase execute o SQL a seguir para criar um banco de dados em um catálogo do AWS Glue.
- Crie uma nova tabela Iceberg
- Adicione alguns dados de amostra a
iceberg_mv_demo.class
. - Valide os dados de amostra em
iceberg_mv_demo.class
. - Conecte-se ao grupo de trabalho sem servidor do Amazon Redshift ou ao cluster provisionado do Redshift usando Editor de consultas v2.
- Crie um esquema externo
- Consulte os dados da tabela Iceberg do Amazon Redshift.
- Crie uma visão materializada usando o esquema externo.
- Valide os dados na visão materializada.
- Usando Amazon Atenasmodifique a tabela Iceberg
iceberg_mv_demo.class
e insira dados de amostra. - Usando Editor de consultas v2atualize a visualização materializada
mv_category
. - Valide a atualização incremental da visualização materializada depois que os dados adicionais forem preenchidos na tabela Iceberg.
- Usando Amazon Atenasmodifique a tabela Iceberg
iceberg_mv_demo.class
excluindo e atualizando registros. - Valide os dados de amostra em
iceberg_mv_demo.class
para confirmar issocatid=4
foi atualizado ecatid=3
foi excluído da tabela. - Usando Editor de consultas v2Atualize a visão materializada
mv_category
. - Valide a atualização incremental da visualização materializada depois que uma linha foi atualizada e outra foi excluída.
Melhorias de desempenho
Para entender as melhorias de desempenho da atualização incremental em relação à recomputação completa, usamos o padrão do setor Benchmark TPC-DS usando conjuntos de dados de 3 TB para tabelas Iceberg configuradas em copy-on-write. Em nosso benchmark, as tabelas de fatos são armazenadas no Amazon S3, enquanto as tabelas de dimensões estão no Redshift. Nós criamos 34 visualizações materializadas representando diferentes casos de uso de clientes em um cluster provisionado Redshift de tamanho ra3.4xl com 4 nós. Nós aplicamos 1% inserções e exclusões em tabelas de fatos, ou seja, tabelas store_sales
, catalog_sales
e web_sales
. Executamos as inserções e exclusões com Spark SQL no EMR sem servidor. Atualizamos todas as 34 visualizações materializadas usando atualização incremental e latências de atualização medidas. Repetimos o experimento usando recomputação completa.
Nossos experimentos mostram que a atualização incremental proporciona ganhos substanciais de desempenho em relação à recomputação completa. Após as inserções, a atualização incremental foi 13,5X mais rápido em média, do que a recomputação completa (máximo 43,8X, mínimo 1,8X). Após exclusões, a atualização incremental foi 15X mais rápido em média (máximo 47X, mínimo 1,2X). Os gráficos a seguir ilustram a latência da atualização.
Inserções
Exclui
Limpar
Quando terminar, remova todos os recursos que não são mais necessários para evitar cobranças contínuas.
- Execute o script a seguir para limpar os objetos do Amazon Redshift.
- Execute o script a seguir para limpar as tabelas do Apache Iceberg usando Amazon Atenas.
Conclusão
As visualizações materializadas no Amazon Redshift podem ser uma ferramenta de otimização poderosa. Com a atualização incremental de visualizações materializadas em tabelas de information lake, você pode armazenar resultados pré-calculados de suas consultas em uma ou mais tabelas base, fornecendo uma abordagem econômica para manter dados atualizados. Incentivamos você a atualizar suas cargas de trabalho de information lake e usar o recurso de visualização materializada incremental. Se você é novo no Amazon Redshift, experimente o Tutorial de primeiros passos e use o teste gratuito para criar e provisionar seu primeiro cluster e experimentar o recurso.
Ver Visualizações materializadas em tabelas externas de information lake no Amazon Redshift Spectrum para considerações e melhores práticas.
Sobre os autores
Raks Khare é arquiteto de soluções especialista em análise sênior na AWS, baseado na Pensilvânia. Ele ajuda clientes de diversos setores e regiões a arquitetar soluções de análise de dados em escala na plataforma AWS. Fora do trabalho, ele gosta de explorar novos destinos de viagem e gastronomia e de passar bons momentos com sua família.
Tahir Aziz é arquiteto de soluções analíticas na AWS. Ele trabalha na construção de information warehouses e soluções de massive information há mais de 15 anos. Ele adora ajudar os clientes a projetar soluções analíticas completas na AWS. Fora do trabalho, ele gosta de viajar e cozinhar.
Raza Hafeez é gerente de produto sênior da Amazon Redshift. Ele tem mais de 13 anos de experiência profissional na criação e otimização de information warehouses empresariais e é apaixonado por permitir que os clientes percebam o poder de seus dados. Ele é especialista na migração de information warehouses empresariais para AWS Trendy Information Structure.
Enrico Siragusa é engenheiro sênior de desenvolvimento de software program na Amazon Redshift. Ele contribuiu para o processamento de consultas e visualizações materializadas. Enrico possui um M.Sc. em Ciência da Computação pela Universidade de Paris-Est e Ph.D. em Bioinformática pela Escola Internacional de Pesquisa Max Planck em Biologia Computacional e Computação Científica em Berlim.