Após uma análise cuidadosa, decidimos descontinuar o Amazon Kinesis Data Analytics SQL para aplicativos em duas etapas:
1. A partir de 15 de outubro de 2025, você não poderá criar um novo Kinesis Data Analytics SQL para aplicativos.
2. Excluiremos seus aplicativos a partir de 27 de janeiro de 2026. Você não poderá iniciar ou operar seu Amazon Kinesis Data Analytics SQL para aplicativos. O suporte não estará mais disponível para o Amazon Kinesis Data Analytics SQL a partir desse momento. Para obter mais informações, consulte Descontinuação do Amazon Kinesis Data Analytics SQL para aplicativos.
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á.
Exemplos: transformação de valores de string
O Amazon Kinesis Data Analytics oferece suporte a formatos como JSON e CSV para registros em uma origem de streaming. Para obter mais detalhes, consulte RecordFormat. Em seguida, esses registros são mapeados para linhas no fluxo em um aplicativo de acordo com a configuração de entrada. Para obter mais detalhes, consulte Configuração de entrada do aplicativo. A configuração de entrada especifica como os campos de registro na origem de streaming são mapeados para colunas no fluxo de um aplicativo.
Esse mapeamento funciona quando os registros na origem de streaming têm os formatos compatíveis, o que resulta em um fluxo de aplicativo com dados normalizados. E se os dados na origem de streaming não estiver de acordo com os padrões compatíveis? Por exemplo, e se a origem de streaming contiver dados como dados de clickstream, sensores de IoT e logs de aplicativo?
Considere estes exemplos:
-
A origem de streaming contém logs de aplicativo – Os logs de aplicativo têm o formato de log padrão do Apache e são gravados no stream com o formato JSON.
{ "Log":"192.168.254.30 - John [24/May/2004:22:01:02 -0700] "GET /icons/apache_pb.gif HTTP/1.1" 304 0" }
Para obter mais informações sobre o formato de log padrão do Apache, consulte arquivos de log
no site do Apache. -
A origem de streaming contém dados semiestruturados – O exemplo a seguir mostra dois registros. O valor de campo
Col_E_Unstructured
é uma série de valores separados por vírgulas. Há cinco colunas, as quatro primeiras têm valores de tipo de string e a última coluna contém valores separados por vírgulas.{ "Col_A" : "string", "Col_B" : "string", "Col_C" : "string", "Col_D" : "string", "Col_E_Unstructured" : "value,value,value,value"} { "Col_A" : "string", "Col_B" : "string", "Col_C" : "string", "Col_D" : "string", "Col_E_Unstructured" : "value,value,value,value"}
-
Os registros na origem de streaming contêm URLs, e você precisa de uma parte do nome de domínio da URL para fins de análise.
{ "referrer" : "http://www.amazon.com"} { "referrer" : "http://www.stackoverflow.com" }
Nesses casos, o seguinte processo de duas etapas geralmente funciona para a criação de fluxos de aplicativo que contêm dados normalizados:
-
Configure a entrada do aplicativo para mapear o campo não estruturado para uma coluna do tipo
VARCHAR(N)
no fluxo de entrada de aplicativo criado. -
No código do aplicativo, use as funções de string para dividir esta única coluna em várias colunas e, em seguida, salve as linhas em outro stream no aplicativo. Este stream no aplicativo criado pelo código de aplicativo terá dados normalizados. Você poderá, então, executar análises nesse stream no aplicativo.
O Amazon Kinesis Data Analytics fornece as seguintes operações de string, funções SQL padrão e extensões para o padrão SQL para trabalhar com colunas de string:
-
Operadores de string: Operadores como
LIKE
eSIMILAR
são úteis nas strings de comparação. Para obter mais informações sobre identificadores, consulte Operadores de string em Referência SQL do Amazon Managed Service for Apache Flink. -
Funções SQL: as funções a seguir são úteis ao manipular strings individuais. Para obter mais informações, consulte Funções de string e pesquisa em Referência SQL do Amazon Managed Service for Apache Flink.
-
CHAR_LENGTH
– Fornece o tamanho de uma string. -
INITCAP
– Retorna uma versão convertida da string de entrada, de forma que o primeiro caractere de cada palavra delimitada por espaço é em maiúscula e todos os outros caracteres em minúscula. -
LOWER/UPPER
– Converte uma string em minúsculas ou maiúsculas. -
OVERLAY
– Substitua uma parte do primeiro argumento de string (a string original) pelo segundo argumento de string (a string substituta). -
POSITION
– Procura uma string em outra string. -
REGEX_REPLACE
– Substitui uma substring com uma substring alternativa. -
SUBSTRING
– Extrai uma parte de uma string de origem a partir de uma posição específica. -
TRIM
– Remove instâncias do caractere especificado do começo ou no fim da string de origem.
-
-
Extensões SQL: são úteis para trabalhar com strings não estruturadas, como logs e URIs. Para obter mais informações, consulte Funções de análise de log em Amazon Managed Service for Apache Flink SQL Reference.
-
FAST_REGEX_LOG_PARSER
– Funciona como o analisador regex, mas usa vários atalhos para garantir resultados mais rápidos. Por exemplo, o analisador regex rápido para na primeira correspondência encontrada (conhecida como semântica preguiçosa). -
FIXED_COLUMN_LOG_PARSE
– Analisa campos de largura fixa e os converte automaticamente nos tipos de SQL fornecidos. -
REGEX_LOG_PARSE
– Analisa uma string com base em padrões de expressão regular Java padrão. -
SYS_LOG_PARSE
– Analisa entradas normalmente encontradas nos logs de sistema do UNIX/Linux. -
VARIABLE_COLUMN_LOG_PARSE
– Divide uma string de entrada em campos separados por um caractere delimitador ou uma string delimitadora. -
W3C_LOG_PARSE
– Pode ser usado para formatação rápida de logs do Apache.
-
Para obter exemplos do uso dessas funções, consulte os seguintes tópicos:
Tópicos
- Exemplo: extração de parte de uma string (função SUBSTRING)
- Exemplo: substituição de uma substring usando regex (função REGEX_REPLACE)
- Exemplo: análise de strings de log com base em expressões regulares (função REGEX_LOG_PARSE)
- Exemplo: análise de logs da web (função W3C_LOG_PARSE)
- Exemplo: divisão de strings de caracteres em vários campos (função VARIABLE_COLUMN_LOG_PARSE)