refresh completamente as tabelas de destino
Aplica-se a : Conectores SaaS
Conectores de banco de dados
A atualização completa do pipeline de ingestão limpa os dados e o estado das tabelas de destino e, em seguida, reprocessa todos os registros da fonte de dados. Você pode refresh completamente todas as tabelas no pipeline ou selecionar as tabelas que deseja refresh.
Interface | Instruções |
|---|---|
interface do usuário da casa do lago | |
APIde pipeline | |
CLI do Databricks |
A atualização do pipeline de ingestão pode falhar durante a fase Initializing ou Resetting tables . LakeFlow Connect tenta novamente o pipeline automaticamente várias vezes. Se você interromper as tentativas automáticas ou se elas eventualmente falharem de forma irreversível, inicie uma nova atualização pipeline manualmente, usando a mesma seleção de refresh da tabela de antes. Caso contrário, as tabelas de destino podem acabar em um estado inconsistente, com dados parciais. Se as tentativas manuais também falharem, crie um ticket de suporte.
Comportamento refresh completa (CDC)
Aplica-se a : Conectores de banco de dados
Ao acionar uma refresh completa de uma tabela, Databricks otimiza o processo para reduzir o tempo de inatividade e manter a disponibilidade dos dados:
- SolicitaçãoSnapshot : Quando você solicita uma refresh completa, o gateway de ingestão começa imediatamente a criar um novo instantâneo da tabela de origem. A tabela de transmissão de destino é excluída da seleção refresh até que o Snapshot seja concluído.
- Disponibilidade contínua : Durante o processo de Snapshot, a tabela de transmissão de destino mantém seus dados existentes e permanece disponível para consultas. Nenhuma atualização, acréscimo ou exclusão é aplicada à tabela enquanto o Snapshot estiver em andamento.
- refreshatômica : Após a conclusão do Snapshot, Databricks realiza automaticamente a refresh completa em uma única operação. Esta atualização aplica todos os dados do Snapshot e quaisquer registros CDC acumulados desde que o Snapshot foi solicitado.
Por exemplo, se sua tabela tiver 50 registros ao final da atualização 15 e você solicitar uma refresh completa na atualização 16:
- O gateway de ingestão começa a criar um Snapshot durante a atualização 16.
- A tabela continua mostrando os 50 registros originais até que o Snapshot seja concluído.
- Quando o Snapshot for concluído (na atualização 16 ou posterior, dependendo do tamanho da tabela de origem), a refresh completa será aplicada automaticamente em uma única operação atômica.
Essa abordagem reduz significativamente o tempo de inatividade durante operações refresh completa e ajuda a evitar erros PENDING_RESET e de tempo limite excedido.
Configure o comportamento refresh completa para conectores de banco de dados.
Aplica-se a: Conectores de banco de dados
Criação pipeline baseada em API
Aprenda como configurar o comportamento refresh completa para gerenciar o pipeline de ingestão com conectores de banco de dados (como SQL Server) no LakeFlow Connect. Você pode programar quando ocorrerá refresh completa do Snapshot e habilitar refresh completa automática para se recuperar de alterações de esquema não suportadas.
refresh completa da janela
Uma janela refresh completa permite programar quando as operações de captura de instantâneo para refresh completa ocorrerão. Quando você solicita uma refresh completa ou quando o sistema aciona automaticamente uma refresh completa, o Snapshot começa no próximo horário disponível na janela configurada. A tabela a seguir mostra como o programador funciona:
Solicitar horário | Janela | Snapshot começar | Notas |
|---|---|---|---|
Segunda-feira, 20 de outubro de 2025, 10:00:00 UTC | Hora de início: 20, Dias: terça-feira, Fuso horário: UTC | Terça-feira, 21 de outubro de 2025, 20:00:00 UTC | Snapshot adiada para o próximo dia disponível. |
Segunda-feira, 20 de outubro de 2025, 09:30:00 UTC | Hora de início: 9, Dias: Segunda-feira, Fuso horário: UTC | Segunda-feira, 20 de outubro de 2025, 09:30:00 UTC | No mesmo dia, solicite um horário dentro da janela de horário. |
Segunda-feira, 20 de outubro de 2025, 10:00:00 UTC | Hora de início: 9, Dias: Segunda-feira, Fuso horário: UTC | Segunda-feira, 27 de outubro de 2025, 09:00:00 UTC | O pedido foi feito após o prazo limite e será adiado para a próxima semana. |
Parâmetros de configuração
Configure a janela refresh completa no ingestion_definition da sua especificação pipeline :
Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| Integer | A hora de início da janela (0-23) no dia de 24 horas. | Sim |
| matriz | Dias em que a janela está ativa. Valores válidos: | Não |
| String | ID do fuso horário da janela. Consulte a seção Definir o fuso horário da sessão para obter informações sobre os IDs de fuso horário compatíveis. Se não for especificado, o padrão é UTC. | Não |
Exemplo: Configurar uma janela refresh completa
Os exemplos a seguir mostram como adicionar uma janela refresh completa à sua definição pipeline .
- Databricks Asset Bundles
- Databricks notebook
resources:
pipelines:
gateway:
name: <gateway-name>
gateway_definition:
connection_id: <connection-id>
gateway_storage_catalog: <destination-catalog>
gateway_storage_schema: <destination-schema>
gateway_storage_name: <destination-schema>
target: <destination-schema>
catalog: <destination-catalog>
pipeline_sqlserver:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
ingestion_gateway_id: <gateway-id>
objects:
- table:
source_schema: <source-schema>
source_table: <source-table>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
full_refresh_window:
start_hour: 20
days_of_week:
- MONDAY
- TUESDAY
time_zone_id: 'America/Los_Angeles'
gateway_pipeline_spec = {
"pipeline_type": "INGESTION_GATEWAY",
"name": "<gateway-name>",
"catalog": "<destination-catalog>",
"target": "<destination-schema>",
"gateway_definition": {
"connection_id": "<connection-id>",
"gateway_storage_catalog": "<destination-catalog>",
"gateway_storage_schema": "<destination-schema>",
"gateway_storage_name": "<destination-schema>"
}
}
ingestion_pipeline_spec = {
"pipeline_type": "MANAGED_INGESTION",
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"ingestion_gateway_id": "<gateway-pipeline-id>",
"source_type": "SQLSERVER",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
}
],
"full_refresh_window": {
"start_hour": 20,
"days_of_week": ["MONDAY", "TUESDAY"],
"time_zone_id": "America/Los_Angeles"
}
}
}
Política refresh automática completa
Para ajudar a manter a consistência dos dados sem intervenção manual, uma política refresh completa automática permite acionar automaticamente uma refresh completa quando o pipeline encontra operações DDL não suportadas:
- Truncar tabela
- Alterações de esquema incompatíveis (por exemplo, alterações de tipo de dados)
- Renomear colunas
- Adições de coluna com valores default
Sem refresh automática completa ativada, você deve acionar manualmente uma refresh completa quando essas operações ocorrerem.
Parâmetros de configuração
Configure refresh automática completa no nível pipeline ou no nível da tabela em sua especificação pipeline :
Parâmetro | Tipo | Descrição | Padrão |
|---|---|---|---|
| Booleana | Indica se refresh automática completa está ativada. |
|
| Integer | Intervalo mínimo de espera em horas entre atualizações completas. O sistema aguarda esse intervalo desde o último Snapshot antes de iniciar uma nova refresh automática completa. | 24 |
Você pode configurar refresh automática completa em vários níveis:
- Nível do pipeline: Em
ingestion_definition.table_configuration.auto_full_refresh_policy - Nível da tabela: Em
ingestion_definition.objects[].table.table_configuration.auto_full_refresh_policy
A configuração em nível de tabela substitui a configuração em nível de pipeline.
Exemplo: Configure refresh automática completa no nível pipeline .
Os exemplos a seguir mostram como habilitar refresh completa automática para todas as tabelas em um pipeline.
- Databricks Asset Bundles
- Databricks notebook
resources:
pipelines:
gateway:
name: <gateway-name>
gateway_definition:
connection_id: <connection-id>
gateway_storage_catalog: <destination-catalog>
gateway_storage_schema: <destination-schema>
gateway_storage_name: <destination-schema>
target: <destination-schema>
catalog: <destination-catalog>
pipeline_sqlserver:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
ingestion_gateway_id: <gateway-id>
objects:
- table:
source_schema: <source-schema>
source_table: <source-table>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
auto_full_refresh_policy:
enabled: true
min_interval_hours: 24
gateway_pipeline_spec = {
"pipeline_type": "INGESTION_GATEWAY",
"name": "<gateway-name>",
"catalog": "<destination-catalog>",
"target": "<destination-schema>",
"gateway_definition": {
"connection_id": "<connection-id>",
"gateway_storage_catalog": "<destination-catalog>",
"gateway_storage_schema": "<destination-schema>",
"gateway_storage_name": "<destination-schema>"
}
}
ingestion_pipeline_spec = {
"pipeline_type": "MANAGED_INGESTION",
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"ingestion_gateway_id": "<gateway-pipeline-id>",
"source_type": "SQLSERVER",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
}
],
"table_configuration": {
"auto_full_refresh_policy": {
"enabled": True,
"min_interval_hours": 24
}
}
}
}
Exemplo: Configurar refresh automática completa por tabela
Os exemplos a seguir mostram como habilitar refresh completa automática no nível pipeline , mas desabilitá-la para tabelas específicas.
- Databricks Asset Bundles
- Databricks notebook
resources:
pipelines:
gateway:
name: <gateway-name>
gateway_definition:
connection_id: <connection-id>
gateway_storage_catalog: <destination-catalog>
gateway_storage_schema: <destination-schema>
gateway_storage_name: <destination-schema>
target: <destination-schema>
catalog: <destination-catalog>
pipeline_sqlserver:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
ingestion_gateway_id: <gateway-id>
objects:
- table:
source_schema: <source-schema>
source_table: table_1
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
- table:
source_schema: <source-schema>
source_table: table_2
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
auto_full_refresh_policy:
enabled: false
min_interval_hours: 24
table_configuration:
auto_full_refresh_policy:
enabled: true
min_interval_hours: 24
gateway_pipeline_spec = {
"pipeline_type": "INGESTION_GATEWAY",
"name": "<gateway-name>",
"catalog": "<destination-catalog>",
"target": "<destination-schema>",
"gateway_definition": {
"connection_id": "<connection-id>",
"gateway_storage_catalog": "<destination-catalog>",
"gateway_storage_schema": "<destination-schema>",
"gateway_storage_name": "<destination-schema>"
}
}
ingestion_pipeline_spec = {
"pipeline_type": "MANAGED_INGESTION",
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"ingestion_gateway_id": "<gateway-pipeline-id>",
"source_type": "SQLSERVER",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "table_1",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
},
{
"table": {
"source_schema": "<source-schema>",
"source_table": "table_2",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"auto_full_refresh_policy": {
"enabled": False,
"min_interval_hours": 24
}
}
}
}
],
"table_configuration": {
"auto_full_refresh_policy": {
"enabled": True,
"min_interval_hours": 24
}
}
}
}
Neste exemplo, table_1 usa a política de nível de pipeline (ativada), enquanto table_2 a substitui com configuração de nível de tabela (desativada).