

Após uma análise cuidadosa, decidimos descontinuar o Amazon Kinesis Data Analytics para aplicativos SQL:

1. A partir de **1º de setembro de 2025,** não forneceremos nenhuma correção de bug para aplicativos do Amazon Kinesis Data Analytics para SQL porque teremos suporte limitado para ele, devido à próxima descontinuação.

2. A partir **de 15 de outubro de 2025,** você não poderá criar novos aplicativos Kinesis Data Analytics para SQL.

3. 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](discontinuation.md).

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
<a name="how-it-works-input"></a>

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 obter mais informações, consulte [Amazon Kinesis Data Analytics para aplicativos SQL: como funciona](how-it-works.md). As seções neste tópico descrevem as fontes de entrada do aplicativo.

**Topics**
+ [Configuração de uma fonte de streaming](#source-streaming)
+ [Configuração de uma fonte de referência](#source-reference)
+ [Trabalhando com JSONPath](about-json-path.md)
+ [Mapeamento de elementos de fonte de streaming para colunas de entrada do SQL](sch-mapping.md)
+ [Usar o recurso de descoberta de esquema em dados em streaming](sch-dis.md)
+ [Usar o recurso de descoberta de esquema em dados estáticos](sch-dis-ref.md)
+ [Pré-processar dados usando uma função do Lambda](lambda-preprocessing.md)
+ [Paralelização dos streams de entrada para aumentar a taxa de transferência](input-parallelism.md)

## Configuração de uma fonte de streaming
<a name="source-streaming"></a>

No momento em que você cria um aplicativo, você especifica 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 stream de dados do Kinesis 
+ Um fluxo 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 para 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 [Central AWS Support](https://console.aws.amazon.com/support/home#/). 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?](https://docs.aws.amazon.com/streams/latest/dev/what-is-sse.html).

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 fluxo de entrega do Firehose, também acessasse o mesmo fluxo do Kinesis, tanto o fluxo de entrega do Firehose quanto a aplicação do 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 obter mais informações, consulte [Limites](limits.md). Nesse caso, o Amazon Kinesis Data Analytics cria o número especificado de streams no aplicativo com os seguintes nomes {{prefix}}`_001`: {{prefix}}`_002`,, e. {{prefix}} `_003` Por padrão, o Kinesis Data Analytics mapeia a fonte de streaming para um stream no aplicativo chamado. {{prefix}} `_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](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-identifiers.html) 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 [CreateApplication](API_CreateApplication.md) e [AddApplicationInput](API_AddApplicationInput.md). 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
<a name="source-reference"></a>

Opcionalmente, você também pode adicionar uma fonte de dados de referência a um aplicativo existente para enriquecer os dados provenientes 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:
+  [AddApplicationReferenceDataSource](API_AddApplicationReferenceDataSource.md)
+ [UpdateApplication](API_UpdateApplication.md)

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](app-add-reference-data.md).

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](API_UpdateApplication.md) 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 obter mais informações, consulte [Limites](limits.md). 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"
    }
}
```