Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Connettori SaaS
Connettori per database
Connettori basati su query
L'impostazione di rilevamento della cronologia, nota anche come impostazione delle dimensioni a modifica lenta (SCD), determina come gestire le modifiche nei dati nel tempo. Disattivare il rilevamento della cronologia (SCD tipo 1) per sovrascrivere i record obsoleti man mano che vengono aggiornati ed eliminati nell'origine. Attivare il rilevamento della cronologia (scD tipo 2) per mantenere una cronologia di tali modifiche. L'eliminazione di una tabella o di una colonna nell'origine non comporta l'eliminazione di tali dati dalla destinazione, anche quando è selezionato il tipo 1.
Non tutti i connettori supportano scD di tipo 2. Per informazioni dettagliate sul supporto, vedere la sezione Disponibilità delle funzionalità nella pagina di panoramica del connettore.
Comportamento di monitoraggio della cronologia
Si supponga, ad esempio, di inserire la tabella seguente:
Diciamo anche che il colore preferito di Alice cambia in viola il 2 gennaio.
Se il rilevamento della cronologia è disattivato (SCD tipo 1), l'esecuzione successiva della pipeline di inserimento aggiorna tale riga nella tabella di destinazione.
Se il rilevamento della cronologia è attivo (scD tipo 2), la pipeline di inserimento mantiene la riga precedente e aggiunge l'aggiornamento come nuova riga. Contrassegna la riga precedente come inattiva in modo da sapere quale riga è up-to-date.
Abilitare il rilevamento della cronologia nell'interfaccia utente
È possibile abilitare il rilevamento della cronologia quando si creano o si modificano pipeline di inserimento gestite nell'interfaccia utente di Azure Databricks.
Nella pagina Origine della procedura guidata di inserimento dati selezionare Sì nel menu a discesa Rilevamento cronologia (scD tipo 2).
Abilitare il rilevamento della cronologia usando l'API
È possibile abilitare il rilevamento della cronologia quando si creano o si modificano pipeline di inserimento gestite usando bundle di automazione dichiarativa, notebook o la CLI di Databricks specificando il parametro scd_type.
-
SCD_TYPE_1: tracciamento della cronologia disattivato -
SCD_TYPE_2: tracciamento della cronologia attivato
Esempi: Google Analytics
Il tipo SCD 2 è supportato per le users e pseudonymous_users tabelle usando last_updated_date come colonna di cursore. Non è supportato per le tabelle a livello evento, che sono di solo accodamento.
Pacchetti di automazione dichiarativa
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La configurazione YAML seguente illustra come modificare questa impostazione in 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
Notebook di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). Il codice Python seguente illustra come modificare questa impostazione in 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",
}
}
}
]
}
}
"""
Interfaccia a riga di comando di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La specifica JSON seguente illustra come modificare questa impostazione usando l'interfaccia della riga di comando:
{
"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"
}
}
}
]
}
}
}
}
}
Esempi: Salesforce
Pacchetti di automazione dichiarativa
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La configurazione YAML seguente illustra come modificare questa impostazione in 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
Notebook di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). Il codice Python seguente illustra come modificare questa impostazione in 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",
}
}
}
]
}
}
"""
Interfaccia a riga di comando di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La specifica JSON seguente illustra come modificare questa impostazione usando l'interfaccia della riga di comando:
{
"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"
}
}
}
]
}
}
}
}
}
Esempi: SQL Server
La colonna sequenza specificata nella configurazione della pipeline (ad esempio, last_updated, modified_ato version_number) determina l'intervallo di tempo in cui ogni versione della riga era attiva (registrata nelle __START_AT colonne e __END_AT nella tabella di destinazione).
Sono supportati i tipi di colonna seguenti sequence_by :
- Marca temporale:
- Date
- Integer
- Long
- String
Pacchetti di automazione dichiarativa
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La configurazione YAML seguente illustra come modificare questa impostazione in 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>
Notebook di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). Il codice Python seguente illustra come modificare questa impostazione in 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>"
}
}
}
]
}
}
"""
Interfaccia a riga di comando di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La specifica JSON seguente illustra come modificare questa impostazione usando l'interfaccia della riga di comando:
{
"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>"
}
}
}
]
}
}
}
}
}
Esempi: Report di Workday
Pacchetti di automazione dichiarativa
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La configurazione YAML seguente illustra come modificare questa impostazione in 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
Notebook di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). Il codice Python seguente illustra come modificare questa impostazione in 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",
}
}
}
]
}
}
"""
Interfaccia a riga di comando di Databricks
Per impostazione predefinita, il rilevamento della cronologia è disattivato (scD tipo 1). La specifica JSON seguente illustra come modificare questa impostazione usando l'interfaccia della riga di comando:
{
"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"
}
}
}
]
}
}
}
}
}
Limitazioni
L'esecuzione di un aggiornamento completo sostituisce l'intera tabella. In questo modo vengono rimosse tutte le versioni di riga precedenti. La nuova cronologia viene rilevata a partire dal punto di aggiornamento.