Tietojen muuntaminen dbt:n avulla
dbt(Data Build Tool) on avoimen lähdekoodin komentoriviliittymä (CLI), joka yksinkertaistaa tietojen muuntamista ja mallintamista tietovarastoissa hallitsemalla monimutkaista SQL-koodia jäsennettynä ja ylläpidettävällä tavalla. Sen avulla tietotiimit voivat luoda luotettavia, testattavia muunnoksia analyysiputkien ytimeen.
Yhdessä Apache Airflow'n kanssa Dbt:n muunnosominaisuuksia parannetaan Airflow'n aikataulutus-, orkestrointi- ja tehtävienhallintaominaisuuksilla. Tämä yhdistetty lähestymistapa, jossa hyödynnetään Dbt:n muunnososaamista Yhdessä Airflow'n työnkulkujen hallinnan kanssa, tarjoaa tehokkaita ja vankkoja tietoputkia, mikä lopulta johtaa nopeampiin ja merkityksellisempiin tietoihin perustuviin päätöksiin.
Tässä opetusohjelmassa kuvataan, miten luodaan DAG-ohjelmointirajapinta Apache Airflow, joka muuntaa Microsoft Fabric -tietovarastoon tallennetut tiedot dbt:n avulla.
Edellytykset
Jotta voit aloittaa, sinun on täytettävä seuraavat edellytykset:
Ota Apache Airflow Job käyttöön vuokraajassasi.
Muistiinpano
Koska Apache Airflow -työ on esikatselutilassa, sinun on otettava se käyttöön vuokraajan järjestelmänvalvojan kautta. Jos näet jo Apache Airflow Job -kohteen, vuokraajasi järjestelmänvalvoja on saattanut jo ottaa sen käyttöön.
Luo palvelun päänimi. Lisää palvelun päänimi -kohdan määritykseen
Contributor
työtilassa, jossa luot tietovaraston.Jos sinulla ei ole Kangas-varastoa, luo Fabric-varasto. Käytä mallitietoja varastossa käyttämällä tietoputkia. Tässä opetusohjelmassa käytämme New Yorkin kaupungin taksinvihreää mallia.
Fabric-varastoon tallennettujen tietojen muuntaminen dbt:n avulla
Tässä osiossa käydään läpi seuraavat vaiheet:
- Määritä vaatimukset.
- Luo Dbt-projekti Fabric-hallittuun tallennustilaan, jonka tarjoaa Apache Airflow -työ.
- Apache Airflow -DAG:n luominen dbt-töiden järjestämiseksi
Määritä vaatimukset
Luo -kansioon dags
tiedostorequirements.txt
. Lisää seuraavat paketit Apache Airflow -vaatimuksiin.
astronomer-cosmos: Tätä pakettia käytetään Dbt-ydinprojektien suorittamiseen Apache Airflow -tiedoissa ja tehtäväryhmissä.
dbt-fabric: Tällä paketilla luodaan dbt-projekti, joka voidaan sitten ottaa käyttöön Fabric-tietovarastoon
astronomer-cosmos==1.0.3 dbt-fabric==1.5.0
Luo Dbt-projekti Fabric-hallinnoidussa tallennustilassa, jonka tarjoaa Apache Airflow -työ.
Tässä osiossa luomme malli dbt-projektin Apache Airflow Job -sovelluksessa tietojoukolle
nyc_taxi_green
, jolla on seuraava hakemistorakenne.dags |-- my_cosmos_dag.py |-- nyc_taxi_green | |-- profiles.yml | |-- dbt_project.yml | |-- models | | |-- nyc_trip_count.sql | |-- target
Luo kansiossa
dags
nimettynyc_taxi_green
kansio tiedoston avullaprofiles.yml
. Tämä kansio sisältää kaikki dbt-projektiin tarvittavat tiedostot.Kopioi seuraava sisältö :
profiles.yml
hin. Tämä määritystiedosto sisältää tietokannan yhteyden tiedot ja profiilit, joita dbt käyttää. Päivitä paikkamerkkiarvot ja tallenna tiedosto.config: partial_parse: true nyc_taxi_green: target: fabric-dev outputs: fabric-dev: type: fabric driver: "ODBC Driver 18 for SQL Server" server: <sql connection string of your data warehouse> port: 1433 database: "<name of the database>" schema: dbo threads: 4 authentication: ServicePrincipal tenant_id: <Tenant ID of your service principal> client_id: <Client ID of your service principal> client_secret: <Client Secret of your service principal>
dbt_project.yml
Luo tiedosto ja kopioi seuraava sisältö. Tämä tiedosto määrittää projektitason määritykset.name: "nyc_taxi_green" config-version: 2 version: "0.1" profile: "nyc_taxi_green" model-paths: ["models"] seed-paths: ["seeds"] test-paths: ["tests"] analysis-paths: ["analysis"] macro-paths: ["macros"] target-path: "target" clean-targets: - "target" - "dbt_modules" - "logs" require-dbt-version: [">=1.0.0", "<2.0.0"] models: nyc_taxi_green: materialized: table
Luo kansio
models
-kansioonnyc_taxi_green
. Tätä opetusohjelmaa varten luomme mallimallin tiedostoon nimeltänyc_trip_count.sql
, joka luo taulukon, joka näyttää matkojen määrän päivässä toimittajaa kohti. Kopioi seuraava sisältö tiedostoon.with new_york_taxis as ( select * from nyctlc ), final as ( SELECT vendorID, CAST(lpepPickupDatetime AS DATE) AS trip_date, COUNT(*) AS trip_count FROM [contoso-data-warehouse].[dbo].[nyctlc] GROUP BY vendorID, CAST(lpepPickupDatetime AS DATE) ORDER BY vendorID, trip_date; ) select * from final
Apache Airflow -DAG:n luominen dbt-töiden järjestämiseksi
Luo kansiossa
dags
nimettymy_cosmos_dag.py
tiedosto ja liitä siihen seuraava sisältö.import os from pathlib import Path from datetime import datetime from cosmos import DbtDag, ProjectConfig, ProfileConfig, ExecutionConfig DEFAULT_DBT_ROOT_PATH = Path(__file__).parent.parent / "dags" / "nyc_taxi_green" DBT_ROOT_PATH = Path(os.getenv("DBT_ROOT_PATH", DEFAULT_DBT_ROOT_PATH)) profile_config = ProfileConfig( profile_name="nyc_taxi_green", target_name="fabric-dev", profiles_yml_filepath=DBT_ROOT_PATH / "profiles.yml", ) dbt_fabric_dag = DbtDag( project_config=ProjectConfig(DBT_ROOT_PATH,), operator_args={"install_deps": True}, profile_config=profile_config, schedule_interval="@daily", start_date=datetime(2023, 9, 10), catchup=False, dag_id="dbt_fabric_dag", )
DaG:n suorittaminen
Jos haluat nähdä dagin ladattuna Apache Airflow -käyttöliittymään, napsauta
Monitor in Apache Airflow.
Tietojen vahvistaminen
- Onnistuneen suorituksen jälkeen voit vahvistaa tietosi valitsemalla Fabric-tietovarastoon uuden nyc_trip_count.sql -nimisen taulukon.