

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Conceitos básicos da ingestão de streaming do Amazon Kinesis Data Streams
<a name="materialized-view-streaming-ingestion-getting-started"></a>

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](https://docs.aws.amazon.com/streams/latest/dev/getting-started.html) ou crie uma no console usando as instruções em [Criar um fluxo por meio do Console de Gerenciamento da AWS](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-create-a-stream.html).

 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 obter mais informações, consulte [Comportamento de ingestão de streaming e tipos de dados](materialized-view-streaming-ingestion.md#materialized-view-streaming-ingestion-limitations).

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](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html). 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**

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ReadStream",
               "Effect": "Allow",
               "Action": [
                   "kinesis:DescribeStreamSummary",
                   "kinesis:GetShardIterator",
                   "kinesis:GetRecords",
                   "kinesis:ListShards",
                   "kinesis:DescribeStream"
               ],
               "Resource": "arn:aws:kinesis:*:111122223333:stream/*"
           },
           {
               "Sid": "DecryptStream",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
           },
           {
               "Sid": "ListStream",
               "Effect": "Allow",
               "Action": "kinesis:ListStreams",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 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](https://docs.aws.amazon.com/streams/latest/dev/vpc.html).

1. 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\$1ROLE é um exemplo.

1. 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](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html) e [enable\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html).

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

   As colunas de metadados incluem o seguinte:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started.html)

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

1. 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;
   ```

1. Consulte dados na exibição materializada.

   ```
   select * from my_view;
   ```