Il pacchetto dimensioni a modifica graduale contiene modelli di dati comuni per creare tabelle di dimensioni di tipo 2 che cambiano lentamente da origini dati modificabili in Dataform.
Le tabelle delle dimensioni che cambiano lentamente sono tabelle incrementali contenenti dati che possono cambiare in modo imprevedibile, non in base a una pianificazione regolare, ad esempio clienti o prodotti. In una tabella delle dimensioni di tipo 2 che cambia lentamente, i nuovi dati vengono aggiunti in una nuova riga senza sovrascrivere le righe esistenti. La cronologia della tabella viene conservata in più record per una determinata chiave nella chiave della dimensione che cambia lentamente. Ogni record ha una chiave univoca.
Il pacchetto Dimensioni in lenta modifica crea le seguenti relazioni in BigQuery per un determinato NAME
:
NAME
- una vista con i campiscd_valid_from
escd_valid_to
NAME_updates
: una tabella incrementale che archivia la cronologia delle modifiche della tabella di origine
Dataform si aggiorna lentamente dimensioni ogni volta che esegue una tabella incrementale di dimensioni che cambiano lentamente. Ti consigliamo di pianificare l'esecuzione della tabella delle dimensioni che cambia lentamente in modo che venga eseguita ogni giorno oppure ogni ora, a seconda della granularità delle modifiche che vuoi acquisire.
Per scoprire come pianificare le esecuzioni di Dataform, consulta Pianificare le esecuzioni con Cloud Composer o Pianificare le esecuzioni con Workflows e Cloud Scheduler.
Prima di iniziare
- Nella pagina Rilasciate le dimensioni in modo lento,
copia l'URL
.tar.gz
della release più recente. - Crea un repository Dataform.
- Crea e inizializza un'area di lavoro nel repository.
- Installa il pacchetto di dimensioni Lento modifica nel repository Dataform.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare un pacchetto,
chiedi all'amministratore di concederti il ruolo IAM
Editor Dataform (roles/dataform.editor
) per le aree di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare una tabella delle dimensioni che cambiano lentamente con il pacchetto Dimensioni in fase di modifica graduale
Per creare una tabella delle dimensioni che cambia lentamente con il pacchetto di dimensioni in fase di modifica lenta in Dataform, procedi nel seguente modo:
Nel riquadro File, accanto a
definitions/
, fai clic sul menu Altro .Fai clic su Crea file.
Nel riquadro Crea nuovo file, procedi nel seguente modo:
Nel campo Aggiungi un percorso file, dopo
definitions/
, inserisci il nome del file seguito da.js
. Ad esempio,definitions/definitions.js
.Fai clic su Crea file.
Nel riquadro File, seleziona il file
.js
appena creato. nello stesso file YAML.Importa il pacchetto nel file nel seguente formato:
const CONSTANT-NAME = require("dataform-scd");
Sostituisci CONSTANT-NAME con un nome per la costante, ad esempio
scd
.Crea tabelle di dimensioni che cambiano lentamente nel seguente formato:
scd("source_data_scd", { uniqueKey: "UNIQUE_ID", timestamp: "UPDATED_AT", // A field that stores a timestamp or date of when the row was last changed. source: { schema: "SOURCE_SCHEMA", // The source table to build slowly changing dimensions from. name: "SOURCE_SCHEMA_NAME", }, incrementalConfig: { // Any configuration parameters to apply to the incremental table that will be created. bigquery: { partitionBy: "UPDATED_AT", }, }, });
Sostituisci quanto segue:
- UNIQUE_ID: un identificatore univoco per le righe nella tabella
- UPDATED_AT: nome per il campo in cui è memorizzato un timestamp o una data in cui è stata apportata l'ultima modifica della riga, ad esempio
updated_at
- SOURCE_SCHEMA: lo schema della tabella
di origine, ad esempio
dataform_scd_example
- SOURCE_SCHEMA_NAME: nome della tabella di origine,
ad esempio
source_data
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra una definizione della tabella delle dimensioni che cambia lentamente, creata con il pacchetto Dimensioni in fase di modifica graduale:
const scd = require("dataform-scd");
/**
* Create an SCD table on top of the table defined in source_data.sqlx.
*/
const { updates, view } = scd("source_data_scd", {
// A unique identifier for rows in the table.
uniqueKey: "user_id",
// A field that stores a timestamp or date of when the row was last changed.
timestamp: "updated_at",
// The source table to build slowly changing dimensions from.
source: {
schema: "dataform_scd_example",
name: "source_data",
},
// Any tags that will be added to actions.
tags: ["slowly-changing-dimensions"],
// Documentation of table columns
columns: {user_id: "User ID", some_field: "Data Field", updated_at: "Timestamp for updates"},
// Configuration parameters to apply to the incremental table that will be created.
incrementalConfig: {
bigquery: {
partitionBy: "updated_at",
},
},
});
// Additional customization of the created models can be done by using the returned actions objects.
updates.config({
description: "Updates table for SCD",
});
Passaggi successivi
- Per informazioni su come creare tabelle incrementali in Dataform, consulta Configurare una tabella incrementale.
- Per scoprire di più sui pacchetti inclusi in Dataform con JavaScript, consulta Introduzione a JavaScript in Dataform.
- Per informazioni su come creare il tuo pacchetto e utilizzarlo in Dataform, consulta Creare un pacchetto in Dataform.