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

Práticas recomendadas - Guia do Desenvolvedor de Amazon Kinesis Data Analytics para aplicativos SQL

Após uma análise cuidadosa, decidimos descontinuar as aplicações do Amazon Kinesis Data Analytics para SQL em duas etapas:

1. A partir de 15 de outubro de 2025, você não poderá mais criar aplicações do Kinesis Data Analytics para SQL.

2. Excluiremos as aplicações a partir de 27 de janeiro de 2026. Você não poderá mais iniciar nem operar as aplicações do Amazon Kinesis Data Analytics para SQL. A partir dessa data, não haverá mais suporte ao Amazon Kinesis Data Analytics para SQL. Para obter mais informações, consulte Descontinuação de aplicações do Amazon Kinesis Data Analytics para SQL.

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

Após uma análise cuidadosa, decidimos descontinuar as aplicações do Amazon Kinesis Data Analytics para SQL em duas etapas:

1. A partir de 15 de outubro de 2025, você não poderá mais criar aplicações do Kinesis Data Analytics para SQL.

2. Excluiremos as aplicações a partir de 27 de janeiro de 2026. Você não poderá mais iniciar nem operar as aplicações do Amazon Kinesis Data Analytics para SQL. A partir dessa data, não haverá mais suporte ao Amazon Kinesis Data Analytics para SQL. Para obter mais informações, consulte Descontinuação de aplicações do Amazon Kinesis Data Analytics para SQL.

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

Práticas recomendadas

Esta seção descreve as práticas recomendadas ao trabalhar com aplicativos do Amazon Kinesis Data Analytics.

Como gerenciar aplicativos

Ao gerenciar aplicativos do Amazon Kinesis Data Analytics, siga estas práticas recomendadas:

  • Configurar CloudWatch alarmes da Amazon — Você pode usar as CloudWatch métricas que o Kinesis Data Analytics fornece para monitorar o seguinte:

    • Bytes de entrada e registros de entrada (número de bytes e registros que entram no aplicativo)

    • Bytes de saída e registros de saída

    • MillisBehindLatest (tempo de atraso do aplicativo na leitura da origem de streaming)

    Recomendamos que você configure pelo menos dois CloudWatch alarmes nas seguintes métricas para seus aplicativos em produção:

    • MillisBehindLatest: na maioria dos casos, é recomendável definir esse alarme para que seja acionado quando o aplicativo estiver 1 hora atrás dos dados mais recentes, por 1 minuto, em média. Para aplicativos com necessidades end-to-end de processamento mais baixas, você pode ajustar isso para uma tolerância menor. Esse alarme pode ajudá-lo a garantir que o aplicativo está lendo os dados mais recentes.

       

  • Para evitar a exceção ReadProvisionedThroughputException, restrinja o número de aplicativos de produção que leem o mesmo streaming de dados do Kinesis a dois aplicativos.

    nota

    Nesse caso, aplicativo refere-se a qualquer aplicativo que possa ler a origem de streaming. Somente uma aplicação do Kinesis Data Analytics pode ler um fluxo de entrega do Firehose. No entanto, muitos aplicativos podem ler de um stream de dados do Kinesis, como um aplicativo Kinesis Data Analytics ou. AWS Lambda O limite de aplicativo recomendado representa todos os aplicativos configurados para ler uma origem de streaming.

     

    O Amazon Kinesis Data Analytics lê uma origem de streaming aproximadamente uma vez a cada segundo por aplicativo. No entanto, um aplicativo atrasado pode ler dados a uma taxa mais rápida para sair do atraso. Para permitir que o throughput adequado dos aplicativos seja alcançado, limite o número de aplicativos que leem a mesma fonte de dados.

     

  • Limite o número de aplicações de produção que leem o mesmo fluxo de entrega do Firehose a uma aplicação.

    Um fluxo de entrega do Firehose pode gravar em vários destinos, como Amazon S3 e Amazon Redshift. Pode ser também uma origem de streaming para o aplicativo Kinesis Data Analytics. Portanto, é recomendável não configurar mais de uma aplicação do Kinesis Data Analytics por fluxo de entrega do Firehose. Isso ajuda a garantir que o fluxo de entrega também possa realizar a entrega para outros destinos.

Dimensionar aplicativos

Configure o aplicativo para suas futuras necessidades de dimensionamento aumentando de maneira proativa o número de fluxos de entrada no aplicativo a partir do padrão (um). Recomendamos as seguintes opções de linguagem com base no throughput do aplicativo:

  • Use vários fluxos e o Kinesis Data Analytics para aplicativos SQL se o aplicativo tiver necessidades de dimensionamento além de 100 MB/segundo.

  • Use o Managed Service for Apache Flink Applications se quiser usar um único stream e aplicativo.

nota

Aconselhamos revisar periodicamente a InputProcessing.OkBytes métrica do seu aplicativo para que você possa planejar com antecedência o uso de vários aplicativos SQL ou migrar para o gerenciado. flink/latest/java/ if your application’s projected input throughput exceeds 100 MB/sec

