Kapitoly kurzu
1. Licencování a režimy připojení 2. Sdílené pracovní prostory 3. Power BI Apps, Audiences a RLS 4. Gateway a aktualizace dat 5. Kapacita, pipelines, verzování 6. Sémantické modely, Dataflows, OneLake 7. Administrace a monitoring
Cvičení
8. Cvičení 1: Workspaces a sdílení 9. Cvičení 2: App a RLS 10. Cvičení 3: Sdílený model 11. Cvičení 4: Životní cyklus obsahu
🏠 Rozcestník kurzu
GOC686 · Kapitola 5

Správa prostředí: kapacita, pipelines, verzování

Sdílená vs. dedikovaná kapacita, deployment pipelines, Git integrace a PBIP / TMDL
🗂 Kapitola kurzu

Cíle kapitoly

  • Rozlišit sdílenou kapacitu a dedikovanou F-SKU/Premium kapacitu a jejich dopad na funkce
  • Postavit deployment pipeline se stages DEV/TEST/PROD a použít Compare a Deploy
  • Nastavit deployment rules, aby PROD nikdy nesahal na vývojová data
  • Propojit workspace s Gitem a popsat, co se do repozitáře exportuje
  • Orientovat se v PBIP/PBIR/TMDL formátu a v doporučeném týmovém workflow
5.1

Proč oddělovat prostředí

Vývojář opraví chybu přímo v produkčním reportu, přepne přepínač, a rozbije ho pro dvě stovky uživatelů — klasický scénář, kterému se dá předejít oddělením prostředí. Standardní vzor jsou tři workspace v roli DEV, TEST a PROD: v DEV vývojáři volně experimentují, TEST slouží k ověření uživateli nebo QA týmem (UAT), do PROD se dostává jen obsah, který prošel schválením, a koncoví uživatelé k němu přistupují přes app, ne přímo do workspace.

💡
Tip: Bez odděleného DEV/TEST/PROD je každá změna riziko — oprava jedné míry se může projevit v reportu, který nikdo netestoval. Deployment pipeline a Git integrace (viz dál) jsou nástroje, které tenhle proces zrychlí a zpřehlední, samotné oddělení workspace ale funguje i bez nich.
5.2

Sdílená vs. dedikovaná kapacita

Shared capacity (Pro workspace) sdílí výpočetní zdroje s ostatními tenanty na pozadí — dostatečné pro menší týmy a základní scénáře, ale bez pokročilých funkcí. Dedikovaná kapacita — F-SKU nebo Premium P — vyhrazuje výpočetní výkon jen vaší organizaci a odemyká funkce, které shared kapacita nemá: deployment pipelines, XMLA endpoint, větší modely, vyšší frekvenci refreshe.

⚠️
Pozor: PPU (Premium Per User) není kapacita — je to licence na jednotlivého uživatele nad sdíleným Premium poolem, bez dedikovaného výpočetního výkonu. PPU workspace odemyká většinu Premium funkcí (deployment pipelines, XMLA endpoint, 48 refreshů/den, model do 100 GB), ale nejde o totéž co dedikovaná F-SKU/Premium kapacita — nemá vlastní vyhrazený výkon. PPU nemá žádnou kapacitu, kterou by šlo pozastavit.
Shared capacityPPU (sdílený pool)Dedikovaná kapacita (F-SKU / Premium P)
Dedikovaný výkonNeNe — sdílený Premium poolAno
Scheduled refreshmax 8×/denmax 48×/denmax 48×/den (každých 30 min)
Deployment pipelinesNejsou k dispoziciK dispoziciK dispozici
Vizuální označení workspaceBez ikonyDiamantová ikona u názvuDiamantová ikona u názvu
Velikost modelu1 GB (Pro)100 GBdle SKU (F/P)
⚠️
Pozor: Pozastavená (paused) kapacita znamená, že obsah na ní může být nedostupný — jde o jiný stav než shared capacity, kam se workspace nepřepne automaticky. Před plánovanou pauzou kapacity je doporučené workspace buď odpojit, nebo přesunout jinam, jinak hrozí výpadek přístupu pro uživatele. Pozastavit lze kapacity spravované v Azure jako vlastní prostředek — F SKU a starší Embedded A SKU. P SKU se pozastavuje jinak (přesný stav pause/resume u P SKU ověřte v aktuální dokumentaci) a PPU pozastavit nejde vůbec, protože nemá vlastní kapacitu.

