Configuração de entrada do aplicativo - 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á.

Configuração de entrada do aplicativo

Seu aplicativo Amazon Kinesis Data Analytics pode receber entrada de uma única fonte de streaming e, opcionalmente, usar uma fonte de dados de referência. Para ter mais informações, consulte Amazon Kinesis Data Analytics para aplicativos SQL: como funciona. As seções neste tópico descrevem as fontes de entrada do aplicativo.

Configuração de uma fonte de streaming

No momento em que você criar um aplicativo, especifique uma fonte de streaming. Também é possível modificar uma entrada depois de criar o aplicativo. O Amazon Kinesis Data Analytics é compatível com as seguintes fontes de streaming do aplicativo:

  • Um fluxo de dados do Kinesis

  • Um stream de entrega do Firehose

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. Os clientes atuais que usam o Kinesis Data Analytics para aplicativos SQL com KinesisFirehoseInput podem continuar adicionando aplicativos KinesisFirehoseInput em uma conta existente usando o Kinesis Data Analytics. Se você já é cliente e deseja criar uma nova conta com os aplicativos Kinesis Data Analytics para SQL com KinesisFirehoseInput, você pode criar um caso usando o formulário de aumento do limite de serviço. Para obter mais informações, consulte a CentralAWS Support. Recomendamos sempre testar os novos aplicativos antes de passá-los à produção.

nota

Se o fluxo de dados do Kinesis estiver criptografado, o Kinesis Data Analytics acessa os dados no fluxo criptografado perfeitamente sem precisar de outras configurações. O Kinesis Data Analytics não armazena dados não criptografados lidos dos fluxos de dados Kinesis. Para obter mais informações, consulte O que é criptografia no lado do servidor para streamings de dados do Kinesis?.

O Kinesis Data Analytics apura continuamente a fonte de streaming para novos dados e os ingere em fluxos de aplicativos de acordo com a configuração de entrada.

nota

A adição de um fluxo do Kinesis como entrada do seu aplicativo não afeta os dados do fluxo. Se outro recurso, como um stream de entrega do Firehose, também acessasse o mesmo stream do Kinesis, tanto o stream de entrega do Firehose quanto o aplicativo Kinesis Data Analytics receberiam os mesmos dados. Entretanto, o throughput e o controle de utilização podem ser afetados.

O código de aplicativo pode consultar o stream de aplicativos. Como parte da configuração de entrada, forneça o seguinte:

  • Fonte de streaming – forneça o nome do recurso da Amazon (ARN) do fluxo e um perfil do IAM que o Kinesis Data Analytics pode assumir para acessar o fluxo em seu nome.

  • Prefixo do nome de fluxo no aplicativo – quando você inicia o aplicativo, o Kinesis Data Analytics cria o fluxo no aplicativo especificado. No código do aplicativo, acesse o stream no aplicativo usando o mesmo nome.

    Ou você pode mapear uma fonte de streaming para vários fluxos no aplicativo. Para ter mais informações, consulte Limites. Nesse caso, o Amazon Kinesis Data Analytics cria o número especificado de streams no aplicativo com nomes assim: prefixo_001, prefixo_002, e prefixo_003. Por padrão, o Kinesis Data Analytics mapeia a fonte de streaming para um fluxo no aplicativo chamado prefixo_001.

    Há um limite na velocidade que você pode inserir linhas em um stream no aplicativo. Portanto, o Kinesis Data Analytics oferece suporte a vários streams no aplicativo para que você possa trazer registros para seu aplicativo a uma velocidade muito mais alta. Se você considerar que o aplicativo não está acompanhando o ritmo dos dados na fonte de streaming, adicione unidades de paralelismo para melhorar o desempenho.

  • Mapeamento de esquema – você descreve o formato de registro (JSON, CSV) na fonte de streaming. Você também descreve como cada registro no stream mapeia para colunas no stream do aplicativo criado. É aqui você fornece nomes de colunas e tipos de dados.

nota

O Kinesis Data Analytics adiciona aspas em torno dos identificadores (nome de stream e nomes de coluna) ao criar o stream no aplicativo de entrada. Ao consultar esse stream e as colunas, você deve especificá-los entre aspas usando a mesma capitalização (letras maiúsculas e minúsculas exatamente). Para obter mais informações sobre identificadores, consulte Identificadores no Amazon Managed Service for Apache Flink SQL Reference.

