Solução de problemas do Openflow Connector for Kinesis

Nota

O conector está sujeito aos Termos do conector Snowflake.

Este tópico descreve como solucionar problemas comuns do Openflow Connector for Kinesis.

Problemas comuns

As mensagens não são ingeridas

Sintoma

O processador ConsumeKinesis em um grupo de processos Kinesis JSON Source está em execução, mas não há produção de dados nem emissão de boletins de erro.

Causa

Um erro pode ter ocorrido em uma biblioteca AWS KCL, que não foi propagado para a UI do Openflow.

Solução

Consulte os logs da KCL para identificar o erro subjacente.

As filas de FlowFile estão cheias

Sintoma

As filas de FlowFile estão totalmente preenchidas e o conector não está processando dados rápido o suficiente.

Causa

Os processadores downstream não conseguem acompanhar a taxa de dados de entrada. Provavelmente, o processador mais lento é Put Data To Snowflake do tipo PutSnowpipeStreaming em um grupo de processos Streaming Destination.

Solução

Ajuste o número de tarefas simultâneas no processador. As tarefas simultâneas permitem que os processadores executem vários threads ao mesmo tempo, melhorando o rendimento em cenários de alto volume.

Para ajustar as tarefas simultâneas de um processador, execute as seguintes tarefas:

  1. Clique com o botão direito do mouse no processador na tela do Openflow.

  2. Selecione Configure no menu de contexto.

  3. Navegue até a guia Scheduling.

  4. No campo Concurrent tasks, digite o número preferencial de tarefas simultâneas.

  5. Selecione Apply para salvar a configuração.

A Snowflake recomenda os seguintes valores de contagem de tarefas, embora o valor correto possa ser diferente conforme o caso de uso específico:

  • 1-2 em tempos de execução de tamanho pequeno

  • 2-4 em tempos de execução de tamanho médio

  • 6-8 em tempos de execução de tamanho grande

Depois de alterar a contagem de tarefas, observe o processador para garantir que o aumento da contagem de tarefas melhora o rendimento.

Consultar os logs da KCL

O conector usa a AWS Kinesis Client Library (KCL) v3 internamente. Os erros que ocorrem na KCL nem sempre são propagados para a UI do Openflow, portanto a consulta aos logs da KCL pode ser necessária para solução de problemas.

Os logs da KCL são armazenados em uma tabela de eventos configurada. Você pode recuperá-los com a seguinte consulta:

SELECT
    timestamp,
    runtime_key,
    resource_attributes,
    log,
    log:formattedMessage,
FROM (
    SELECT
        timestamp,
        resource_attributes,
        resource_attributes:"openflow.dataplane.id" AS deployment_id,
        resource_attributes:"k8s.namespace.name" AS runtime_key,
        resource_attributes:"k8s.pod.name" AS runtime_pod,
        TRY_PARSE_JSON(value) AS log,
    FROM <event_table>
    WHERE TRUE
        AND timestamp > DATEADD(minute, -30, SYSDATE())
        AND record_type = 'LOG'
        AND runtime_key = 'runtime-<runtime_name>'
        AND resource_attributes:"k8s.container.name" ILIKE '%-server'
)
WHERE TRUE
    AND log:loggerName LIKE 'software.amazon.kinesis.%'
    AND log:level IN ('WARN', 'ERROR')
ORDER BY timestamp DESC
;
Copy

Substitua <event_table> with a configured event table name and <runtime_name> por um nome de tempo de execução.

Erros comuns da KCL

Esta seção descreve os erros comuns que podem aparecer nos logs da KCL e como resolvê-los.

Erro: usuário não autorizado

Mensagem de erro

User: **** is not authorized to perform: kinesis:RegisterStreamConsumer on
resource: arn:aws:kinesis:us-east-2:***:stream/*** because no identity-based
policy allows the kinesis:RegisterStreamConsumer action (Service: Kinesis,
Status Code: 400, Request ID: ***, Extended Request ID: ***)
(SDK Attempt Count: 1)
Copy

Causa

O usuário da AWS configurado não tem as permissões necessárias para acessar o fluxo do Kinesis.

Solução

Certifique-se de que o usuário da AWS esteja configurado com as permissões especificadas em Permissões do IAM necessárias para aplicativos de consumidor da KCL.

Erro: UnknownHostException

Mensagem de erro

java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
Copy

Causa

Se o tempo de execução usa uma implantação do Snowflake, a regra de rede provavelmente está mal configurada.

Solução

Certifique-se de que os domínios da AWS necessários constem na lista de permissão da sua regra de rede. Para obter a lista de domínios necessários, consulte Configuração do Openflow - Snowflake Deployment: Configurar domínios permitidos para conectores Openflow.

Erro: nenhum fragmento encontrado

Mensagem de erro

java.lang.IllegalStateException: No shards found when attempting to
validate complete hash range.
Copy

Causa

Esse erro pode ocorrer se o fluxo do Kinesis não existir ou a região da AWS estiver especificada incorretamente.

Solução

  1. Consulte nos logs da KCL se há mensagens como:

    Got ResourceNotFoundException when fetching shard list for stream-name.
    Stream no longer exists.
    
    Copy
  2. Verifique se o nome do fluxo está correto e se o fluxo existe na AWS.

  3. Verifique se a região da AWS foi especificada corretamente na configuração do conector.