XMLA endpoint a export API mají u PPU další omezení oproti dedikované kapacitě (export jen pro paginated reporty, ne pro klasické Power BI reporty).

Shared capacity (Pro) • refresh max 8×/den • pipelines nejsou • bez diamantové ikony • model do 1 GB • sdílené zdroje s jinými tenanty PPU (sdílený pool) • refresh max 48×/den • pipelines k dispozici • diamantová ikona • model do 100 GB • bez dedikovaného výkonu — licence na uživatele Dedikovaná (F / P) • refresh max 48×/den • pipelines k dispozici • diamantová ikona • model dle SKU (F/P) • pauza (F) ⇒ obsah nedostupný (vlastní vyhrazený výkon) Workspace se mezi režimy nepřepíná automaticky — kapacitu nebo licenci přiřazuje administrátor.
Shared capacity nemá dedikovaný výkon ani deployment pipelines. PPU odemyká pipelines a vyšší limity, ale zůstává licencí nad sdíleným Premium poolem bez vlastní kapacity, kterou by šlo pozastavit. Pause/resume je funkce Azure prostředků (F SKU, starší Embedded A SKU) — u P SKU se chování liší, ověřte v dokumentaci.
5.3

Deployment pipelines — co to je a jak funguje

Deployment pipeline je nástroj pro řízený přesun obsahu mezi workspace — typicky DEV → TEST → PROD. Má 2 až 10 stages (výchozí jsou tři: Development, Test, Production), stages lze přidávat, mazat i přejmenovat podle potřeby. Vyžaduje Premium, PPU nebo F-SKU (Fabric) kapacitu; u PPU se workspace automaticky asociuje s PPU tenantem.

ℹ️
Poznámka: Pipeline není Git a není obecný CI/CD nástroj — je to „přesouvač obsahu" mezi workspace s historií deploymentů. Verzování a code review řeší Git integrace (viz dál), ne pipeline.

Compare a Deploy

Compare ukáže rozdíl mezi dvěma sousedními stages — co je nové, co se změnilo, co chybí. Deploy zkopíruje vybrané nebo všechny položky do následující stage. Deployment je vždy metadata-only — nekopírují se data, po deployi je potřeba spustit refresh a credentials/gateway připojení nastavit v cílovém workspace zvlášť.

DEV volný vývoj TEST UAT, QA ověření PROD přístup jen přes app Compare → Deploy Compare → Deploy Deployment rules
Pipeline přesouvá metadata mezi třemi stages pomocí Compare a Deploy; deployment rules u přechodu do PROD přesměrují parametry, aby produkce nesahala na vývojová data.
⚠️
Pozor: Dokumentace deployment pipelines uvádí mezi omezeními „PBIR reports aren't supported" — reporty ve formátu PBIR (dnes výchozí formát reportu) tedy před zavedením workflow pipeline + PBIP ověřte, jestli je podpora ve vaší verzi rozšířená. Od 12. 2. 2026 pipelines navíc nenasadí sémantické modely, které nemají upgradovanou Enhanced metadata — modely vytvořené nebo upravené v aktuálním Power BI Desktop ji mají automaticky.
5.4

Deployment rules

Problém: report v DEV ukazuje na testovací databázi. Bez zásahu by po deployi do PROD ukazoval na tu samou testovací databázi i tam. Deployment rules řeší přesměrování po deployi — existují dva typy:

  • Data source rules — přepíší connection string/server pro cílovou stage (v PROD se použije produkční databáze místo DEV).
  • Parameter rules — přepíší hodnotu Power Query parametru pro cílovou stage.

Pravidlo se nastaví u cílové stage pomocí tlačítka Deployment rules u konkrétní položky a platí pro všechny další deploye — bez nich by bylo nutné přepojovat zdroj ručně po každém nasazení, což je zdroj chyb.

  • Pravidlo může vytvořit jen vlastník (owner) položky, na kterou se vztahuje.
  • Pravidla nejde vytvořit v development stage — jen v cílových stages za ní (typicky TEST, PROD).
  • Nově vytvořené nebo změněné pravidlo se projeví až při dalším deployi do dané stage, ne zpětně na obsah, který už tam je.
✓
Shrnutí: Deployment rule zajistí, že výsledkem deploymentu je identická kopie obsahu z předchozí stage, jen s jinými credentials/zdrojem dat — ne ruční „přetypování" po každém kroku.
5.5

Git integrace