É possível criar um aplicativo e configurar entradas no console do Amazon Kinesis Data Analytics. O console então faz as chamadas de API necessárias. Você pode configurar a entrada do aplicativo ao criar uma nova API de aplicativo ou adicionar uma configuração de entrada a um aplicativo existente. Para obter mais informações, consulte AddApplicationInput e CreateApplication. Veja a seguir a parte da configuração de entrada do corpo da solicitação da API Createapplication:

"Inputs": [ { "InputSchema": { "RecordColumns": [ { "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "KinesisFirehoseInput": { "ResourceARN": "string", "RoleARN": "string" }, "KinesisStreamsInput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]

Configuração de uma fonte de referência

Como opção, você pode adicionar uma fonte de dados de referência a um aplicativo existente para enriquecer os dados que chegam de fontes de streaming. Você deve armazenar os dados de referência como um objeto no bucket do Amazon S3. Quando o aplicativo é iniciado, o Amazon Kinesis Data Analytics lê o objeto do Amazon S3 e cria uma tabela de referência no aplicativo. O código do aplicativo pode, então, associar-se a um streaming no aplicativo.

Armazene os dados de referência no objeto do Amazon S3 usando formatos compatíveis (CSV, JSON). Por exemplo, suponha que o seu aplicativo realiza análises em pedidos de ações. Assuma o seguinte formato de registro na fonte de streaming:

Ticker, SalePrice, OrderId AMZN $700 1003 XYZ $250 1004 ...

Neste caso, você pode considerar a manutenção de uma fonte de dados de referência para fornecer detalhes para cada marcador de ações, como nome da empresa.

Ticker, Company AMZN, Amazon XYZ, SomeCompany ...

Você pode adicionar uma fonte de dados de referência do aplicativo com a API ou com o console. O Amazon Kinesis Data Analytics oferece as seguintes ações de API para gerenciar fontes de dados de referência:

Para obter informações sobre como adicionar dados de referência usando o console, consulte Exemplo: adição de dados de referência a um aplicativo do Kinesis Data Analytics.

Observe o seguinte:

  • Se o aplicativo estiver em execução, o Kinesis Data Analytics criará uma tabela de referência no aplicativo e, em seguida, carregará os dados de referência imediatamente.

  • Se o aplicativo não estiver em execução (por exemplo, no estado de prontidão), o Kinesis Data Analytics salvará apenas a configuração de entrada atualizada. Quando o aplicativo começa a executar, o Kinesis Data Analytics carrega os dados de referência no aplicativo como uma tabela.

Suponha que você deseje atualizar os dados depois que o Kinesis Data Analytics criar a tabela de referência no aplicativo. Talvez você tenha atualizado o objeto do Amazon S3 ou queira usar outro objeto do Amazon S3. Nesse caso, você pode chamar explicitamente UpdateApplication ou selecionar Ações, Sincronizar tabela de dados de referência no console. O Kinesis Data Analytics não atualiza a tabela de referência no aplicativo automaticamente.

Há um limite para o tamanho do objeto do Amazon S3 que você pode criar como uma fonte de dados de referência. Para ter mais informações, consulte Limites. Se o tamanho do objeto exceder o limite, o Kinesis Data Analytics não poderá carregar os dados. O estado do aplicativo aparecerá como em execução, mas os dados não serão lido.

Quando você adiciona uma fonte de referência de dados, fornece as seguintes informações:

  • Nome da chave do objeto e bucket do S3 – além do nome do bucket e da chave do objeto, forneça também um perfil do IAM que o Kinesis Data Analytics possa assumir para ler o objeto em seu nome.

  • Nome da tabela de referência no aplicativo – o Kinesis Data Analytics cria essa tabela no aplicativo e a preenche lendo o objeto do Amazon S3. Esse é o nome da tabela que você especifica no código do aplicativo.

  • Mapeamento de esquema – descreva o formato de registro (JSON, CSV), a codificação de dados armazenados no objeto do Amazon S3. Descreva também como cada elemento de dados é mapeado para colunas na tabela de referência no aplicativo.

A tabela a seguir mostra o corpo de solicitação na solicitação da API AddApplicationReferenceDataSource.

{ "applicationName": "string", "CurrentapplicationVersionId": number, "ReferenceDataSource": { "ReferenceSchema": { "RecordColumns": [ { "IsDropped": boolean, "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "S3ReferenceDataSource": { "BucketARN": "string", "FileKey": "string", "ReferenceRoleARN": "string" }, "TableName": "string" } }