Enviar dados do DynamoDB para o Amazon Redshift
O Amazon Redshift complementa o Amazon DynamoDB com recursos avançados de business intelligence e uma poderosa interface baseada em SQL. Ao copiar os dados de uma tabela do DynamoDB para o Amazon Redshift, você pode realizar consultas de análise de dados complexas nesses dados, incluindo junções com outras tabelas em seu cluster do Amazon Redshift.
Em termos de throughput provisionado, uma operação de cópia de uma tabela do DynamoDB entra na contagem da capacidade de leitura dessa tabela. Depois que os dados são copiados, as consultas SQL no Amazon Redshift não afetam o DynamoDB de forma alguma. Isso ocorre porque as consultas agem em uma cópia dos dados do DynamoDB, em vez de no DynamoDB em si.
Para poder carregar dados de uma tabela do DynamoDB, você deve primeiro criar uma tabela do Amazon Redshift para servir como o destino dos dados. Lembre-se de que você está copiando dados de um ambiente NoSQL para um ambiente SQL, e que há determinadas regras em um ambiente que não se aplicam ao outro. Veja algumas das diferenças a considerar:
-
Os nomes de tabela do DynamoDB podem conter até 255 caracteres, incluindo os caracteres "." (ponto) e "-" (traço), e diferenciam maiúsculas e minúsculas. Os nomes de tabela do Amazon Redshift são limitados a 127 caracteres, não podem conter pontos ou traços e não diferenciam maiúsculas e minúsculas. Além disso, nomes de tabela não podem entrar em conflito com quaisquer palavras reservadas do Amazon Redshift.
-
O DynamoDB não é compatível com o conceito SQL de NULL. Você precisa especificar como o Amazon Redshift interpreta valores de atributo vazios ou em branco no DynamoDB, tratando-os como NULLs ou como campos vazios.
-
Os tipos de dados do DynamoDB não correspondem diretamente aos do Amazon Redshift. Você precisa garantir que cada coluna na tabela do Amazon Redshift seja do tipo e do tamanho corretos para acomodar os dados do DynamoDB.
Este é um exemplo do comando COPY do SQL do Amazon Redshift:
copy favoritemovies from 'dynamodb://my-favorite-movies-table' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' readratio 50;
Neste exemplo, a tabela de origem no DynamoDB é my-favorite-movies-table
. A tabela de destino no Amazon Redshift é favoritemovies
. A cláusula readratio 50
regula a percentagem do throughput provisionado que é consumida; neste caso, o comando COPY usará não mais que 50% das unidades de capacidade de leitura provisionadas para my-favorite-movies-table
. É altamente recomendável definir esse índice para um valor menor do que a média de throughput provisionado não utilizado.
Para obter instruções detalhadas sobre como carregar dados do DynamoDB no Amazon Redshift, consulte as seções a seguir no Guia do desenvolvedor de banco de dados do Amazon Redshift: