Activer le suivi de l'historique (SCD de type 2)
S'applique à : connecteurs SaaS
connecteurs de base de données
connecteurs basés sur la query
Le paramètre de suivi de l’historique, également appelé paramètre de dimensions à évolution lente (SCD), détermine comment gérer les modifications de vos données au fil du temps. Désactivez le suivi de l’historique (SCD de type 1) pour remplacer les enregistrements obsolètes au fur et à mesure de leur mise à jour et de leur suppression dans la source. Activez le suivi de l'historique (SCD de type 2) pour conserver l'historique de ces modifications. La suppression d’une table ou d’une colonne dans la source ne supprime pas ces données de la destination, même lorsque le SCD de type 1 est sélectionné.
Tous les connecteurs ne prennent pas en charge le SCD de type 2. Pour plus de détails sur la prise en charge, consultez la section Disponibilité des fonctionnalités sur la page d'aperçu de votre connecteur.
Comportement du suivi de l'historique
Par exemple, supposons que vous ingérez la table suivante :

Imaginons aussi que la couleur préférée d'Alice devient violette le 2 janvier.
Si le suivi de l'historique est désactivé (SCD de type 1), la prochaine exécution du pipeline d'ingestion met à jour cette ligne dans la table de destination.

Si le suivi de l'historique est activé (SCD de type 2), le pipeline d'ingestion conserve l'ancienne ligne et ajoute la mise à jour comme nouvelle ligne. Il marque l'ancienne ligne comme inactive afin que vous sachiez quelle ligne est à jour.

Activez le suivi de l'historique dans l'interface utilisateur
Vous pouvez activer le suivi de l'historique lorsque vous créez ou modifiez des pipelines d'ingestion gérés dans l'interface utilisateur de Databricks.
Dans la page Source de l'assistant d'ingestion de données, sélectionnez Activé dans le menu déroulant Suivi de l'historique (SCD de type 2).
![]()
Activer le suivi de l'historique à l'aide de l'API
Vous pouvez activer le suivi de l'historique lorsque vous créez ou modifiez des pipelines d'ingestion gérés à l'aide de Declarative Automation Bundles, de notebooks ou du CLI Databricks en spécifiant le parameter scd_type.
SCD_TYPE_1: Suivi de l'historique désactivéSCD_TYPE_2: Suivi de l'historique activé
Exemples : Google Analytics
Le SCD de type 2 est pris en charge pour les tables users et pseudonymous_users en utilisant last_updated_date comme colonne de curseur. Ce n'est pas pris en charge pour les tables d'événements qui ne permettent que l'ajout.
- Declarative Automation Bundles
- Databricks notebook
- Databricks CLI
Par default, le suivi de l'historique est désactivé (SCD de type 1). La configuration YAML suivante montre comment modifier ce paramètre dans un bundle :
resources:
pipelines:
pipeline_ga4:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection-name>
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
Par default, le suivi de l'historique est désactivé (SCD de type 1). Le code Python suivant montre comment modifier ce paramètre dans un Notebook :
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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",
}
}
}
]
}
}
"""
Par default, le suivi de l'historique est désactivé (SCD de type 1). La spécification JSON suivante montre comment modifier ce paramètre à l'aide de la CLI :
{
"resources": {
"pipelines": {
"pipeline_ga4": {
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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"
}
}
}
]
}
}
}
}
}
Exemples : Salesforce
- Declarative Automation Bundles
- Databricks notebook
- Databricks CLI
Par default, le suivi de l'historique est désactivé (SCD de type 1). La configuration YAML suivante montre comment modifier ce paramètre dans un bundle :
resources:
pipelines:
pipeline_sfdc:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection-name>
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
Par default, le suivi de l'historique est désactivé (SCD de type 1). Le code Python suivant montre comment modifier ce paramètre dans un Notebook :
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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",
}
}
}
]
}
}
"""
Par default, le suivi de l'historique est désactivé (SCD de type 1). La spécification JSON suivante montre comment modifier ce paramètre à l'aide de la CLI :
{
"resources": {
"pipelines": {
"pipeline_sfdc": {
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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"
}
}
}
]
}
}
}
}
}
Exemples : SQL Server
La colonne de séquence que vous spécifiez dans la configuration du pipeline (par exemple, last_updated, modified_at ou version_number) détermine la durée pendant laquelle chaque version de ligne était active (enregistrée dans les colonnes __START_AT et __END_AT de la table cible).
Les types de colonnes sequence_by suivants sont pris en charge :
- Horodatage
- Date
- Entier
- Long
- Chaîne
- Declarative Automation Bundles
- Databricks notebook
- Databricks CLI
Par default, le suivi de l'historique est désactivé (SCD de type 1). La configuration YAML suivante montre comment modifier ce paramètre dans un bundle :
resources:
pipelines:
pipeline_sqlserver:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection-name>
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>
Par default, le suivi de l'historique est désactivé (SCD de type 1). Le code Python suivant montre comment modifier ce paramètre dans un Notebook :
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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>"
}
}
}
]
}
}
"""
Par default, le suivi de l'historique est désactivé (SCD de type 1). La spécification JSON suivante montre comment modifier ce paramètre à l'aide de la CLI :
{
"resources": {
"pipelines": {
"pipeline_sqlserver": {
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"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>"
}
}
}
]
}
}
}
}
}
Exemples : Rapports Workday
- Declarative Automation Bundles
- Databricks notebook
- Databricks CLI
Par default, le suivi de l'historique est désactivé (SCD de type 1). La configuration YAML suivante montre comment modifier ce paramètre dans un bundle :
resources:
pipelines:
pipeline_workday:
name: <pipeline-name>
catalog: <destination-catalog>
schema: <destination-schema>
ingestion_definition:
connection_name: <connection-name>
objects:
- report:
source_url: <report-url>
destination_catalog: <destination-catalog>
destination_schema: <destination-schema>
table_configuration:
scd_type: SCD_TYPE_2
Par default, le suivi de l'historique est désactivé (SCD de type 1). Le code Python suivant montre comment modifier ce paramètre dans un Notebook :
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"objects": [
{
"report": {
"source_url": "<report-url>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
}
}
}
]
}
}
"""
Par default, le suivi de l'historique est désactivé (SCD de type 1). La spécification JSON suivante montre comment modifier ce paramètre à l'aide de la CLI :
{
"resources": {
"pipelines": {
"pipeline_workday": {
"name": "<pipeline-name>",
"catalog": "<destination-catalog>",
"schema": "<destination-schema>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"objects": [
{
"report": {
"source_url": "<report-url>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2"
}
}
}
]
}
}
}
}
}
Limitations
L’exécution d’un refresh complet remplace l’intégralité de la table. Cela supprime toutes les versions de lignes précédentes. Le nouvel historique est suivi à partir du point de refresh.