Dnes jsem se pokoušel v rámci seznamování s Mage.ai provést instalaci přes Docker, protože momentálně (2024-01-26) je to jediný scénář kdy je možné rozchodit Dbt společně s Mage.ai v rámci společných pipelines nativně (pokud neprovozujete Mage-ai přes Docker, tak žádný strach. Pouštět Db můžeme přes custom python bloky)
Tento návod pokrývá i řešení chyby, která souvisí s nekompatibilním dbt-sqlserver adaptérem – dbt was unable to connect to the specified database. The database returned the following error: >SQLServerConnectionManager.execute() got an unexpected keyword argument ‘limit’
Instalace Mage.ai – Docker, SQL Server adapter
1) Nainstalujte si Docker
2) Založte si složku tam, kde chcete vytvořit náš Mage projekt, kde vám to dává smysl. Otevřete termáníl nebo příkazovou řádku a naveďte se do této složky.
3) V dokumentaci Mage najdeme příkaz pro start docker kontejneru a spuštění mage projektu, náš projekt se bude jmenovat mage-ai:
- Mac/Linux – docker run -it -p 6789:6789 -v $(pwd):/home/src mageai/mageai /app/run_app.sh mage start mage-ai
- Windows – docker run -it -p 6789:6789 -v “%cd%:/home/src” mageai/mageai /app/run_app.sh mage start mage-ai
4) Mage teď běží v kontejneru a je přístupný na adrese http://localhost:6789/
Inicializace dbt přes Docker, dbt debug a troubleshooting chyby
1) Dbt je nainstalováno v Docker kontejneru viz předchozí kapitola, takže nám stačí pouze otevřít terminál, nasměrovat se do složky dbt pomocí dbt init dbt_project a následně vybereme adaptér který odpovídá naší databázové platformě. V mém případě SQL Server
2) Musíme si ponastavovat profiles.yml soubor a dbt_project.yml soubor. Kontejnerizovaný Mage-ai s dbt očekává profiles.yml file uvnitř dbt projektu (nikoliv v .dbt nebo jinde). Možná se dá zabojovat a nějak to nastavit, ale já jsem prosě soubor přesunul.
3) Po konfuguraci připojení je čas na test pomocí dbt debug. Zde jsem narážel na chybu – SQLServerConnectionManager.execute() got an unexpected keyword argument ‘limit’
4) Problém je (asi) v nekompatibilní verzi dbt-sqlserver dbt adaptéru vs dbt-core, který je v kontejneru po instalaci přes mageai/mageai image. Můžeme se o tom přesvědčit příkazem: “dbt –version”
5) Oprava dbt-sqladapteru: aktualizujeme adaptér “pip install –upgrade dbt-sqlserver” případně upgradneme další nekompatibility.