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:
Clique com o botão direito do mouse no processador na tela do Openflow.
Selecione Configure no menu de contexto.
Navegue até a guia Scheduling.
No campo Concurrent tasks, digite o número preferencial de tarefas simultâneas.
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
;
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: UnknownHostException¶
Mensagem de erro
java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
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.
Causa
Esse erro pode ocorrer se o fluxo do Kinesis não existir ou a região da AWS estiver especificada incorretamente.
Solução
Consulte nos logs da KCL se há mensagens como:
Got ResourceNotFoundException when fetching shard list for stream-name. Stream no longer exists.
Verifique se o nome do fluxo está correto e se o fluxo existe na AWS.
Verifique se a região da AWS foi especificada corretamente na configuração do conector.