In questa storia vorrei parlare della progettazione del data warehouse e di come organizziamo il processo. La modellazione dei dati è una parte essenziale dell’ingegneria dei dati. Definisce la struttura del database, gli schemi che utilizziamo e le strategie di materializzazione dei dati per l’analisi. Progettato nel modo giusto, aiuta a garantire che il nostro data warehouse funzioni in modo efficiente, soddisfacendo tutti i requisiti aziendali e gli obiettivi di ottimizzazione dei costi. Tratteremo alcune best practice ben note nella progettazione del data warehouse utilizzando lo strumento dbt come esempio. Daremo uno sguardo più approfondito ad alcuni esempi di come organizzare il processo di creazione, testare i nostri set di dati e utilizzare tecniche avanzate con macro per una migliore integrazione e distribuzione del flusso di lavoro.
Struttura
Diciamo di avere un data warehouse e molto SQL per gestire i dati in esso contenuti.
Nel mio caso è Snowflake. Ottimo strumento e una delle soluzioni più popolari sul mercato in questo momento, sicuramente tra i primi tre strumenti per questo scopo.
Quindi come strutturiamo il nostro progetto di data warehouse? Considera la struttura delle cartelle del progetto iniziale di seguito. Questo è ciò che abbiamo dopo aver corso dbt init
comando.
.
├── README.md
├── analyses
├── dbt_project.yml
├── logs
│ └── dbt.log
├── macros
├── models
│ └── example
│ ├── schema.yml
│ ├── table_a.sql
│ └── table_b.sql
├── profiles.yml
├── seeds
├── snapshots
├── target
│ ├── compiled
│ ├── graph.gpickle
│ ├── graph_summary.json
│ ├── manifest.json
│ ├── partial_parse.msgpack
│ ├── run
│ ├── run_results.json
│ └── semantic_manifest.json
└── tests
Al momento possiamo vedere solo un modello chiamato esempio con oggetti table_a e table_b. Può trattarsi di qualsiasi oggetto del data warehouse correlato tra loro in un certo modo, ad esempio vista, tabella, tabella dinamica, ecc.
Quando iniziamo a costruire il nostro data warehouse, il numero di questi oggetti aumenterà inevitabilmente ed è buona pratica mantenerlo organizzato.
Il modo più semplice per farlo sarebbe organizzare la struttura delle cartelle del modello in cui viene suddivisa base (trasformazioni di riga di base) e analitica Modelli. Nel analitica sottocartella, in genere avremmo dati profondamente arricchiti e…
Fonte: towardsdatascience.com