Pular para o conteúdo principal

Limitações do conector baseado em consulta

Limitações gerais

  • Os conectores baseados em consultas consultam a fonte em um programador. Eles não proporcionam ingestão contínua. Se você precisar de menor latência, use um conector de banco de dados CDC .
  • A coluna do cursor deve ser uma única coluna. Cursores compostos (combinando várias colunas) não são suportados. O valor da coluna deve ser monotonicamente crescente. As linhas com valores de cursor iguais ou inferiores à marca d'água máxima armazenada não são reingeridas.
  • Linhas com uma coluna de cursor NULL não são incluídas.

Requisitos e recomendações da tabela de origem

Considere as seguintes características da tabela de origem ao projetar uma carga de trabalho de ingestão baseada em consulta. Eles afetam a forma como uma tabela é ingerida e o desempenho da carga de trabalho.

Chave primária, chave exclusiva e cursor

Conectores baseados em query usam uma chave primária (PK) ou chave exclusiva (UK) para identificar linhas e uma coluna de cursor para detectar alterações. O comportamento de ingestão depende de quais destes estão disponíveis na tabela de origem:

Tabela de origem

Comportamento de ingestão

PK ou UK no cursor

Snapshot regular e ingestão incremental.

PK ou UK sem um cursor

Modo de snapshot em lote (APPLY CHANGES FROM SNAPSHOT). O conector relê a tabela completa a cada execução, portanto, este modo é mais adequado para tabelas menores.

Sem PK ou UK, cursor disponível

O conector gera uma chave sintética a partir de todas as colunas. Isso funciona para tabelas sem linhas duplicadas. Para tabelas com linhas totalmente duplicadas, use o modo de armazenamento APPEND_ONLY.

Sem PK ou UK, sem cursor

O conector gera uma chave sintética a partir de todas as colunas. Utilize o modo de armazenamento APPEND_ONLY com qualquer coluna como cursor, e sempre realize um refresh completo. Para tabelas com linhas totalmente duplicadas, APPEND_ONLY é necessário porque a chave sintética não consegue distinguir linhas idênticas.

Recomendações de particionamento e indexação

  • Coluna de partição : O conector seleciona automaticamente uma coluna para particionar a consulta de origem para leituras paralelas. Ele tenta primeiro a coluna da chave primária principal, desde que seja do tipo numérico, strings, data ou marca de tempo. Se essa coluna não for adequada, ela seleciona uma coluna de key única em vez disso. Para particionamento balanceado, a coluna deve ter:

    • Alta cardinalidade : É recomendado ter no mínimo 1.000 valores distintos para tabelas que se aproximam de 1 TB.
    • Baixa assimetria de dados : Evite colunas cujos valores se **clusters** fortemente em torno de poucos valores. Colunas distorcidas criam partições superdimensionadas que podem causar tempos limite de consulta e perder o progresso quando uma execução é reiniciada.

    Se a coluna selecionada automaticamente não atender a esses critérios, entre em contato com a equipe de contas da Databricks para solicitar uma substituição da coluna de particionamento.

  • Coluna do cursor indexada: Indexe a coluna do cursor no banco de dados de origem. Uma coluna de cursor não indexada degrada o desempenho de consulta incremental.

Recurso exclusivo da API

Os seguintes recursos são suportados para conectores baseados em consultas, mas apenas usando a API:

  • Filtragem de linhas
  • Acompanhamento de exclusão reversível (deletion_condition)
  • Acompanhamento de exclusão forçada (Beta)
  • Ingestão somente de anexos (modo SCD APPEND_ONLY )
  • Catálogo e esquema de múltiplos destinos