Amazon Kinesis Data Analytics para aplicativos SQL: como funciona - Guia do desenvolvedor do Amazon Kinesis Data Analytics SQL para aplicativos

Para novos projetos, recomendamos que você use o novo Managed Service para Apache Flink Studio em vez do Kinesis Data Analytics for Applications. SQL O Managed Service for Apache Flink Studio combina facilidade de uso com recursos analíticos avançados, permitindo que você crie aplicativos sofisticados de processamento de stream em minutos.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Amazon Kinesis Data Analytics para aplicativos SQL: como funciona

nota

Depois de 12 de setembro de 2023, você não poderá criar novos aplicativos usando o Kinesis Data Firehose como fonte se ainda não estiver usando o Kinesis Data Analytics for SQL. Para obter mais informações, consulte Limites.

Um aplicativo é o recurso principal do Amazon Kinesis Data Analytics que você pode criar na conta. Você pode criar e gerenciar aplicativos usando a API Kinesis Data Analytics AWS Management Console ou a Kinesis Data Analytics. O Kinesis Data Analytics fornece operações de API para gerenciar aplicativos. Para obter uma lista das operações de API, consulte Ações.

Os aplicativos do Kinesis Data Analytics leem e processam o streaming de dados continuamente e em tempo real. Escreva o código do aplicativo usando o SQL para processar os dados em streaming de entrada e produzir a saída. Depois, o Kinesis Data Analytics grava a saída em um destino configurado. O diagrama a seguir ilustra uma arquitetura típica de aplicativo.

Diagrama mostrando um aplicativo de análise de dados, origens de entrada de streaming, dados de referência e saída de aplicativos.

Cada aplicativo tem um nome, uma descrição, o ID da versão e o status. O Amazon Kinesis Data Analytics atribui um ID de versão ao criar um aplicativo pela primeira vez. Esse ID de versão é atualizado quando você atualiza qualquer configuração de aplicativo. Por exemplo, se você adicionar uma configuração de entrada, adicionar ou excluir uma fonte de dados de referência, adicionar ou excluir uma configuração de saída ou atualizar o código do aplicativo, o Kinesis Data Analytics atualizará o ID da versão de aplicativo atual. O Kinesis Data Analytics também mantém timestamps de quando um aplicativo foi criado e atualizado pela última vez.

Além dessas propriedades básicas, cada aplicativo consiste no seguinte:

  • Entrada: a origem do streaming do aplicativo. Você pode selecionar um stream de dados do Kinesis ou um stream de entrega de dados do Firehose como fonte de streaming. Na configuração de entrada, você mapeia a origem de streaming para um fluxo de entrada de aplicativo. O fluxo no aplicativo funciona como uma tabela em contínua atualização em que você pode executar as operações SELECT e INSERT SQL. No seu código da aplicação, é possível criar fluxos no aplicativo adicionais para armazenar resultados de consulta intermediários.

     

    Se desejar, você pode particionar uma única origem de streaming em vários fluxos de entrada de aplicativo para melhorar a taxa de transferência. Para obter mais informações, consulte Configuração de entrada do aplicativo e Limites.

     

    O Amazon Kinesis Data Analytics fornece uma coluna de timestamp em cada stream de aplicativo chamado Time stamps e a coluna ROWTIME. É possível usar essa coluna em consultas em janelas baseadas em tempo. Para ter mais informações, consulte Consultas em janelas.

     

    Se desejar, você pode configurar uma fonte de dados de referência para enriquecer o fluxo de dados de entrada no aplicativo. Isso resultará em uma tabela de referência de aplicativo. Você deve armazenar os dados de referência como um objeto no bucket do S3. Quando o aplicativo é iniciado, o Amazon Kinesis Data Analytics lê o objeto do Amazon S3 e cria uma tabela no aplicativo. Para ter mais informações, consulte Configuração de entrada do aplicativo.

     

  • Código do aplicativo: uma série de instruções SQL que processam entrada e produzem saída. Grave instruções SQL contra fluxos no aplicativo e tabelas de referência. Você também pode gravar consultas JOIN para combinar dados de ambas as origens.

     

    Para obter mais informações sobre os elementos da linguagem SQL compatíveis com o Kinesis Data Analytics, consulte Amazon Kinesis Data Analytics SQL Reference.

     

    Em sua forma mais simples, o código do aplicativo pode ser uma instrução SQL única que faz a seleção de uma entrada de streaming e insere os resultados em uma saída de streaming. Ele também pode ser uma série de instruções SQL em que a saída de uma delas contribui para a entrada da próxima instrução SQL. Além disso, você pode gravar código de aplicativo para dividir um fluxo de entrada em vários fluxos. Em seguida, aplique consultas adicionais para processar esses fluxos. Para ter mais informações, consulte Código do aplicativo.

     

  • Saída: no código do aplicativo, os resultados da consulta são passados para os fluxos de aplicativo. No código do aplicativo, é possível criar um ou mais fluxos de aplicativo para manter os resultados intermediários. Depois, se desejar, você pode configurar a saída do aplicativo para manter os dados dos fluxos de aplicativo, que retêm a saída do aplicativo (conhecida também como fluxos de saída do aplicativo) nos destinos externos. Os destinos externos podem ser um stream de entrega do Firehose ou um stream de dados do Kinesis. Observe o seguinte sobre esses destinos:

    • Você pode configurar um stream de entrega do Firehose para gravar resultados no Amazon S3, Amazon Redshift ou Amazon OpenSearch Service (Service). OpenSearch

       

    • Você também pode gravar a saída do aplicativo em um destino personalizado, em vez do Amazon S3 ou do Amazon Redshift. Para fazer isso, especifique um fluxo de dados do Kinesis como destino na configuração de saída. Em seguida, você configura AWS Lambda para pesquisar o stream e invocar sua função Lambda. Seu código da função do Lambda recebe os dados do stream como entrada. No seu código da função do Lambda, você pode gravar os dados de entrada no destino personalizado. Para obter mais informações, consulte Como usar AWS Lambda com o Amazon Kinesis Data Analytics.

    Para ter mais informações, consulte Configuração da saída do aplicativo.

Além disso, observe o seguinte:

  • O Amazon Kinesis Data Analytics precisa de permissões para ler registros em uma origem de streaming e gravar a saída do aplicativo nos destinos externos. Use os perfis do IAM para conceder essas permissões.

     

  • O Kinesis Data Analytics fornece automaticamente um stream de erros de aplicativo para cada aplicação. Se o aplicativo tiver problemas ao processar determinados registros (por exemplo, devido a uma incompatibilidade de tipo ou chegada em atraso), esse registro será gravado no fluxo de erros. Você pode configurar a saída do aplicativo para que o Kinesis Data Analytics mantenha os dados do stream de erros em um destino externo para avaliação posterior. Para ter mais informações, consulte Como tratar erros.

     

  • O Amazon Kinesis Data Analytics garante que os registros de saída do aplicativo serão gravados no destino configurado. Ele usa um modelo de processamento e entrega "pelo menos uma vez", mesmo que ocorra uma interrupção do aplicativo. Para ter mais informações, consulte Modelo de entrega para manter a saída do aplicativo em um destino externo.