Salta el contingut

Informes amb Power BI

Exercici power-bi-reports-annex.pdf · PDF

Et presentes a la teva primera feina. L'entrevista va bé, i llavors arriba la frase: "Per cert, aquí fem servir Power BI." Portes cinc mesos a Superset. Comences de zero?

No. Saps per a què serveix un quadre de comandament (dashboard), què és un KPI, què fa un filtre i quin gràfic respon quina pregunta. Aquest coneixement és teu, no de Superset. Aquesta lliçó comprova que sobreviu a un canvi d'eina: reconstruiràs tres gràfics del teu quadre de comandament Steam market a Power BI i demostraràs, amb SQL, que mostren els mateixos números.

Què aprendràs

  • Anomenar la paraula de Power BI per a cada paraula de Superset que ja fas servir
  • Moure't per Power BI Desktop: el llenç de l'informe (report canvas), el panell Visualizations i el panell Data
  • Construir una targeta (card), un gràfic de columnes i un gràfic de barres arrossegant camps a pous de camps (field wells)
  • Afegir una segmentació (slicer) i explicar què fa a la resta d'objectes visuals de la pàgina
  • Descriure què fa Publish, i quin tipus de compte i de llicència necessita
  • Desactivar dues trampes: la targeta que diu 27K, i el "dashboard" de Power BI que no és el que penses

Ja vas conèixer la part de dades de Power BI a Obtenir dades amb Power BI i a Power Query; avui toca la part que la gent mira de debò.

El mateix joc, una altra consola

Imagina que el teu joc preferit surt en una altra consola. Les regles són les mateixes. El mapa és el mateix. La teva estratègia continua funcionant. Només els botons tenen altres noms. No necessites un manual nou: necessites la taula de botons.

Power BI és l'eina de Microsoft per convertir dades en informes interactius. Té dues meitats: Power BI Desktop, una aplicació gratuïta per a Windows on construeixes, i el servei Power BI (Power BI service), un lloc web on publiques i comparteixes.

Aquí tens la taula de botons. Tingues-la oberta durant tota la lliçó:

