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