Autor: Martin Bradáč

V článku je popsané, jak využít Power Query ne k načítání dat do datového modelu Power BI, ale k zápisu přímo do libovolné SQL databáze.

Power Query je silný dotazovací nástroj. Nespornou výhodou je schopnost zpracovat data v mnoha různých formátech. Tyto možnosti lze ale využít i pro zápis dat do SQL databáze.

Následující přiklad popisuje triviální situaci. Máme data v Excelu a SQL databázi, data (počty prodaných vozidel) z Excelu chceme uložit do SQL. Každému autu v SQL tak přiřadíme počet prodaných kusů z Excelu.

V našem řešení použijeme vlastní funkci z důvodu snadného opakovaného používání.

Vytvoření vlastní funkce

Vytvoříme funkci, kterou pojmenujeme například fSQLWrite, její zápis by mohl vypadat následovně:

  • let
       fSQLWrite = (Car, Sales) =>
          Sql.Database(
             “data”,
             “test”,
             [Query=”UPDATE [cars] SET [pcs]=” & Number.ToText(Sales) & ” WHERE Model='” & Car & “‘”])
    in
       fSQLWrite

Protože:

  • Vstupními parametry jsou hodnoty Car a Sales.
  • Sql.Database je název funkce
  • “data“ – název serveru
  • „test“ – název databáze
  • následuje vlastní dotaz – updatujeme tabulku „cars“, nastavíme v ní hodnotu „pcs“ podle parametru „Sales“ na řádku, kde ´“Model“ odpovídá parametru „Car“

Volání funkce

Připojíme Excelový sešit do PowerQuery jako další zdroj dat.

Přidáme sloupec s vlastní funkcí – do parametrů vložíme hodnoty ze sloupců.

Dotaz aktualizujeme – tím se hodnoty z Excelu uloží do databáze.