Binární .pbix soubor neumožňuje smysluplný diff ani code review. Git integrace propojí workspace s repozitářem a exportuje obsah jako textové soubory — definice tabulek, DAX míry, vztahy, report layout, role. Data, credentials ani osobní bookmarky se do Gitu neexportují.

Podporovaní poskytovatelé jsou Azure DevOps, GitHub a GitHub Enterprise — všichni jen jako cloud-based služba. Git integrace pokrývá desítky typů položek (Lakehouse, Notebook, Pipeline, Dataflow Gen2, Warehouse, sémantický model, report, Variable library, org app a další) — ne všechny typy položek jsou podporované stejně.

⚠️
Pozor: Pro klíčové Power BI položky — sémantický model, report, paginated report i org app — uvádí dokumentace Git integraci jako preview. Admin musí navíc povolit tenant setting „Users can synchronize workspace items with their Git repositories" (a pro GitHub samostatný přepínač „…with GitHub repositories"), jinak uživatelé Git integraci ve workspace vůbec nevidí.
Power BI Desktop lokální .pbip soubory Git repozitář Azure DevOps / GitHub Fabric workspace Git integration commit / push ↑ Commit ↓ Update Repo → workspace: Update workspace (Source control → Update all) Workspace → repo: Commit to Git Do repozitáře se neexportují data, credentials ani osobní bookmarky.
Vývojář pracuje lokálně v PBIP formátu, commituje do Git repozitáře. Workspace se z repozitáře aktualizuje ručně přes Update workspace (Source control → Update all), změny z workspace se do repozitáře dostanou přes Commit to Git.
Update from Git přes Fabric REST API▼

Aktualizaci workspace z Gitu (ekvivalent tlačítka Update all) lze spustit i programově — užitečné pro automatizaci po schváleném Pull Requestu.

HTTP
POST https://api.fabric.microsoft.com/v1/workspaces/00000000-0000-0000-0000-000000000000/git/updateFromGit
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "workspaceHead": "eaa737b48cda41b37ffefac772ea48f6fed3eac4",
  "remoteCommitHash": "7d03b2918bf6aa62f96d0a4307293f3853201705",
  "conflictResolution": {
    "conflictResolutionType": "Workspace",
    "conflictResolutionPolicy": "PreferRemote"
  }
}

Hodnoty workspaceHead a remoteCommitHash — remoteCommitHash je povinný, workspaceHead volitelný — vrátí volání GET …/git/status. Operace běží asynchronně jako long running operation (odpověď 202, stav se sleduje přes hlavičku Location). Volající potřebuje ve workspace roli Contributor nebo vyšší, delegovaný scope Workspace.GitUpdate.All a nastavené Git credentials (Update My Git Credentials).

5.6

PBIP, PBIR a TMDL formát

PBIP (Power BI Project) je složková struktura — místo jednoho binárního .pbix souboru dostanete sadu textových souborů rozdělených do podsložek .Report a .SemanticModel. PBIP zvolíte v Power BI Desktop přes File → Save as → Power BI Project (*.pbip). PBIP i PBIR jsou dle dokumentace GA a PBIR je výchozí formát reportu.

SCHÉMA
MujReport.pbip
MujReport.Report/
  ├─ definition.pbir
  ├─ definition/
  │   ├─ report.json
  │   ├─ version.json
  │   ├─ pages/
  │   │   └─ <page>/
  │   │       ├─ page.json
  │   │       └─ visuals/<visual>/visual.json
  │   └─ bookmarks/
  └─ StaticResources/
MujReport.SemanticModel/
  ├─ definition.pbism
  └─ definition/
      ├─ database.tmdl
      ├─ model.tmdl
      ├─ tables/
      │   ├─ Prodej.tmdl
      │   └─ Datum.tmdl
      ├─ relationships.tmdl
      ├─ roles/
      │   └─ Kraj_PHA.tmdl
      └─ cultures/
          └─ cs-CZ.tmdl

TMDL (Tabular Model Definition Language) je textový formát sémantického modelu. Dělí model po objektech — tabulka, perspektiva, role, kultura — každý má vlastní soubor. Není to „jedna DAX míra = jeden soubor": míry konkrétní tabulky žijí společně uvnitř souboru té tabulky, pod sekcí measure.

