Jaa


Tietojen muuntaminen dbt:n avulla

Muistiinpano

Apache Airflow -työnkulku toimii Apache Airflow'lla.

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.

    1. Siirry kohtaan Hallintaportaali -> Vuokraaja-asetukset –> Kohdassa Microsoft Fabric -> Laajenna "Käyttäjät voivat luoda ja käyttää Apache Airflow Job (esikatselu)" -osiota.

    2. Valitse Käytä. Näyttökuva Apache Airflow'n käyttöönottamiseksi vuokraajassa.

  • 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.

  • Luo "Apache Airflow Job" työtilassa.

Fabric-varastoon tallennettujen tietojen muuntaminen dbt:n avulla

Tässä osiossa käydään läpi seuraavat vaiheet:

  1. Määritä vaatimukset.
  2. Luo Dbt-projekti Fabric-hallittuun tallennustilaan, jonka tarjoaa Apache Airflow -työ.
  3. 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ö.

  1. 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
    
  2. Luo kansiossa dags nimetty nyc_taxi_green kansio tiedoston avullaprofiles.yml. Tämä kansio sisältää kaikki dbt-projektiin tarvittavat tiedostot. Näyttökuvassa näytetään dbt-projektin luontitiedostot.

  3. Kopioi seuraava sisältö : profiles.ymlhin. 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>
    
  4. 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
    
  5. Luo kansio models -kansioon nyc_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
    

    Näyttökuvassa näkyvät dbt-projektin mallit.

Apache Airflow -DAG:n luominen dbt-töiden järjestämiseksi

  • Luo kansiossa dags nimetty my_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

  1. Suorita DAG Apache Airflow Jobissa. Näyttökuvassa näkyy suoritusruutu.

  2. Jos haluat nähdä dagin ladattuna Apache Airflow -käyttöliittymään, napsauta Monitor in Apache Airflow.Näyttökuvassa näytetään, miten voit valvoa dag-ruutua.Näyttökuvassa näkyy onnistunut dag-suoritus.

Tietojen vahvistaminen

  • Onnistuneen suorituksen jälkeen voit vahvistaa tietosi valitsemalla Fabric-tietovarastoon uuden nyc_trip_count.sql -nimisen taulukon. Näyttökuvassa näkyy onnistunut dag-arvo.

Pikaopas: Apache-ilmavuotyön luominen