Monitorar aplicativos

Recomendamos criar um CloudWatch alarme InputProcessing.OkBytes para que você seja notificado quando seu aplicativo estiver próximo do limite de taxa de transferência de entrada. Isso pode ser útil, pois você pode atualizar a consulta do aplicativo para compensar por um maior throughput, evitando assim a contrapressão e o atraso na análise. Para obter mais informações, consulte Solução de problemas. Isso também pode ser útil se você tiver um mecanismo para reduzir o throughput no upstream.

  • O maior throughput que recomendamos para um único fluxo no aplicativo é entre 2 e 20 MB/segundo, dependendo da complexidade da consulta do aplicativo.

  • O throughput máximo de streaming que um único aplicativo Kinesis Data Analytics para SQL pode processar é de aproximadamente 100 MB/seg. Isso pressupõe que você aumentou o número de streams no aplicativo para o valor máximo de 64 e aumentou seu limite de KPU para além de 8. Para obter mais informações, consulte Limites.

nota

Aconselhamos revisar periodicamente a InputProcessing.OkBytes métrica do seu aplicativo para que você possa planejar com antecedência o uso de vários aplicativos SQL ou migrar para o gerenciado. flink/latest/java/ if your application’s projected input throughput exceeds 100 MB/sec

Definição do esquema de entrada

Ao configurar a entrada do aplicativo no console, primeiro especifique uma origem de streaming. Em seguida, o console usa a API de descoberta (consulte DiscoverInputSchema) para inferir um schema por amostragem de registros na origem de streaming. O esquema, entre outras coisas, define nomes e tipos de dados das colunas no stream no aplicativo resultante. O console exibe o esquema. É recomendável fazer o seguinte com esse esquema inferido:

  • Teste adequadamente o esquema inferido. O processo de descoberta usa somente uma amostra dos registros na origem de streaming para inferir um esquema. Se a origem de streaming tiver vários tipos de registro, pode ser que a API de descoberta não tenha feito amostragem de um ou mais tipos de registro. Essa situação pode resultar em um esquema que não reflete precisamente os dados na origem de streaming.

    Quando o aplicativo for iniciado, esses tipos de registro perdidos poderão resultar em erros de análise. O Amazon Kinesis Data Analytics envia esses registros ao stream de erros de aplicativo. Para reduzir esses erros de análise, é recomendável testar o esquema inferido de modo interativo no console e monitorar o fluxo do aplicativo em busca de registros perdidos.

     

  • A API do Kinesis Data Analytics não permite a especificação da restrição NOT NULL em colunas na configuração de entrada. Se desejar restrições NOT NULL em colunas no fluxo do aplicativo, crie esses fluxos de aplicativo usando o código do aplicativo. Em seguida, você pode copiar dados de um fluxo de aplicativo para outro que e a restrição será aplicada.

    Qualquer tentativa de inserir linhas com valores NULL quando um valor é necessário resultará em um erro. O Kinesis Data Analytics envia esses erros ao fluxo de erros de aplicativo.

     

  • Reduz os tipos de dados inferidos pelo processo de descoberta. O processo de descoberta recomenda colunas e tipos de dados com base em uma amostragem aleatória de registros na origem de streaming. É recomendável que você os analise cuidadosamente e considere a redução desses tipos de dados para cobrir todos os casos possíveis de registros na entrada. Isso garante menos erros de análise em todo o aplicativo enquanto ela está sendo executada. Por exemplo, se um esquema inferido tiver SMALLINT como tipo de coluna, talvez seja recomendável alterá-lo para INTEGER.

     

  • Use funções SQL no código do aplicativo para tratar quaisquer dados ou colunas não estruturados. Talvez você tenha ter dados ou colunas não estruturados na entrada, como dados de log. Para obter exemplos, consulte Exemplo: Transformação de valores DateTime . Uma forma de tratar esse tipo de dados é definir o esquema com apenas uma coluna do tipo VARCHAR(N), em que N é o maior linha possível esperada no fluxo. No código do aplicativo, você pode ler os registros de entrada e usar as funções String e Date Time para analisar e esquematizar os dados brutos.

     

  • Trate totalmente os dados da origem de streaming que contêm aninhamento com mais de dois níveis de profundidade. Quando os dados de origem forem JSON, você poderá ter aninhamento. A API de descoberta infere um esquema que nivela um nível de aninhamento. No caso de dois níveis de aninhamento, a API de descoberta tenta nivelá-los. Para mais de dois níveis de aninhamento, o suporte a nivelamento é limitado. Para tratar completamente o aninhamento, é necessário modificar manualmente o esquema inferido para atender às suas necessidades. Use uma das seguintes estratégias para fazer isso:

     

    • Use o caminho de linha JSON para extrair seletivamente apenas os pares de valores de chave necessários ao aplicativo. Um caminho de linha JSON fornece um ponteiro para o par de valores de chave específico que você deseja inserir no aplicativo. Você pode fazer osso para qualquer nível de aninhamento.

    • Use o caminho de linha JSON para retirar seletivamente objetos JSON complexos e, em seguida, use as funções de manipulação de string no código do aplicativo para extrair os dados específicos de que você precisa.

