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 ( |
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 |
Sem PK ou UK, sem cursor | O conector gera uma chave sintética a partir de todas as colunas. Utilize o modo de armazenamento |
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