⚠️
Pozor — častý omyl: TMDL nerozděluje model tak, že by každá DAX míra měla vlastní soubor. Granularita je na úrovni tabulky, role, perspektivy a kultury. Code review v Pull Requestu tedy probíhá nad souborem tabulky, ne nad jednotlivou mírou zvlášť — diff ale i tak jasně ukáže, která konkrétní míra se změnila.
TMDL
table Prodej

  measure 'Celkem trzby' = SUM(Prodej[Castka])
    formatString: #,0

  measure 'Trzby predchozi rok' =
      CALCULATE(
        [Celkem trzby],
        SAMEPERIODLASTYEAR('Datum'[Datum])
      )

  column Castka
    dataType: decimal
    summarizeBy: sum

  partition Prodej = m
    mode: import
    source =
        let
          Zdroj = Sql.Database("server.database.windows.net", "ProdejDB")
        in
          Zdroj

PBIR jde u reportu dál a dělí ho po jednotlivých stránkách a vizuálech (soubor page.json a visual.json pro každý) — granularita reportu je tedy jemnější než u sémantického modelu. Formát PBIP/PBIR/TMDL je dle dokumentace obecně dostupný (GA) a PBIR je dnes výchozí formát reportu v Power BI Desktop.

5.7

Pipeline vs. Git — co řeší co

Deployment pipelineGit integrace
ÚčelPřesun obsahu DEV → TEST → PRODVerzování a historie změn
Kde běžíPower BI / Fabric ServiceAzure DevOps / GitHub
Kdo to řídíAdmin / vlastník pipelineDeveloper, přes Pull Request
Odpovídá na otázku„Jak bezpečně dostat report do produkce?"„Kdo změnil tuto míru a proč?"
Nutná kapacitaPremium / F-SKU / PPUPremium / F-SKU / PPU

Ideální stav je obojí zároveň — Git pro historii a code review, pipeline pro řízené nasazení mezi prostředími.

5.8

Variable library (nad rámec osnovy)

Variable library je Fabric položka pro centrální správu konfiguračních hodnot napříč prostředími — typicky jiná hodnota pro dev, jiná pro test a jiná pro prod, spravovaná na jednom místě místo rozházených parametrů v jednotlivých položkách. Podporuje value-sets (sady hodnot per prostředí), proměnné typu item-reference (preview) a integraci s Gitem i deployment pipelines. Limit je 1000 proměnných a 1000 value-sets na knihovnu (max 10 000 buněk, 1 MB).

⚠️
Pozor: Podporovaní konzumenti Variable library jsou pipeline, notebook, lakehouse shortcut, Dataflow Gen2, Copy job, user data function, Eventstream a podobné datové/orchestrační položky — ne Power BI sémantický model ani report. Pro konfiguraci datových zdrojů sémantických modelů mezi prostředími tak dál používáte deployment rules (sekce 5.4), Variable library je nenahrazuje.
Kdy Variable library dává smysl▼

Typický scénář: cesta k souboru, práh alertu v notebooku nebo název cílového lakehouse se liší mezi DEV, TEST a PROD u datových/orchestračních položek. Bez Variable library se tohle řeší ručně upravovanými parametry v každé položce zvlášť — funguje to, ale roste to nepřehledně s počtem položek. Variable library dává jedno centrální místo, kde je vidět, jaká hodnota platí v kterém prostředí, a propojuje se přímo s deployment pipeline i s Gitem.

ℹ️
Poznámka: Stav GA/preview Variable library jako celku ověřte v dokumentaci — item-reference proměnné jsou tam výslovně označené jako preview.
5.9

Doporučený týmový workflow

  1. Vývojář pracuje lokálně v PBIP formátu, commituje do feature branch.
  2. Otevře Pull Request — code review DAX měr a struktury modelu podle diffu v TMDL souborech.
  3. Po schválení merge do main branch → admin nebo vlastník DEV workspace spustí v Source control panelu Update all (nebo zavolá stejnou akci přes Fabric REST API) — změna se do workspace nepromítne automaticky.
  4. Deployment pipeline: Compare a Deploy z DEV do TEST → proběhne UAT.
  5. Po schválení: Deploy z TEST do PROD, s deployment rules pro produkční zdroj dat.
  6. Po deployi do PROD aktualizujte workspace app (Update app) — teprve pak produkční uživatelé vidí změny, bez výpadku a bez přímého přístupu do PROD workspace.
💡
Tip: Tenhle workflow kombinuje obě kapitoly dohromady — Git řeší otázku „kdo a proč změnil kód", pipeline řeší otázku „jak se změna bezpečně dostane do produkce". Zavádět je má smysl postupně: nejdřív DEV/TEST/PROD workspace a pipeline, teprve pak Git integrace pro code review.