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).