A Superset A Power BI Compte
Dashboard Report (informe, d'una o més pàgines) Un "dashboard" de Power BI és una altra cosa: mira l'última secció
Chart Visual (objecte visual) El tries al panell Visualizations
Big Number Card (targeta) Mostra 27K per defecte en lloc de 26,685
Dataset (columnes, mètriques) Semantic model, llistat al panell Data Les versions antigues anomenen el panell Fields
Caselles de mètriques i dimensions Field wells: Values, X-axis, Y-axis Arrossegues un camp a un pou
Native filter Slicer (segmentació) Una segmentació és un objecte visual: viu al llenç
Draft → Published Publish al servei Power BI Necessita un compte de feina o de centre educatiu

Compte: Power BI Desktop només funciona a Windows

Power BI Desktop es pot descarregar gratis, però necessita Windows 10 o posterior. No hi ha versió per a Linux, i la teva VM del laboratori no és una màquina Windows. Si no tens cap PC amb Windows, encara pots fer la meitat més important d'aquesta lliçó: predir cada número a SQL Lab. La part de construir la segueixes en un ordinador amb Windows.

Un avís més: Microsoft publica una versió nova de Power BI Desktop cada mes, i els botons canvien de lloc. Si un menú de la teva pantalla no es diu exactament com diu aquesta pàgina, busca el nom més proper. Les idees no canvien de lloc.

Una volta per la pantalla

Obre Power BI Desktop i mira quatre llocs. Cap més.

flowchart TB
    RIB["<b>Cinta</b> (ribbon)<br>pestanyes amb eines: Home, Insert, Modeling"]
    subgraph MAIN ["Sota la cinta"]
        direction LR
        CAN["<b>Llenç de l'informe</b><br>la pàgina blanca on<br>van els objectes visuals"]
        VIS["<b>Panell Visualizations</b><br>tria el tipus d'objecte visual,<br>omple els seus pous de camps"]
        DAT["<b>Panell Data</b><br>les teves taules i<br>els seus camps"]
        DAT -- "arrossega un camp" --> VIS
        VIS -- "dibuixa l'objecte visual" --> CAN
    end
    RIB --> MAIN
Lloc On Per a què serveix
Cinta (Ribbon) A dalt de tot Les pestanyes amb les eines: Home, Insert, Modeling
Llenç de l'informe (Report canvas) La gran àrea blanca del mig La pàgina on col·loques i ordenes els teus objectes visuals
Panell Visualizations A la dreta Tria el tipus d'objecte visual i omple els seus pous de camps
Panell Data A la dreta Les taules i els camps de les teves dades, a punt per arrossegar

Ara busca l'editor de SQL. No n'hi ha cap a la vista. Aquesta és la diferència més gran del dia: a Superset sempre podies obrir SQL Lab i escriure tu mateix la consulta. A Power BI arrossegues camps, i la consulta te l'escriu ell.

Sense SQL no vol dir sense consulta

Cada objecte visual continua fent una pregunta a les dades: compta aquestes files, agrupa-les per aquesta columna. Power BI simplement ho escriu darrere el teló. Cosa que vol dir que no la pots llegir per comprovar-la. Així que la comproves al revés: calcules tu mateix la resposta en SQL primer, i després mires si l'objecte visual hi coincideix.

Objectes visuals i pous de camps

Un objecte visual (visual) és un gràfic, una taula o un número al llenç de l'informe. Un pou de camps (field well) és una caixa amb nom al panell Visualizations on deixes anar un camp per dir a l'objecte visual què ha de dibuixar.

Un camp (field) és simplement una columna de les teves dades, com price_band o release_year. Cada tipus d'objecte visual té els seus propis pous, i es corresponen directament amb el que ja fas a Superset:

Objecte visual Pous de camps que omples Què feies a Superset
Card Values Big Number: una mètrica
Clustered column chart X-axis, Y-axis Gràfic de barres amb barres verticals: una dimensió i una mètrica
Clustered bar chart Y-axis, X-axis Gràfic de barres amb barres horitzontals: les mateixes dues, intercanviades
Slicer Field Native filter: la columna per la qual filtrar

Quan deixes un camp en un pou que espera un número, Power BI ha de decidir com resumir-lo (summarise): sumar-lo, comptar-lo, fer-ne la mitjana. Ho endevina. I sovint endevina Sum.

Compte: Sum no és Count

Arrossega number (el número de fila del joc) a una targeta i Power BI suma els números: una xifra de desenes de milions que no vol dir res. Volies saber quants jocs hi ha, no el total de les seves etiquetes. Obre la fletxa petita al costat del camp al pou i tria Count. Pregunta't sempre de què és una suma, un recompte o una mitjana el número que tens al davant.

Pàgines i segmentacions

Un quadre de comandament de Superset és una sola pantalla, de vegades dividida en pestanyes. Un informe (report) de Power BI està fet de pàgines: un o més llenços, com diapositives, cadascun amb els seus objectes visuals. Les pestanyes de les pàgines van al llarg de la part inferior del llenç. Una pàgina per a la visió general, una altra per al detall.

Una segmentació (slicer) és un filtre que viu al llenç com a objecte visual. El lector fa clic en un valor, i la resta d'objectes visuals de la pàgina es queden només amb les files que hi coincideixen.

És la mateixa idea que el filtre natiu (native filter) que vas construir a Filtres i filtres creuats: un sol control, molts gràfics reaccionen, i darrere de cadascun s'ha afegit un WHERE. Dos detalls són diferents:

Native filter de Superset Slicer de Power BI
On viu A la barra de filtres, fora dels gràfics Al llenç, entre els objectes visuals
Què toca per defecte Els gràfics del seu abast Tots els altres objectes visuals de la seva pàgina
Com exclous un gràfic Canvies l'abast (scoping) del filtre Selecciones la segmentació, després Format → Edit interactions, i poses aquell objecte visual a None

Prova-ho: prediu, construeix, compara

El mètode importa més que els clics: primer prediu en SQL, després construeix, després compara. Un objecte visual que no pots comprovar és un objecte visual del qual no et pots refiar.

Power BI llegirà un fitxer, així que necessites games_clean.csv: la teva taula de Steam netejada de la Unitat 2, exportada a un fitxer. Si encara no el tens, fes-te'l tu mateix en dos minuts.

Fes-te games_clean.csv tu mateix

A SQL Lab, posa el desplegable LIMIT a 100 000. El valor per defecte, 1 000, et donaria un fitxer amb només 1,000 jocs. Executa SELECT * FROM games_clean i prem Download to CSV.

La pantalla només mostra les primeres 10,000 files i ho diu en un avís. El fitxer les té totes: comprova que conté 26,685 files de dades. El fitxer original, sense netejar, és a la pàgina de Recursos, però no és el que vols aquí.

Pas 1 — Prediu. A SQL Lab, amb la base de dades Dades classe, executa aquestes tres consultes una per una (SQL Lab només mostra el resultat de l'última sentència) i apunta els resultats:

SELECT COUNT(*) AS games FROM games_clean;
SELECT release_year, COUNT(*) AS games FROM games_clean
GROUP BY release_year ORDER BY games DESC LIMIT 1;
SELECT price_band, COUNT(*) AS games FROM games_clean
GROUP BY price_band ORDER BY games DESC;

Després executa-les una altra vegada amb WHERE owners_tier = 'Hit' abans del GROUP BY. Això és el que farà la segmentació al Pas 4. Un hit és un joc amb almenys un milió de propietaris. Hauries d'acabar amb aquests sis resultats:

Pregunta Tots els jocs Només owners_tier = 'Hit'
Nombre de jocs 26,685 623
Any amb més jocs 2018, amb 8,845 2015, amb 80
Franja de preu amb més jocs Under 5, amb 11,613 Free, amb 182

Pas 2 — Carrega el fitxer i construeix la targeta.

Fes això Hauries de veure
Home → Get data → Text/CSV, tria games_clean.csv, comprova la vista prèvia, Load La taula i els seus camps apareixen al panell Data
Al panell Visualizations tria Card. Arrossega number del panell Data al pou Values Una targeta amb un número enorme: és una suma
Obre la fletxa petita al costat del camp al pou i tria Count La targeta diu 27K
Format visual → Visual → Callout values → Values → Display units: None La targeta diu 26,685, xifra per xifra com la teva primera consulta

Pas 3 — Dos gràfics. Fes clic primer en una part buida del llenç, o l'objecte visual nou substituirà la targeta en lloc d'afegir-se al costat.

Fes això Hauries de veure
Clustered column chart: release_year a X-axis, number a Y-axis, posat a Count Jocs publicats per any. La columna més alta és 2018
Clustered bar chart: price_band a Y-axis, number a X-axis, posat a Count Jocs per franja de preu. La barra més llarga és Under 5
Per a cada objecte visual: Format visual → General → Title, i escriu què mostra Dos títols que un desconegut podria entendre

Pas 4 — La segmentació.

Fes això Hauries de veure
Fes clic en una part buida del llenç. Tria Slicer i arrossega owners_tier al seu pou Field Una llista amb Hit, Mid i Niche al llenç
Fes clic a Hit Els tres objectes visuals canvien: la targeta diu 623, la columna més alta és 2015, la barra més llarga és Free

Compara amb les teves prediccions de "només hits". Si els sis números coincideixen, no només has construït un informe: n'has verificat un.

Compte: 27K no és cap error

El teu SQL diu 26,685 i la targeta diu 27K. Qui té raó? Tots dos. La targeta arrodoneix a milers per mostrar-lo; el valor que hi ha darrere continua sent 26,685. Posar Display units a None mostra totes les xifres. Ja ho vas veure a Superset, on un Big Number deia 26.7k fins que vas canviar-ne el format de número. Un número arrodonit va bé en un cartell i malament en una factura: decideix quin necessita el teu lector.

Si alguna cosa va malament
Què veus Què ha passat Solució
La targeta mostra un número de milions El camp està en Sum Obre la fletxa al costat del camp al pou i tria Count
L'eix dels anys mostra 2,004 amb una coma, o hi ha una única barra release_year s'està sumant com si fos una quantitat Posa'l a X-axis i tria Don't summarize per a ell
Una columna sense any a l'esquerra del gràfic Un joc de la taula no té data de publicació Res: és real. Bon ull
La targeta ha desaparegut en afegir el gràfic La targeta encara estava seleccionada, així que l'objecte visual nou l'ha substituïda Desfés, fes clic en una part buida del llenç, i després tria l'objecte visual nou

Publicar al servei

A Superset, el teu quadre de comandament vivia al servidor des del primer clic. Aquí, tot el que has construït fins ara viu en un sol fitxer al teu PC: File → Save crea un fitxer .pbix. Ningú més no el pot veure.

Per canviar-ho publiques:

Fes això Què passa
Home → Publish Power BI et demana que iniciïs la sessió
Inicia la sessió amb un compte de feina o de centre educatiu Les adreces personals com Gmail es rebutgen
Tria My workspace, després Select El fitxer viatja al núvol de Microsoft
Obre l'enllaç amb què respon Power BI El teu informe, al navegador

Què va viatjar al núvol: l'informe, les dades, o tots dos? Tots dos. L'informe puja juntament amb el seu model semàntic, i el model porta a dins una còpia de les dades. Això s'anomena importar: les 26,685 files ja no només són al teu fitxer CSV, també són dins de l'informe publicat.

flowchart LR
    subgraph SUP ["<b>Superset</b>"]
        direction LR
        DB1[("PostgreSQL<br>les dades es queden aquí")] -- "consulta a cada visualització" --> D1["Quadre de comandament<br>al servidor"]
    end
    subgraph PBI ["<b>Power BI</b>"]
        direction LR
        F["<b>Fitxer .pbix</b> al teu PC<br>informe + una còpia de les dades"] -- "Publish" --> S["<b>Servei Power BI</b><br>My workspace"]
    end

Compte: publicar no és compartir

T'hi sona? Després de Publish, el teu informe és a My workspace, i només el veus tu. Una llicència gratuïta n'hi ha prou per a això. Compartir-lo amb altres persones és un pas apart, i necessita una llicència de pagament. A Publicació i permisos vas aprendre que Published no volia dir "tothom ho pot veure". La mateixa lliçó, a l'altra consola.

Dues eines, dues respostes a la mateixa pregunta: com arriba el meu gràfic a altra gent? A Superset vas donar a un rol accés a un dataset. A Power BI publiques en un espai de treball i després comparteixes. La pregunta és la mateixa a totes les consoles.

La paraula que canvia de significat

Un botó del gràfic té el mateix nom a les dues consoles i fa una cosa diferent.

El que vas construir a Superset — una pantalla de gràfics que pots filtrar — correspon a un informe (report) de Power BI. A Power BI, un dashboard és una altra cosa: una sola pàgina de mosaics (tiles) que fixes (pin) des d'informes, per tenir els aspectes destacats en un sol lloc.

Report de Power BI Dashboard de Power BI
Pàgines Una o més Exactament una
Fet de Objectes visuals Mosaics fixats des d'informes
Es pot filtrar o segmentar? Sí No
On existeix Power BI Desktop i el servei Només al servei

Així que si un company et diu "envia'm el dashboard de Power BI", fes una pregunta més. Pot ser que es refereixi a l'informe.

Idees clau

  • Power BI té dues meitats: Power BI Desktop (gratuït, només Windows) per construir, i el servei Power BI (un lloc web) per publicar i compartir.
  • Les idees són les que ja coneixes; els noms canvien. Dashboard → report, chart → visual, Big Number → card, native filter → slicer, dataset → semantic model.
  • Construeixes arrossegant un camp a un pou de camps. No hi ha editor de SQL: Power BI escriu la consulta, així que vigila Sum davant de Count.
  • Una segmentació (slicer) és un filtre que viu al llenç i filtra els altres objectes visuals de la seva pàgina.
  • Prediu en SQL, construeix, compara. games_clean té 26,685 jocs; una targeta que diu 27K arrodoneix, no menteix.
  • Publish envia l'informe i una còpia de les dades a My workspace, on només tu el veus. Compartir és un pas apart que necessita una llicència de pagament.
  • Un dashboard de Power BI és una sola pàgina de mosaics fixats al servei. El teu quadre de comandament de Superset correspon a un report de Power BI.

Comprovació ràpida

1. Quin és el nom a Power BI del que Superset anomena native filter?
  • Card
  • Slicer
  • Field well
  • Tile

Una segmentació (slicer) filtra els altres objectes visuals de la seva pàgina, com fa un filtre natiu amb els gràfics del seu abast. La diferència és on viu: una segmentació és en si mateixa un objecte visual, col·locat al llenç. Una targeta (card) és el Big Number.

2. Arrossegues number a una targeta i mostra una xifra de desenes de milions. Què ha passat?
  • El fitxer CSV s'ha carregat diverses vegades
  • Power BI està arrodonint el nombre de jocs
  • El camp s'està sumant en lloc de comptar-se
  • La segmentació està posada a Hit

Power BI ha endevinat Sum i ha sumat els números de fila de tots els jocs: un total que no vol dir res. Obre la fletxa al costat del camp al pou de camps i tria Count per obtenir quants jocs hi ha.

3. La teva consulta SQL retorna 26,685 jocs i la targeta de Power BI diu 27K. Qui té raó?
  • SQL: Power BI ha perdut files en carregar el fitxer
  • Power BI: compta dues vegades la fila sense data de publicació
  • Tots dos: la targeta arrodoneix a milers per mostrar-lo, i Display units: None mostra 26,685
  • Cap dels dos: les dues eines no es poden comparar

El valor que hi ha darrere de la targeta és 26,685; només la visualització està arrodonida. Canviar Display units a None mostra totes les xifres. Per això prediu primer en SQL: sabies quin número esperar.

4. Prems Publish i tries My workspace. Tria les dues afirmacions que són certes.
  • L'informe i una còpia de les dades viatgen al servei Power BI
  • Tota la teva classe ja pot obrir l'informe
  • Només tu el pots veure allà, fins que el comparteixis amb una llicència de pagament
  • Les dades es queden només al teu PC i l'informe les consulta en directe

Publicar puja l'informe amb el seu model semàntic, que conté una còpia importada de les dades. I My workspace és només teu: publicar no és compartir. Compartir necessita una llicència de pagament.

5. Quina frase descriu un dashboard de Power BI?
  • Un informe amb diverses pàgines que pots segmentar
  • L'àrea blanca de Power BI Desktop on col·loques objectes visuals
  • Una sola pàgina de mosaics fixats des d'informes, que només existeix al servei
  • El fitxer amb l'extensió .pbix

La mateixa paraula, un altre botó. Un dashboard de Power BI és una pàgina de mosaics fixats, viu només al servei i no es pot segmentar. El que vas construir a Superset correspon a un report de Power BI. L'àrea blanca és el llenç de l'informe.

6. Per què hauries de calcular els números en SQL abans de construir els objectes visuals a Power BI?
  • Perquè Power BI no sap comptar files per si sol
  • Perquè Power BI necessita una consulta SQL per carregar un fitxer CSV
  • Perquè Power BI t'escriu la consulta, així que el teu propi resultat és l'única manera de comprovar-la
  • Perquè els resultats de SQL sempre estan arrodonits i els de Power BI són exactes

A Power BI no hi ha cap editor de SQL a la vista: arrossegues camps i la consulta es genera. No la pots llegir, així que prediu, construeix i compara. Si els dos números no coincideixen, alguna cosa va malament, normalment Sum en lloc de Count.

7. La pàgina del teu informe té una segmentació posada a Hit, i la targeta ara diu 623. El teu lector vol que la targeta continuï mostrant tots els 26,685 jocs mentre els dos gràfics segueixen la segmentació. Què fas?
  • Esborrar la segmentació i escriure un WHERE a l'editor de SQL
  • Publicar l'informe: les segmentacions no actuen sobre les targetes al servei
  • Seleccionar la segmentació, obrir Format → Edit interactions i posar la targeta a None
  • Moure la targeta al panell Data

Per defecte, una segmentació filtra tots els altres objectes visuals de la seva pàgina. Edit interactions és la manera de treure'n un del seu abast, la mateixa idea que canviar l'abast (scoping) d'un filtre de Superset. No hi ha cap editor de SQL on escriure un WHERE.

Ara parles dues consoles. Així que quina n'has de fer servir, i, més important, què dius realment amb els gràfics un cop construïts? Tot seguit: Superset davant de Power BI, i storytelling amb dades.