Habilitar o acompanhamento da história (SCD type 2)
Aplica-se a : Criação pipeline baseada em API
Conectores SaaS
Conectores de banco de dados
A configuração história acompanhamento, também conhecida como a configuração dimensões que mudam lentamente (SCD) (SCD), determina como lidar com as alterações nos dados ao longo do tempo. Desative o acompanhamento da história (SCD type 1) para sobrescrever registros desatualizados à medida que são atualizados e excluídos na fonte. Ative o acompanhamento do histórico (SCD type 2) para manter um histórico dessas alterações. A exclusão de uma tabela ou coluna na origem não exclui esses dados do destino, mesmo quando o SCD tipo 1 está selecionado.
Exemplo: comportamento de envio de história
Por exemplo, digamos que você ingere a tabela a seguir:

Digamos também que a cor favorita de Alice mude para roxo em 2 de janeiro.
Se o acompanhamento da história estiver desativado (SCD type 1), a próxima execução da ingestão pipeline atualiza essa linha na tabela de destino.

Se o acompanhamento da história estiver ativado (SCD type 2), a ingestão pipeline mantém a linha antiga e adiciona a atualização como uma nova linha. Ele marca a linha antiga como inativa para que você saiba qual linha está atualizada.

Nem todos os conectores suportam SCD tipo 2. Para obter uma lista dos conectores suportados, consulte a disponibilidade de recursos.
Sintaxe
A configuração scd_type suporta os seguintes valores:
SCD_TYPE_1(histórico de acompanhamento desativado)SCD_TYPE_2(história sobre)
Por exemplo, para ativar a busca por história, defina o seguinte na configuração do seu pipeline :
- Databricks Asset Bundles
- Databricks notebook
- Databricks CLI
scd_type: SCD_TYPE_2
"scd_type": "SCD_TYPE_2"
"scd_type": "SCD_TYPE_2"
Configuração analítica do Google
O SCD tipo 2 é compatível com as tabelas users e pseudonymous_users usando last_updated_date como a coluna do cursor. Não há suporte para tabelas em nível de evento, que são somente para anexos.
- Databricks Asset Bundles
- Databricks notebook
- Databricks CLI
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte configuração YAML mostra como alterar essa configuração em um pacote:
resources:
pipelines:
pipeline_ga4:
name: <pipeline>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection>
objects:
- table:
source_url: <project-id>
source_schema: <property-name>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
scd_type: SCD_TYPE_2
Por default, a história acompanhamento está desligada (SCD tipo 1). O código Python a seguir mostra como alterar essa configuração em um Notebook:
pipeline_spec = """
{
"name": "<pipeline>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_url": "<project-id>",
"source_schema": "<property-name>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
}
}
}
]
}
}
"""
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte especificação JSON mostra como alterar essa configuração usando a CLI:
{
"resources": {
"pipelines": {
"pipeline_ga4": {
"name": "<pipeline>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_url": "<project-id>",
"source_schema": "<property-name>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2"
}
}
}
]
}
}
}
}
}
Configuração do Salesforce
- Databricks Asset Bundles
- Databricks notebook
- Databricks CLI
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte configuração YAML mostra como alterar essa configuração em um pacote:
resources:
pipelines:
pipeline_sfdc:
name: <pipeline>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection>
objects:
- table:
source_schema: <source-schema>
source_table: <source-table>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
scd_type: SCD_TYPE_2
Por default, a história acompanhamento está desligada (SCD tipo 1). O código Python a seguir mostra como alterar essa configuração em um Notebook:
pipeline_spec = """
{
"name": "<pipeline>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_catalog": "<source-catalog>",
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
}
}
}
]
}
}
"""
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte especificação JSON mostra como alterar essa configuração usando a CLI:
{
"resources": {
"pipelines": {
"pipeline_sfdc": {
"name": "<pipeline>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2"
}
}
}
]
}
}
}
}
}
Configuração do SQL Server
A coluna de sequência que o senhor especifica na configuração do pipeline (por exemplo, last_updated, modified_at ou version_number) determina o intervalo de tempo em que cada versão de linha estava ativa (registrada nas colunas __START_AT e __END_AT na tabela de destino).
Os seguintes tipos de coluna sequence_by são suportados:
- Carimbo de data/hora
- Data
- Integer
- Long
- String
- Databricks Asset Bundles
- Databricks notebook
- Databricks CLI
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte configuração YAML mostra como alterar essa configuração em um pacote:
resources:
pipelines:
pipeline_sqlserver:
name: <pipeline>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection>
objects:
- table:
source_catalog: <source-catalog>
source_schema: <source-schema>
source_table: <source-table>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
scd_type: SCD_TYPE_2
sequence_by: <sequence-column>
Por default, a história acompanhamento está desligada (SCD tipo 1). O código Python a seguir mostra como alterar essa configuração em um Notebook:
pipeline_spec = """
{
"name": "<pipeline>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_catalog": "<source-catalog>",
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
"sequence_by": "<version-number>"
}
}
}
]
}
}
"""
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte especificação JSON mostra como alterar essa configuração usando a CLI:
{
"resources": {
"pipelines": {
"pipeline_sqlserver": {
"name": "<pipeline>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"table": {
"source_catalog": "<source-catalog>",
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
"sequence_by": "<version-number>"
}
}
}
]
}
}
}
}
}
Configuração do Workday
- Databricks Asset Bundles
- Databricks notebook
- Databricks CLI
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte configuração YAML mostra como alterar essa configuração em um pacote:
resources:
pipelines:
pipeline_workday:
name: <pipeline>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection>
objects:
- report:
source_url: <report-url>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
scd_type: SCD_TYPE_2
Por default, a história acompanhamento está desligada (SCD tipo 1). O código Python a seguir mostra como alterar essa configuração em um Notebook:
pipeline_spec = """
{
"name": "<pipeline>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"report": {
"source_url": "<report-url>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
}
}
}
]
}
}
"""
Por default, a história acompanhamento está desligada (SCD tipo 1). A seguinte especificação JSON mostra como alterar essa configuração usando a CLI:
{
"resources": {
"pipelines": {
"pipeline_workday": {
"name": "<pipeline>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection>",
"objects": [
{
"report": {
"source_url": "<report-url>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2"
}
}
}
]
}
}
}
}
}
Limitações
A execução de um refresh completo substitui a tabela inteira. Isso remove todas as versões anteriores da linha. A nova história é rastreada a partir do ponto refresh.