Conexão às saídas

É recomendável que todos os aplicativos tenham pelo menos duas saídas:

  • Use o primeiro destino para inserir os resultados das consultas SQL.

  • Use o segundo destino para inserir todo o fluxo de erros e enviá-lo a um bucket do S3 por meio de um fluxo de entrega do Firehose.

Criação do código do aplicativo

Recomendamos o seguinte:

  • Na instrução SQL, não especifique uma janela de tempo mais extensa do que uma hora, pelos seguintes motivos:

    • Às vezes, um aplicativo precisa ser reiniciado porque você o atualizou ou por motivos internos do Kinesis Data Analytics. Quando ele é reiniciado, todos os dados incluídos na janela devem ser lidos novamente na fonte de dados de streaming. Leva algum tempo para o Kinesis Data Analytics emitir a saída dessa janela.

    • O Kinesis Data Analytics precisa manter tudo o que está relacionado ao estado do aplicativo, bem como dados relevantes, durante esse tempo. Isso consome significativas unidades de processamento do Kinesis Data Analytics.

  • Durante o desenvolvimento, use um tamanho de janela pequeno nas instruções SQL para que possa ver os resultados com maior rapidez. Quando você implantar o aplicativo no ambiente de produção, poderá definir o tamanho da janela conforme apropriado.

  • Em vez de uma única instrução SQL complexa, é recomendável dividi-la em várias instruções, em cada etapa, e salvar os resultados em fluxos de aplicativo intermediários. Isso pode ajudar a agilizar a depuração.

  • Ao usar janelas em cascata, é recomendável usar duas janelas, uma para tempo de processamento e outra para tempo lógico (horário da conclusão ou horário do evento). Para obter mais informações, consulte Time stamps e a coluna ROWTIME.

Teste de aplicativos

Ao mudar o esquema ou o código do aplicativo do Kinesis Data Analytics para seu aplicativo, é recomendável usar um aplicativo de teste para verificar as alterações antes de implantá-las em produção.

Configuração de um aplicativo de teste

Você pode configurar um aplicativo de teste por meio do console ou usando um modelo do AWS CloudFormation . O uso AWS CloudFormation de um modelo ajuda a garantir que as alterações de código feitas no aplicativo de teste e no aplicativo ativo sejam consistentes.

Ao configurar um aplicativo de teste, você pode conectar o aplicativo aos seus dados ativos ou preencher um fluxo com os dados de teste simulados. Recomendamos dois métodos para preencher um fluxo com dados simulados:

  • Use o Kinesis Data Generator (KDG). O KDG usa um modelo de dados para enviar dados aleatórios para um fluxo do Kinesis. O KDG é simples de usar, mas não é apropriado para testar relações complexas entre itens de dados, como para aplicativos que detectam pontos de acesso a dados ou anomalias.

  • Use um aplicativo Python personalizado para enviar dados mais complexos para um fluxo de dados do Kinesis. Um aplicativo Python pode gerar relações complexas entre itens de dados, como pontos de acesso ou anomalias. Para obter um exemplo de aplicativo Python que envia dados clusterizados em um hotspot de dados, consulte Exemplo: detectar hotspots em um streaming (função HOTSPOTS).

Ao executar a aplicação de teste, visualize os resultados usando um destino (como um fluxo de entrega do Firehose para um banco de dados do Amazon Redshift), em vez de visualizar o fluxo na aplicação no console. Os dados que são exibidos no console são uma amostra do fluxo e não contêm todos os registros.

Teste de alterações no esquema

Ao alterar um esquema de fluxo de entrada do aplicativo, use o aplicativo de teste para verificar se as seguintes condições são verdadeiras:

  • Os dados do fluxo estão sendo compelidos para o tipo de dado correto. Por exemplo, verifique se os dados de data e hora não estão sendo ingeridos no aplicativo como uma string.

  • Os dados estão sendo analisados e impelidos para o tipo de dado que você deseja. Se ocorrerem erros de análise ou coerção, você pode visualizá-los no console ou atribuir um destino no fluxo de erros e visualizar os erros no armazenamento do destino.

  • Os campos de dados são para dados de caractere têm comprimento suficiente e o aplicativo não está truncando os dados de caractere. Você pode verificar os registros de dados no armazenar de destino para confirmar se os dados do aplicativo não está sendo truncados.

Teste de alterações no código

Para testar alterações no código SQL, é necessário conhecer seu aplicativo nesse domínio. Você deve determinar que saída precisa ser testada e qual a saída correta. Quanto a possíveis áreas problemáticas que deve ser verificadas ao modificar o código SQL do aplicativo, consulte Solução de problemas do Amazon Kinesis Data Analytics para aplicativos SQL.

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