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”.

Conceitos básicos da ingestão de streaming do Amazon Kinesis Data Streams - Amazon Redshift

Conceitos básicos da ingestão de streaming do Amazon Kinesis Data Streams

Este tópico descreve como consumir dados de streaming do Kinesis Data Streams usando uma visão materializada.

Configurar a ingestão de transmissão do Amazon Redshift envolve a criação de um esquema externo que mapeia para a fonte de dados de transmissão e a criação de uma exibição materializada que faça referência ao esquema externo. A ingestão de transmissão do Amazon Redshift oferece suporte ao Kinesis Data Streams como uma fonte. Como tal, você precisa ter uma fonte do Kinesis Data Streams disponível antes de configurar a ingestão de streaming. Se você não tiver uma fonte, siga as instruções na documentação do Kinesis em Conceitos básicos do Amazon Kinesis Data Streams ou crie uma no console usando as instruções em Criar um fluxo por meio do Console de Gerenciamento da AWS.

A ingestão de transmissão do Amazon Redshift usa uma exibição materializada, que é atualizada diretamente da transmissão quando REFRESH é executado. A exibição materializada mapeia para a fonte de dados da transmissão. Você pode executar filtragem e agregações nos dados da transmissão como parte da definição de exibição materializada. Sua exibição materializada de ingestão de transmissão (a exibição materializada de base) pode fazer referência a apenas uma transmissão, mas você pode criar exibições materializadas adicionais que se unam à exibição materializada de base e com outras exibição ou tabelas materializadas.

nota

Ingestão de streaming e Amazon Redshift Serverless: as etapas de configuração neste tópico se aplicam a clusters provisionados do Amazon Redshift e ao Amazon Redshift Serverless. Para ter mais informações, consulte Comportamento de ingestão de streaming e tipos de dados.

Supondo que você tenha uma transmissão do Kinesis Data Streams disponível, a primeira etapa é definir um esquema no Amazon Redshift com CREATE EXTERNAL SCHEMA e fazer referência a um recurso do Kinesis Data Streams. Depois disso, para acessar dados na transmissão, defina a STREAM em uma exibição materializada. Você pode armazenar registros da transmissão no formato semiestruturado SUPER, ou defina um esquema que resulte em dados convertidos em tipos de dados do Redshift. Quando você consulta a exibição materializada, os registros retornados são uma exibição pontual da transmissão.

  1. Crie um perfil do IAM com uma política de confiança que permita que o cluster do Amazon Redshift ou o grupo de trabalho do Amazon Redshift sem servidor assuma o perfil. Para obter informações sobre como configurar a política de confiança da função do IAM, consulte Autorização do Amazon Redshift para acessar outros serviços da AWS em seu nome. Após sua criação, a função deve ter a seguinte política do IAM, que forneça permissão para comunicação com o fluxo de dados do Amazon Kinesis.

    Política do IAM para um fluxo não criptografado do Kinesis Data Streams

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:0123456789:stream/*" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }

    Política do IAM para um fluxo criptografado do Kinesis Data Streams

    { "Version": "2012-10-17", "Statement": [{ "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:0123456789:stream/*" }, { "Sid": "DecryptStream", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:0123456789:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }
  2. Confira a VPC e verifique se o cluster do Amazon Redshift ou do Amazon Redshift sem servidor tem uma rota para chegar aos endpoints do Kinesis Data Streams pela internet usando um gateway NAT ou gateway da Internet. Se você quiser que o tráfego entre o Redshift e o Kinesis Data Streams permaneça na rede da AWS, considere usar um endpoint da VPC de interface do Kinesis. Para obter mais informações, consulte Usar o Amazon Kinesis Data Streams com endpoints da VPC de interface.

  3. No Amazon Redshift, crie um esquema externo para mapear os dados do Kinesis para um esquema.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS IAM_ROLE { default | 'iam-role-arn' };

    A ingestão de streaming para o Kinesis Data Streams não exige um tipo de autenticação. Ele usa o perfil do IAM definido na instrução CREATE EXTERNAL SCHEMA para fazer solicitações do Kinesis Data Streams.

    Opcional: use a palavra-chave REGION para especificar a região em que o fluxo do Amazon Kinesis Data Streams ou do Amazon MSK reside.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS REGION 'us-west-2' IAM_ROLE { default | 'iam-role-arn' };

    Neste exemplo, a região especifica a localização do fluxo de origem. IAM_ROLE é um exemplo.

  4. Crie uma exibição materializada para consumir os dados da transmissão. Com uma declaração como a seguinte, se não for possível analisar um registro, será gerado um erro. Use um comando como esse se você não quiser que os registros de erro sejam ignorados.

    CREATE MATERIALIZED VIEW my_view AUTO REFRESH YES AS SELECT * FROM kds.my_stream_name;

    Nomes de transmissão do Kinesis fazem distinção entre maiúsculas e minúsculas e podem conter tanto maiúsculas quanto minúsculas. Para ingerir fluxos com nomes em letras maiúsculas, é possível definir a configuração enable_case_sensitive_identifier como true no nível do banco de dados. Para obter mais informações, consulte Nomes e identificadores e enable_case_sensitive_identifier.

    Para ativar a atualização automática, use AUTO REFRESH YES. O comportamento padrão é atualização manual. Observe que, ao usar CAN_JSON_PARSE, é possível que os registros que não podem ser analisados sejam ignorados.

    As colunas de metadados incluem o seguinte:

    Coluna de metadados Tipo de dados Descrição
    approximate_arrival_timestamp time stamp sem fuso horário A hora aproximada em que o registro foi inserido no fluxo do Kinesis
    partition_key varchar(256) A chave usada pelo Kinesis para atribuir o registro a um fragmento
    shard_id char(20) O identificador exclusivo do fragmento dentro do fluxo do qual o registro foi recuperado
    sequence_number varchar(128) O identificador exclusivo do registro do fragmento do Kinesis
    refresh_time time stamp sem fuso horário A hora de início da atualização
    kinesis_data varbyte O registro do fluxo do Kinesis

    É importante observar que, se você tiver uma lógica de negócios na definição de visão materializada, erros nesse lógica poderão causar bloqueios na ingestão de streaming em alguns casos. Isso pode fazer com que você precise descartar e recriar a visão materializada. Para evitar isso, recomendamos manter a lógica o mais simples possível e realizar a maioria das verificações de lógica de negócios nos dados após a ingestão.

  5. Atualize a visão, o que invoca o Redshift para ler pelo fluxo e carregar dados na visão materializada.

    REFRESH MATERIALIZED VIEW my_view;
  6. Consulte dados na exibição materializada.

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