Fabric | dbt – Konfigurace profiles.yml pro SPN Autentizaci k SQL Endpointu

Tento článek popisuje postup konfigurace souboru profiles.yml v rámci nástroje dbt pro správné připojení k Microsoft Fabric SQL Endpointu s využitím autentizace pomocí Service Principal (SPN), kterou jsme si založili v tomto článku – Fabric | dbt – Azure Service Principal (SPN) a RBAC pro dbt. Cílem je zajistit bezpečné a automatizované spojení mezi dbt projektem a datovým skladem ve Fabricu, aniž by bylo nutné používat uživatelské účty.

V Microsoft Fabricu je SQL endpoint rozhraní (endpoint), které umožňuje přistupovat k datům uloženým v lakehouse nebo warehouse pomocí SQL dotazů — podobně, jako bys pracoval s klasickou databází v SQL Serveru nebo Synapse.

Nastavení profiles.yml pro Fabric

Soubor profiles.yml je klíčovou konfigurační částí dbt, která definuje připojovací řetězec k cílové destinaci (DWH Fabric). V našem prostředí máme Lakehouse jako Bronze a Data Warehouse jako Silver a Gold. Jelikož máme oba artefakty v jednom Fabric workspacu, tak na sebe  vzájemně vidí. To znamená, že nám stačí nastavit connection na DWH kde data skončí a zdroj dat (Bronze Lakehouse) nastavíme později v souboru source.yml pouze jako seznam tabulek.

V případě připojení k Fabric SQL Endpointu s využitím SPN autentizace je nutné zadat typ připojení fabric, ovladač ODBC a potřebné identifikátory tenant, client a secret. Budeme používat dbt-fabric adaptér, popis nastavení jsme řešili v článku. Ukázková konfigurace (citlivé údaje jsou skryty) s odděleným dev a prod prostředím:

fabric_data_platform:
  target: prod 
  outputs:
    prod:
      type: fabric 
      driver: 'ODBC Driver 18 for SQL Server'
      server: ${DBT_FABRIC_SERVER}
      port: 1433
      database: 'DWH'
      method: spark
      schema: 02_silver
      authentication: ServicePrincipal
      tenant_id: ${DBT_FABRIC_TENANT_ID}
      client_id: ${DBT_FABRIC_CLIENT_ID}
      client_secret: ${DBT_FABRIC_CLIENT_SECRET}
      threads: 4
      timeout: 300
      retries: 1

    dev:
      type: fabric 
      driver: 'ODBC Driver 18 for SQL Server'
      server: ${DBT_FABRIC_SERVER}
      port: 1433
      database: 'DWH_DEV'
      method: spark
      schema: 02_silver
      authentication: ServicePrincipal
      tenant_id: ${DBT_FABRIC_TENANT_ID}
      client_id: ${DBT_FABRIC_CLIENT_ID}
      client_secret: ${DBT_FABRIC_CLIENT_SECRET}
      threads: 4
      timeout: 300
      retries: 1

V této konfiguraci se proměnné načítají z prostředí, což zajišťuje, že přístupové klíče a jiné citlivé údaje
nejsou uloženy přímo v konfiguračním souboru a v repozitáři. Prostředí prod a dev využívají stejné SPN přihlašovací údaje, ale směřují do různých Warehouse artefaktů  v rámci Fabricu.

Testování profiles.yml připojení

Správnost konfiguračního souboru profiles.yml a nastavení práv můžeme otestovat příkazem dbt debug v našem vývojovém prostředí nad dbt projektem (třeba Visual Studio Code)

configuration-profiles-yml

Závěr

Konfigurace SPN autentizace v dbt pro Microsoft Fabric umožňuje bezpečné a centralizované řízení přístupu k datovým zdrojům. Díky využití Service Principal lze zcela eliminovat potřebu interaktivního přihlašování a zajistit hladkou integraci s DevOps a automatizačními nástroji – doporučuju článek o automatizaci CI/CD přes Auire container app jobs

V kombinaci s bezpečným uložením tajných klíčů a oddělením prostředí (dev, test, prod) poskytuje tento přístup bezpečné řešení pro správu datové platformy postavené na Microsoft Fabric a dbt.

Rate this post
Rubrika: Dbt (data build tool) Fabric

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

Leave a Reply

Your email address will not be published. Required fields are marked *