Você está na página 1de 187

Evoluímos a forma de entender os negócios

Bem-vindo ao maior ecossistema


de Power BI do Brasil

Profissionais Analistas certificados Empresas


capacitados Microsoft impactadas
De capacitação
à evolução de
negócios

Desenvolvimento
Formação de
técnico e prático de
consultores de
profissionais de
altíssimo nível
mercado

Execução de projetos
Capacitação de novos para desenvolvimento
profissionais de áreas de negócios
com o Power BI
Agora é a vez de vocês:

- Nome
- Área de atuação
- Como cria relatórios hoje

6
Objetivos do Curso

• Contextualizar sobre o cenário atual de BI e Análise de Dados


• Aplicar processos de limpeza e transformação de dados no Power Query
• Entender o que é um modelo de dados e para que ele serve
• Entender a Linguagem DAX e conhecer suas principais funções
• Aprender sobre Storytelling e Design de Dashboards
• Publicar o relatório no serviço do Power BI
• Compartilhar o relatório com outros usuários

7
Data Analytics Como fazer com que aconteça?
ANÁLISE PRESCRITIVA

O que acontecerá?
ANÁLISE PREDITIVA

Por que aconteceu?


ANÁLISE DIAGNÓSTICA

O que aconteceu?
ANÁLISE DESCRITIVA
Tudo Começa com BI!

9
O que é BI?

Objetivo Transformar dados brutos em informações compreensíveis e significativas que orientam


Principal a tomada de decisão

Transformação e Monitoramento e
Coleta Organização Análise Compartilhamento

Das informações que são a base da gestão de negócios, tais como informações
de vendas, estoque, produção, financeiro, informações de clientes, etc.

10
Aplicações de BI

Acompanhamento das vendas e


do funil de vendas

Avaliação de Churn, Avaliação da saúde financeira da


Upsell e Cross-sell empresa

BI
Acompanhamento da efetividade Acompanhamento das metas e
de campanhas de Marketing indicadores de sucesso individuais
e das áreas

Controle de estoque, produção e


entrega de produtos

11
Processo de BI

12
Processo de BI

Clientes

Estoque

Produção

Vendas
ETL DW BI Relatório

Externos

13
O que é o Power BI?

14
Microsoft Self-Service BI Suplementos do Excel

Power Query
Permite a obtenção e
manipulação de
informações a partir de
diferentes fontes de dados

Camada de ETL

Powerpivot
Permite a criação de modelos
de dados diretamente no Excel
para a transformação dos Power View
dados em informações
significativas. Fica sobre um Permite a criação de
banco de dados em memória relatórios e dashboards
extremamente rápido! que garantem uma
experiência interativa
Camada Semântica de ao usuário
Modelagem de Dados
Camada de Relatórios

15
Microsoft Power BI Suplementos do Excel em um único aplicativo

Powerpivot

Esses são os 3 componentes necessários


Power Query Power View para que uma plataforma de BI seja
eficiente:
- Carregamento e tratamento de dados
- Camada semântica para modelagem
de dados
- Visualização e criação de relatórios
16
Editor de Consultas
(Power Query)

18
Editor de Consultas

• Originalmente chamado de Power Query, é a camada de ETL no Power BI


– Query: qualquer comando de consulta, inclusão ou alteração de tabelas de uma fonte de dados
– ETL: Extract, Transform and Load (Extrair, Transformar e Carregar)

• Foi desenvolvido com foco no Analista de Negócios, que pode realizar inúmeras ações
apenas com o clique do mouse

• Utiliza a linguagem M por trás, que por sua vez foi desenvolvida com foco no Analista de
Dados, usuários que se sentem mais confortáveis com uso de fórmulas
– Algumas ações mais avançadas são possíveis somente através do uso da linguagem M, porém a grande
maioria é possível de ser realizada com o clique do mouse.
– Não é necessário aprender esta linguagem a fundo, mas entender um pouco do contexto e das estruturas
dos códigos gerados lhe ajudará a ganhar mais produtividade nas criações.

19
Principais Funcionalidades

• Conexão com uma ampla variedade de fonte de dados

• Tratamento e limpeza de dados

• Agregações entre tabelas, como Mesclar Consultas e Adicionar Consultas

• Pivotamento de colunas, ou seja, transformação de colunas em linhas

• Preenchimento automático de dados

• Criação de novas colunas

• Criação de Parâmetros, etc...

20
Linguagem M

• Cada passo executado na Interface é armazenado como um comando M no Editor


Avançado

21
Linguagem M

22
Linguagem M

Uma coluna na tabela é uma lista.

23
Linguagem M

Uma linha na tabela é um registro.

24
Linguagem M

Uma tabela é uma lista de registros.

25
Junção de Tabelas

26
27
28
29
30
31
32
33
Visualizando Online

https://app.powerbi.com/view?r=eyJrIjoiYmNhN
zgzYjAtNjc2OS00YjQwLTgwNzItM2Q1MzcyMmJl
YjMyIiwidCI6IjZjMGE1YjljLTA4OWEtNDk0ZS1iM
DVlLTcxNjEwOTgyOTA0NyIsImMiOjF9

34
Parâmetros

41
Parâmetros

• Parâmetros são utilizados no Editor de Consultas com o objetivo de facilitar a manutenção


das consultas

• São um tipo especial de query que retornam um único valor, e podem ser utilizados em
múltiplas outras queries

• Podem ser de qualquer tipo, incluindo texto, números e datas, porém não podem ser
tabelas nem listas

• Exemplos de uso:
– Caminho do diretório ou caminho para a fonte de dados, que pode mudar ao longo do tempo e precisa ser
reconfigurada em cada uma das consultas
– Filtro de quaisquer informações em uma tabela, que pode mudar para diferentes cenários de uso

42
Exemplo de Parâmetro

43
Combinando Arquivos de uma Pasta

44
Combinando Arquivos de uma Pasta

• Muitas vezes temos uma pasta onde colocamos arquivos periodicamente que possuem
todos mesmos formatos
• O Power BI permite a combinação automática desses arquivos escolhendo “Pasta” como
origem de dados

45
Introdução à Modelagem de Dados

46
Modelo de Dados

Conjunto de tabelas conectadas por


relações entre colunas, que tem o objetivo
de responder a questões de negócio

47
Modelo de Dados

• Uma tabela única em Excel já pode ser considerado um modelo de dados, embora um
modelo bastante simples.
– Possui limite de 1M de linhas
– Quando a decisão for deixar todos os níveis de detalhes e isso gerar uma tabela com mais de 1M de linhas, o
Excel não é mais uma opção
– Partimos então para montar nosso modelo com o Powerpivot, Power BI ou Analysis Services

• Granularidade: nível de detalhe de uma tabela. Quanto maior a granularidade, mais


detalhada é a informação na tabela, ou seja, maior a possibilidade de análises granulares.
– Conceito aplicado a uma tabela individual, e não ao modelo com um todo

• Saber qual o nível de detalhes ideal de uma tabela é um desafio constante, e nem sempre
a maior granularidade possível é melhor.
– Você deve ter os dados na granularidade correta, aquela que satisfaz suas necessidades

48
Modelo de Dados

• Do ponto de vista de Vendas, a tabela que carregamos está com a granularidade correta.

• Porém do ponto de vista de Clientes e Produtos, por exemplo, ela está na granularidade incorreta.

• Dizemos que esta tabela está 100% desnormalizada, com informações espalhadas demais nela,
que se repetem em diversas linhas.

• Isso dificulta a criação de medidas e a análise em torno das propriedades de um Cliente ou


Produto

• Essa situação fica pior ainda quando temos mais de uma tabela Fato no modelo, visto que com
ambas 100% desnormalizadas não conseguimos relacioná-las para realizar comparações de
dados.

• Para corrigir isso, precisamos criar tabelas auxiliares nas granularidades corretas.
– Chamamos essas tabelas de tabelas Dimensão, e devemos relacioná-las às tabelas Fato

49
Modelo de Dados

Quando você tem um único tabelão, você acaba


na verdade criando um relatório semelhante
ao que já faz no Excel.

O poder do Power BI está na possibilidade


de criar modelos de dados a partir de
relações entre diferentes tabelas!

50
Relacionamento Entre Tabelas

51
Relacionamento Entre Tabelas
Dimensão A Tabelas Dimensão:

• Pontos de vista dos quais os fatos


podem ser analisados
• Fatores de agrupamento ou
perspectivas
• Tendem a ser menores que as fatos
• Cada registro é identificado de forma
única através de um ID
• Ex: local, data, cliente, produto, etc
Fato
Dimensão B Dimensão E
• Medidas sobre o negócio
• Valores que posso agregar
• Dados quantificáveis
• Pode conter milhões de
linhas
• Ex: quantidade de vendas,
valor das vendas, lucro

Esquema
Dimensão C Dimensão D Estrela

52
Relacionamento Entre Tabelas

• Uma dimensão deve representar uma entidade que possui determinadas propriedades.
– Cliente: Nome, Idade, Escolaridade, etc
– Produto: Nome do Produto, Categoria, Subcategoria, Cor, Tamanho, etc

• Essas dimensões interagem entre si e geram um evento, que é armazenado em tabelas Fato:
– Um produto é vendido em uma determinada DATA, para um determinado CLIENTE, que mora em uma CIDADE,
e por aí vai.

• Quando criamos um modelo de dados tentamos sempre deixá-lo no Esquema Estrela (Star
Schema), visto que ele é comprovadamente o esquema mais eficiente para análise de dados.

• Isso significa ter uma ou mais tabelas fatos no meio com dimensões ligadas à ela
– As dimensões não devem estar relacionadas entre si!

53
Relacionamento Entre Tabelas

• O Modelo Tabular trabalha muito bem


com relacionamentos 1:N e filtros
unidirecionais, ou seja, quando o filtro
percorre o sentido do lado 1 para
o lado N (Dimensões para as Fatos)

• Para trabalhar com relacionamentos


N:N ou então com filtros bidirecionais
(ambos os sentidos), é preciso ter
bastante cautela!
– Isso será visto mais para frente

• Então tente sempre deixar seus


relacionamentos 1:N com filtros
unidirecionais

54
Tabela de Data

55
Tabela de Data

• É possível criar facilmente uma tabela de datas a partir de uma lista

• De dentro do Editor de Consultas, deve-se seguir os seguintes passos:


– Nova Fonte
– Consulta Nula
– Digitar na barra de fórmulas: “= List.Dates”
– Escolher a data de início, a quantidade de dias desejados, e o incremento (geralmente será igual à 1)
– Clicar em “Invocar”

• Com a lista criada, basta agora transforma-la em uma tabela clicando em “Para a Tabela”

• Com a tabela de datas criada é possível agora criar novas colunas a partir da coluna de
data

56
Linguagem DAX

57
Linguagem DAX

Linguagem do Power Pivot, SSAS e Power BI


Peça fundamental de um modelo de dados

• Permite cálculos extremamente avançados e complexos em poucas linhas de código


• Lembra muito o Excel, justamente por ter nascido com o Powerpivot
– Trabalha com colunas inteiras, portanto não há o conceito de linha nem de célula
• Simples, porém não é trivial
– Relativamente fácil de aprender, porém difícil de “masterizar”
• Conceito de contexto de avaliação é algo que se aprende aos poucos, de forma
iterativa
• Muitas vezes conseguimos fazer a fórmula funcionar, porém sem entender o porquê
• É imprescindível aprender a teoria para entender DAX

58
Curva de Aprendizado DAX

59
Funções DAX

Funções lógicas
01 Agem sobre uma expressão para retornar informações sobre os
valores da expressão.
DAX
DATA ANALYSIS EXPRESSIONS Funções de data e hora
02 Semelhantes às funções de data e hora do Microsoft Excel. No
entanto, as funções DAX se baseiam nos tipos de dados datetime
Coleção de funções, operadores e usados pelo Microsoft SQL Server.
constantes que podem ser usados em
uma fórmula ou expressão, para calcular e Funções de filtro
retornar um ou mais valores. 03 Permitem manipular o contexto de dados para criar cálculos
dinâmicos
Funções semelhantes às do Excel.
Funções de inteligência de tempo
04 Usando intervalos de hora e data em combinação com agregações
ou cálculos, é possível criar comparações significativas em
períodos de tempo comparáveis.

60
Funções de Data e Hora

Função DATE = DATE( 2016 ; 1 ; 25)


01 Retorna a data especificada no Retorna o dia 25/01/2016
formato datetime.

Função TODAY = TODAY( )


02 Retorna a data atual.
Retorna a data atual

Função YEAR = YEAR( Data[Data] )


03 Retorna o ano de uma data como Retorna o ano referente à data
um inteiro de quatro dígitos no da coluna enviada
intervalo 1900 a 9999.

61
Funções de Filtro

Função CALCULATE
01 Avalia uma expressão em um
= CALCULATE(
contexto que é modificado pelos Calcula o total em Vendas
filtros especificados. SUM ( Vendas[Valor Venda] ) ; ignorando qualquer filtro
ALL ( Produto ) na tabela Produto
)

Função ALL
02 Retorna todas as linhas de uma
tabela ou todos os valores de uma
coluna, ignorando qualquer filtro
que possa ter sido aplicado. = CALCULATE ( Calcula o total em Vendas
SUM ( Vendas[Valor Venda] ) ; da categoria de produtos
FILTER ( Audio
Função FILTER Produto ;
03 Retorna uma tabela que Produto[Categoria] = “Audio“
representa um subconjunto de )
outra tabela ou expressão.
)

62
Funções de Inteligência de Tempo

Função DATEADD = CALCULATE (


01 Retorna uma tabela que contém uma SUM ( Vendas[Valor Venda] ) ; Calcula o total em Vendas
coluna de datas, adiantadas ou DATEADD ( Data[Data] ; -1 ; MONTH do mês anterior
atrasadas no tempo conforme o )
número especificado de intervalos.
)

Função = CALCULATE (
Calcula o total em Vendas
02 SAMEPERIODLASTYEAR SUM ( Vendas[Valor Venda] ) ;
do ano anterior
Retorna uma tabela que contém uma SAMEPERIODLASTYEAR ( Data[Data] )
coluna de datas do ano anterior em )
relação ao contexto atual.

Função DATESYTD = CALCULATE(


Calcula o total em Vendas
03 Retorna uma tabela que contém
uma coluna de datas desde o
SUM ( Vendas[Valor Venda] ) ;
acumulado no ano
DATESYTD ( Data[Data] )
início do ano, no contexto atual.
)

63
M vs DAX

M (Power Query) DAX (Power Pivot)


• Linguagem do Power Query, voltada • Linguagem voltada para análise de
para manipulação, limpeza e dados
preparação de dados

X
• Voltado para modelagem de negócio
• Voltado para ETL
• Pode referenciar colunas de
• Sempre que possível é preferível quaisquer tabelas através de
criar colunas e tabelas pelo Power relacionamentos e Lookups
Query devido à melhor compressão

• Pode referenciar apenas colunas da


mesma tabela

Em geral, utilize M para manipulação de dados e


criação de colunas e tabelas simples, e DAX para
64 análise de dados com eles já carregados
M vs DAX

M (Power Query) DAX (Power Pivot)

para manipulação, limpeza e


preparação de dados
M + DAX
• Linguagem do Power Query, voltada • Linguagem voltada para análise de
dados

X
• Voltado para modelagem de negócio
• Voltado para ETL
• Sempre que possível é preferível
• Sempre que possível é preferível
criar colunas e tabelas pelo Power e não criar medidas ao invés de colunas e
tabelas calculadas com DAX
Query
• Pode referenciar colunas de
• Pode referenciar apenas colunas da quaisquer tabelas através de

M vs DAX
mesma tabela relacionamentos e Lookups

Em geral, utilize M para manipulação de dados e


criação de colunas e tabelas simples, e DAX para
65 análise de dados com eles já carregados
Coluna Calculada x Medida

66
Coluna Calculada x Medida

Coluna Calculada Medida

• Contexto de linha • Contexto de filtro

X
• Valor calculado para cada linha da • Calculada somente para as linhas
tabela visíveis nos visuais do relatório

• Utilizado quando se deseja expor os • Mais eficientes computacionalmente


valores em um eixo do gráfico ou
quando se deseja fazer classificar os • Utilizada sempre que tivermos
dados com base nos valores valores para expor em um gráfico
calculados
• Consomem CPU apenas
• Consomem memória e são
recalculadas a cada atualização

67
Vamos criar uma Coluna Calculada e
uma Medida no Power BI

68
Por que criar Medidas com DAX se podemos
utilizar as Colunas e deixar o Power BI fazer a
Soma, Média, Contagem, etc?

69
Coluna Calculada x Medida

Produto Venda Lucro Margem


A 100 10 0,10
Agregando por Produto

A 80 20 0,25
SUM SUM SUM
A 120 36 0,30 Produto
Venda Lucro Margem
B 50 5 0,10 A 300 66 0,65
B 100 20 0,20 B 230 35 0,425
B 80 10 0,125

[Margem Correta] =
SUM ( Tabela[Lucro] ) / SUM ( Tabela[Venda] )

Tabela[Margem] =
Tabela[Lucro] / Tabela[Venda]
70
Tecnicamente seria possível ignorar completamente
DAX se o máximo que precisássemos fossem
Somas, Médias, Contagens, etc.

A partir do momento que precisamos calcular


porcentagens ou medidas mais complicadas,
não há outra saída a não ser utilizar as funções DAX

71
Além disso, medidas Explícitas são mais indicadas para
serem utilizadas no Valor dos gráficos no lugar de
colunas, que geram medidas implícitas

72
Convenção de Nomenclatura

• Para acessar uma coluna de uma tabela sempre fazemos da forma Tabela[Coluna], o que
indica explicitamente que estamos acessando a Coluna da Tabela em questão

• Já medidas não pertencem a nenhuma tabela, elas pertencem ao modelo


– Portanto evitamos de utilizar uma medida na forma Tabela[Medida]
– Chamamos apenas [Medida]
– Mais fácil para manutenção caso a gente queira armazenar a medida em outra tabela do modelo
– Mais fácil para identificar que é realmente uma medida

• Portanto:
– Colunas calculadas: Tabela[Coluna]
– Medidas: [Medida]

73
Contextos de Avaliação

Principal conceito para entendimento completo das funções DAX

Simples a primeira vista, mas que gera muita confusão em alguns casos

74
O que é um contexto de avaliação?

• O que essa fórmula irá computar?

75
O que é um contexto de avaliação?

• O que essa fórmula irá computar?

O valor de uma fórmula DAX


depende do seu contexto

76
Fontes de um contexto

77
Fontes de um contexto

Leitura desta medida:

“A soma do valor total em vendas


para o contexto visível”

78
Perguntas:

Como é obtido o valor na linha/coluna Total da tabela?

Qual o contexto de filtro neste campo?

O que aconteceria se, ao invés de soma, a medida


calculasse a contagem distinta?

79
Tipos de Contexto

Contexto de Filtro define quais linhas estão visíveis na tabela, podendo ser obtido por:
• Linhas
• Colunas
• Filtros do canvas
• Filtros laterais

Contexto de Linha possui o conceito de “linha atual” para cada iteração, sendo definido por:
• Colunas calculadas
• Iteradores

Sempre devemos iniciar levando em consideração os contextos de filtro presentes, ou seja,


quais linhas da tabela estão visíveis para o cálculo de uma medida!

80
Funções Agregadoras

81
Funções Agregadoras

• Como o próprio nome diz, são úteis para agregar valores


– SUM
– AVERAGE
– MIN
– MAX

• Funcionam apenas com colunas numéricas

• Agregam apenas uma coluna por vez:


– Certo: Total Vendas = SUM ( Vendas[Valor Venda] )
– Errado: Total Custo = SUM ( Vendas[Quantidade] * Venda[Custo Unitário] )
• Solução 1: criar uma coluna calculada com a multiplicação das duas colunas
• Solução 2: utilizar os agregadores X, como a SUMX

82
Iteradores

83
Iteradores

• Funções Agregadoras que adicionam contexto de linha ao contexto de filtro visível:


– SUMX
– AVERAGEX
– MINX
– MAXX
– etc

• Iteram linha a linha sobre uma determinada tabela e avaliam a expressão em cada linha,
agregando ao final o valor resultante das iterações

• Sintaxe: • Exemplo:
SUMX ( Total Custo =
< tabela >;
SUMX (
< expressão >
Vendas;
)
Vendas[Quantidade] * Vendas[Custo Unitário]
)
84
Buscando Valores em Outras Tabelas

85
Função RELATED

• Permite percorrer o relacionamento do lado N para o lado 1 (Fatos para Dimensões) a fim
de obter o valor de uma coluna da tabela Dimensão
• Utilizada em situações onde há um contexto de linha, como em uma coluna calculada ou
em funções iteradoras, como a SUMX
• Recebe uma coluna e retorna um único valor

Coluna Calculada:

Vendas[Valor Custo] = Vendas[Quantidade] * RELATED( Produto[Custo Unitário] )

Medida:

[Total Custo] = SUMX ( Vendas; Vendas[Quantidade] * RELATED( Produto[Custo Unitário] ) )

86
Calculando Médias

87
Calculando Médias

• Há duas funções muito importantes em DAX para o cálculo de médias, que são:
– AVERAGE
– AVERAGEX

• A diferença entre elas é que a primeira função possui apenas um contexto de filtro, e a segunda é uma
função iteradora e, por sua vez, adiciona um contexto de linha ao contexto de filtro

• Em ambos os casos podemos obter valores iguais fazendo a divisão entre o total e a quantidade de
observações desejadas, ou seja, calculando a média de forma manual. Exemplo:
– Média Vendas Diária v1 = AVERAGEX( Data; [Total Vendas] )
– Média Vendas Diária v2 = [Total Vendas] / DISTINCTCOUNT( Vendas[Data Venda] )

• Note que na v1 podemos utilizar diretamente a tabela Data, enquanto na v2 precisamos utilizar a coluna
Data Venda da tabela de Vendas para que sejam considerados apenas as datas que tiveram venda

• Assim, a versão 1 torna-se mais fácil quando não temos o campo desejado na tabela de vendas. Exemplo:
– Média Vendas Mensal = AVERAGEX( VALUES( Data[Mês/Ano] ); [Total Vendas] )

88
Vamos ver a diferença entre
AVERAGE e AVERAGEX

89
Funções de Tabela

90
Funções de Tabela

Geralmente são aplicadas como filtros e/ou como tabelas virtuais no meio de fórmulas.

Dificilmente são utilizadas para se gerar novas tabelas físicas em modelos bem estruturados, a
não ser para testes e para estudo de como funcionam.

• FILTER
• ALL, ALLSELECTED, ALLEXCEPT
• VALUES
• DISTINCT
• CROSSJOIN
• GENERATE
• SUMMARIZE
• ADDCOLUMNS
• SUMMARIZECOLUMNS

91
FILTER

• Iterador que vai linha a linha da tabela passada no primeiro argumento checando a condição do segundo
argumento. Ao final retorna uma tabela contendo apenas as linhas que satisfazem a condição:

FILTER(
< tabela >;
< filtro >
)

• Exemplo:

Vendas com Qde > 10 =


FILTER (
Vendas;
Vendas[Quantidade] > 10
)

92
ALL

• Retorna uma tabela com todos os valores da(s) tabela(s) ou coluna(s) informada(s),
ignorando quaisquer filtros prévios existentes:

ALL (
< tabela > ou < coluna >
)

• Exemplo:

Todas as Vendas =
ALL ( Vendas[No. Venda] )

93
VALUES

• Retorna uma tabela com todos os valores da(s) tabela(s) ou coluna(s) informada(s),
respeitando quaisquer filtros prévios existentes:

VALUES (
< tabela > ou < coluna >
)

• Exemplo:

Todas as Vendas =
VALUES ( Vendas[No. Venda] )

94
ALL x VALUES

• A diferença entre ALL e VALUES só é percebida quando aplicamos a função a uma medida e
aplicamos diferentes filtros, como por exemplo:

Qde Vendas ALL =


COUNTROWS ( ALL ( Vendas[No. Venda] ) )

Qde Vendas VALUES =


COUNTROWS ( VALUES ( Vendas[No. Venda] ) )

95
Função CALCULATE

96
Relembrando Contextos de Avaliação

Total Vendas = SUM( Vendas[Valor Venda] )

97
Função CALCULATE

• Principal função DAX


• Única função capaz de modificar o contexto de avaliação
• Sintaxe:

CALCULATE (
< expressão >;
< filtro 1 >;
< filtro 2 >;
....;
< filtro n >
)

• Primeiro é feita a avaliação dos filtros internos e depois a avaliação da expressão para os filtros
aplicados

98
Função CALCULATE
• Os filtros do segundo argumento em diante são tabelas, porém podemos utilizar expressões boolenas como facilitador. Exemplo:

Total Vendas com Qde > 10 =


CALCULATE (
[Total Vendas];
Vendas[Quantidade] > 10
)

A equação acima é traduzida internamente para: Que internamente é diferente de:

CALCULATE ( CALCULATE (
[Total Vendas] ; [Total Vendas] ;
FILTER ( FILTER (
ALL ( Vendas[Quantidade] ); Vendas;
Vendas[Quantidade] > 10 Vendas[Quantidade] > 10
) )
) )

99
Filtrando com CALCULATE

Total Vendas Audio =


CALCULATE (
[Total Vendas] ;
Vendas[Categoria] = “Audio”
)

100
Filtrando com CALCULATE

• Resumindo:

Total Vendas Audio =


CALCULATE (
[Total Vendas] ;
Vendas[Categoria] = “Audio”
)

• Primeiro deve-se avaliar quais as linhas da tabela Vendas estão visíveis através dos
contextos de filtro presentes
• Após isso aplica-se um novo filtro à tabela através do filtro no segundo argumento, que
restringe a quantidade de linhas por onde a expressão será avaliada

101
Removendo Filtros da CALCULATE com ALL

• Removendo qualquer filtro de tabelas e/ou colunas de quaisquer tabelas:


CALCULATE (
< expressão >;
ALL ( < tabela ou coluna > )
)

• Remover filtros obedecendo os filtros externos que estão selecionados no momento:


CALCULATE (
< expressão >;
ALLSELECTED ( < tabela ou coluna > )
)

• Ambas são muito úteis para calcular porcentagem de contribuição de cada categoria no total

102
Removendo Filtros da CALCULATE com ALL

Total Vendas Fixo =


CALCULATE (
[Total Vendas] ;
ALL ( Vendas )
)

103
Removendo Filtros da CALCULATE com ALL

• Resumindo:

Total Vendas Fixo =


CALCULATE (
[Total Vendas] ;
ALL ( Vendas )
)

• Ao contrário do filtro que restringe a quantidade de linhas, ALL é capaz de aumentar a


quantidade de linhas da tabela
• Reforçando: muito útil para calcular porcentagens

104
Combinando Filtros

• Exemplo:

Total Vendas Fixo Audio =


CALCULATE (
[Total Vendas] ;
ALL(Vendas);
Vendas[Categoria] = “Audio”
)

• A função ALL remove todos os filtros da tabela Vendas, e na sequência aplica-se um filtro
na coluna categoria em cima da tabela completa de Vendas

105
Combinando Filtros

Total Vendas Fixo Audio =


CALCULATE (
[Total Vendas] ;
ALL( Vendas ) ;
Vendas[Categoria] = “Audio”
)

106
Transição de Contexto

115
Transição de Contexto com CALCULATE

• Capaz de modificar o contexto atual


• Quando presente em uma fórmula cujo contexto é de linha, a função CALCULATE muda
para um contexto de filtro equivalente

116
Transição de Contexto com CALCULATE

Como calcular a média diária de Vendas?

• Primeira tentativa:
AVERAGE ( Vendas[Valor Venda] )

• Segunda tentativa: • Forma correta:


AVERAGEX ( AVERAGEX (
Data; Data;
SUM ( Vendas[Valor Venda] ) CALCULATE ( SUM ( Vendas[Valor Venda] ) )
) )

117
Funções de Inteligência de Tempo

147
Funções Inteligência de Tempo

Qualquer função relacionada a agregações ao longo do tempo

• Acumulado ao ano
• Acumulado ao trimestre
• Acumulado ao mês
• Mesmo período no último ano
• Mesmo período no último trimestre
• Mesmo período no último mês

148
Funções Inteligência de Tempo

• Há diversas funções prontas para facilitar as agregações ao longo do tempo


• Sintaxe de acumulado ao ano:
CALCULATE (
< expressão >;
DATESYTD ( < coluna de data > )
)

• Sintaxe de mesmo período último ano (muito útil para calcular porcentagem de crescimento ao longo do tempo):
CALCULATE ( CALCULATE (
< expressão >; < expressão >;
DATEADD (
< coluna de data >; - 1; YEAR
= SAMEPERIODLASTYEAR (
< coluna de data >

) )
)
)

149
Funções Inteligência de Tempo

• É possível utilizar a função FILTER para acumular ao longo do período de tempo desejado:

Total de Vendas Acc após 01-03-2016 = Total de Vendas Acc =


CALCULATE ( CALCULATE (
[Total Vendas]; [Total Vendas];
FILTER ( FILTER (
ALL ( Data ); ALL ( Data );
Data[Data] >= DATE (2017, 03, 01) Data[Data] <= MAX ( Data[Data] )
) )
) )

150
Funções Inteligência de Tempo

• É possível utilizar a função FILTER em conjunto com a ALLSELECTED para considerar


apenas o período de tempo do slicer:

Total de Vendas Acc Seleção =


CALCULATE (
[Total Vendas];
FILTER (
ALLSELECTED ( Data[Data] );
Data[Data] <= MAX ( Data[Data] )
)
)

151
Guia Visual para Total Acumulado

152
Qual o Total Acumulado em 30/12/2010?
Total Vendas ACC =
VAR DataAtual = MAX(Data[Data])
RETURN
CALCULATE(
[Total Vendas];
FILTER(
ALL(Data[Data]);
Data[Data] <= DataAtual
)
)

Contexto de Filtro Original:


Data[Data] = 30/12/2010

VAR DataAtual = 30/12/2010

153
Variáveis

154
Variáveis

• Evitam repetição de código e de cálculo de uma determinada expressão


• Tornam a leitura da medida mais fácil
• Calculadas apenas uma vez e no momento que for utilizada pela primeira vez na fórmula, otimizando
o cálculo
• Poderiam ser chamadas de “Constantes”, pois seu valor é atribuído no início da medida e não muda
mais para esta medida, podendo ser atribuídos valores de quaiquer tipos, inclusive tabelas

[Medida] =
[Medida] = VAR TotalVendas = SUM ( fVendas[Vendas] )
IF ( RETURN
SUM ( fVendas[Vendas] ) < 100; IF (
SUM ( fVendas[Vendas] ) * 1,25; TotalVendas < 100;
SUM ( fVendas[Vendas] ) * 0,90 TotalVendas * 1,25;
) TotalVendas * 0,90
)

155
Relacionamentos Especiais

156
Relação de Muitos para Muitos

• Tradicionalmente utilizavam-se tabelas ponte


(bridge tables) para contornar relacionamentos
de muitos para muitos

• Hoje o Power BI já permite a sua criação de


forma nativa, conforme no exemplo ao lado
com a tabela de Metas e Produto

• Muito útil para relacionar Dimensões com Fatos


que estão em diferentes granularidades

• ATENÇÃO:
– JAMAIS RELACIONAR TABELAS FATO ENTRE SI
– UTILIZAR SEMPRE COM FILTRO UNIDERECIONAL

157
Filtros Bi-Direcionais

• Utilizado comumente para tratar casos de


relacionamentos N:N, por exemplo quando
um Cliente pode ter mais de um Vendedor
• No mais, deve-se ativar o filtro bi-direcional
com cautela, apenas quando estiver seguro
• Geralmente filtros bi-direcionais são mais
lentos que filtros unidirecionais
• Há um potencial muito grande de
filtrar coisas demais quando há múltiplas
tabelas Fato
• Dê preferência para utilizar a função
CROSSFILTER para ativar o filtro apenas
em medidas específicas

158
CROSSFILTER

• Utilizada para mudar o sentido do relacionamento, como um argumento da


função CALCULATE

• Geralmente utilizada para ativar filtro bi-direcional na medida em questão

• Sintaxe:
CROSSFILTER( <Coluna 1>; <Coluna 2>; <Direção> )

• <Direção>:
– ONE: considera o relacionamento do lado 1 para o lado N
– BOTH: considera o relacionamento nos dois sentidos
– NONE: elimina o relacionamento

159
USERELATIONSHIP

• Em muitos casos optamos por deixar um relacionamento inativo e ativá-lo somente em


determinadas situações

• Muito utilizado quando temos relacionamento de duas colunas na Fato para uma única
coluna na Dimensão, como “Data de Vendas” e “Data de Envio”, ou quando duplicamos
uma tabela Dimensão para comparação de dados da mesma Dimensão

• Seu uso é bastante similar ao da função CROSSFILTER


– A função CROSSFILTER é utilizada para mudar o sentido do relacionamento
– A função USERELATIONSHIP é utilizada para ativar um relacionamento que está como inativo
– Utilizada como um argumento da função CALCULATE

• Sintaxe:
USERELATIONSHIP( <Coluna 1>; <Coluna 2> )

160
TREATAS

• Quando não conseguimos criar um relacionamento físico, podemos criar relacionamentos


virtuais com a função TREATAS dentro de medidas

• Com isso conseguimos transferir o contexto de filtro de uma tabela para outra mesmo
sem a presença de um relacionamento entre elas

• Sempre que possível é preferível criar relacionamentos físicos, pois são mais eficientes que
relacionamentos virtuais

• Sintaxe:
TREATAS( < expressão tabela > ; < coluna target > )

161
Tipos de Medidas

162
Tipos de Medidas

• Medidas aditivas: medidas que permitem serem agregadas, como soma, média, contagem,
etc. Vendas, por exemplo, é aditiva em todas as dimensões.

• Medidas não-aditivas: medidas que não permitem serem agregadas, como contagem
distinta. A contagem distinta de um produto vendido em um ano não é a soma das
contagens distintas ao longo dos meses.

• Medidas semi-aditivas: são as mais complexas pois podem ser agregadas em certas
dimensões, mas não em outras. Geralmente é a dimensão tempo que não permite
agregação nessas medidas. O Total Acumulado em um mês, por exemplo, não é a soma do
Total Acumulado dos dias individuais, e sim o Total Acumulado do último dia do mês.

163
RANKX e TOPN

164
RANKX

• Muito útil para ranquear uma determinada categoria de acordo com uma expressão

• Sintaxe:

RANKX (
< tabela>;
< expressão >;
< opcionais >
)

165
RANKX

• Remover o valor do Ranking da linha “Total” com as funções IF e HASONEVALUE

166
TOPN

• Função que retorna uma tabela com as TOP N linhas de uma tabela avaliada em uma
determinada expressão
• Sintaxe:

TOPN (
N,
< tabela >;
< expressão >;
< opcionais >
)

167
ADDCOLUMNS e
SUMMARIZECOLUMNS

168
ADDCOLUMNS

• É um iterador (contexto de linha) que adiciona uma coluna à uma tabela, avaliando uma
expressão para cada linha da tabela passada no primeiro argumento. O resultado é uma
tabela com uma ou mais colunas adicionadas à tabela original.

• Sintaxe:

ADDCOLUMNS (
< tabela >;
< nome da nova coluna 1 >; < expressão 1 >;
< nome da nova coluna 2 >; < expressão 2 >;
....
)
Atenção para o uso da
CALCULATE
169
ADDCOLUMNS

• É possível filtrar o resultado com base na nova coluna criada:

170
SUMMARIZECOLUMNS

• Função que retorna uma tabela resultante do agrupamento de colunas

• Assim como a função ADDCOLUMNS,


possibilita também a criação de novas
colunas, retornando o valor da expressão
para cada combinação entre as colunas utilizadas

• Diferente da ADDCOLUMNS, a SUMMARIZECOLUMNS


gera apenas contexto de filtro, não sendo possível
utilizá-la dentro de medidas

• Deve-se evitar criar novas tabelas no modelo.

• Utilizada apenas quando queremos classificar


ou segmentar o resultado desta tabela, por exemplo,
criando uma nova coluna calculada de KPI com
base no valor sumarizado da nova coluna

171
SUMMARIZECOLUMNS x ADDCOLUMNS

• A SUMMARIZECOLUMNS automaticamente elimina os valores em branco, diferentemente da ADDCOLUMNS,


onde é necessário utilizar a função FILTER para fazer esse tratamento

• Ambas permitem o filtro da coluna recém criada

SUMMARIZECOLUMNS ADDCOLUMNS

172
Trabalhando com Hierarquia Pai-Filho

173
Hierarquia Pai-Filho

• Geralmente modelado através de • Família PATH de funções DAX:


duas colunas: – PATH: constrói a cadeia com toda a hierarquia,
– ID exemplificado pela coluna “Ramo” na imagem ao lado

– ID Pai – PATHLENGTH: retorna a quantidade de parentes para


o Ramo avaliado
– PATHITEM: retorna o ID de um determinado nível

Obtendo o nome do Funcionário do Nível 5:

174
Visualização de Dados

175
Storytelling com Dados

176
Por que Storytelling é Importante?

• Melhora a compreensão dos dados

• Reduz confusão e tempo de leitura

• Identifica padrões escondidos e possibilita novos


insights

• Melhora eficiência em relação à tomada de decisão

• Não frustram os usuários pois mostram apenas o


necessário e destacam os pontos mais importantes

• Melhora a satisfação dos usuários e as chances de


sucesso

177
Ciência por Trás da Visualização de Dados

O cérebro humano 90% das informações


processa informação transmitidas para o
visual 60.000 vezes cérebro são visuais
mais rápido que texto

Visuais aumentam As pessoas leem


a retenção em 42% apenas 28% do
texto de uma página
de um website

178
Recomendações para Visualização de Dados

• Estética é importa mais do que você imagina!


• Primeiro passo: identifique sua audiência
• Escolha uma paleta de cores adequada e use-a como
padrão em todos os visuais
• Escolha um background adequado e mantenha
consistência
• Escolha o tipo de fonte adequado e cuidado com os erro de
escrita
• Escolha os tipos de visuais adequados para cada objetivo
• Enfatize o que é importante e mantenha apenas o que é
necessário
• Mantenha os visuais sempre alinhados e no
tamanho adequado
• Pense fora da caixa!

179
Recomendação de Leitura

180
Antes x Depois

Dê destaque ao
que importa!

181
Antes x Depois

Utilize gráficos de linha


para dados históricos!

182
Antes x Depois

Não utilize gráficos 3D,


muito menos de pizza!

183
Antes x Depois

Não utilize gráficos de pizza para


mais de 3 categorias, muito menos
para comparar diferentes cenários!

184
Antes x Depois

Deixe seu visual limpo e com poucos


detalhes. O foco precisa estar na
informação relevante!

186
Guia de Referência de Visuais

187
Storytelling com Power BI

188
189
190
191
Visualizando Online

https://app.powerbi.com/view?r=eyJrIjoiMDA4Y
WIwZWEtMDE3ZS00YmFhLWE5YWMtODFlZWE
zNTU1ODNiIiwidCI6IjZjMGE1YjljLTA4OWEtNDk0
ZS1iMDVlLTcxNjEwOTgyOTA0NyIsImMiOjF9

192
Storytelling com Power BI

Além de oferecer visuais modernos e interativos, o Power BI contem features muito


interessantes que ajudam na narração de dados:

• Painel de seleção
• Painel de indicadores
• Perguntas e Respostas
• Detalhar (drill-through)
• Explicar aumento/diminuição
• Insights rápidos
• Desenvolvimento de layout
para mobile

193
Visual Customizado para Storytelling

194
Power BI Online:
Publicação e Compartilhamento

195
Planos do Power BI

• Duas categorias de licenciamento:


– Licença de usuário: Free ou Pro
– Capacidade dedicada: Premium EM (embedding), Premium P (Premium) ou Embedded A (Azure)

• Qualquer usuário no Power BI possui OU um plano Free OU um plano Pro.


– Não existe usuário com Plano Premium!

• Principal diferença entre Free e Pro: possibilidades de colaboração e compartilhamento


(considerando capacidade compartilhada, ou seja, sem plano Premium ou Embedded):
– Somente usuários Pro podem publicar o conteúdo em espaços de trabalho do aplicativo, consumir
aplicativos e compartilhar dashboards.
– Usuários gratuitos podem se conectar a todas as fontes de dados por meio de todas as opções de
conectividade.

196
Planos do Power BI (sem Premium)
Versão Versão Online Versão Online
Desktop Plano Free Plano Pro
Construir modelos e utilizar funções DAX

Conectar-se a fontes de dados on-premise

Conectar-se a fontes de dados online

Construir relatórios

Construir dashboards

Publicar na Web

Criar e colaborar em espaços de trabalho

Compartilhar aplicativos e dashboards com outros usuários

Visualizar aplicativos e dashboards compartilhados no portal do Power BI

Visualizar relatórios embedados em aplicações Web internas da


organização

Valor Grátis Grátis $9,90/mês


197
Espaços de Trabalho

Meu Espaço de Trabalho


Destinado para uso pessoal;

Ideal para teste de relatórios antes de publicar em espaços


compartilhados;

Evita-se compartilhar painéis para outros usuários a partir deste


espaço.

Espaço onde ficam seus dados, relatórios e painéis

198
Espaços de Trabalho

Espaços de Trabalho do Aplicativo


São ambientes de desenvolvimento com espaços de trabalho
compartilhados, onde múltiplos usuários podem colaborar com a
criação de relatórios e painéis;

Destinado exclusivamente para colaboração no desenvolvimento,


portanto adicione com cautela apenas usuários que precisarão
criar/editar relatórios;

Qualquer edição por parte de um usuário em um relatório ou painel


será aplicada aos demais membros, visto que é um espaço comum entre
todos;

Ao configurar um App Workspace, sua visualização deve ser setada


como Privada, e todos os usuários (membros e administradores) devem
possuir permissão para editar;

Os administradores do Espaço de Trabalho terão permissão para editar


o nome do Espaço de Trabalho e incluir novos membros.

199
Distribuição de Conteúdo

Atualmente o Power BI permite você distribuir seus conteúdos de 5 diferentes formas

1. Publicando Aplicativos 2. Compartilhamento individual


Melhor forma para compartilhar conteúdo com grandes audiências. Indicado quando se deseja compartilhar poucos relatórios/painéis ou em
Para usuários finais que precisam apenas visualizar os relatórios e painéis cenários informais onde o conteúdo deve ser compartilhado com poucos
(sem edição e customização). usuários.

Edições no Espaço de Trabalho não são refletidas automaticamente no Aplicativos são mais recomendados pois é possível maior controle e
Aplicativo publicado. visibilidade, e também pois ao compartilhar um painel, qualquer mudança
feita é instantaneamente visualizada pelo usuário que recebeu o
Apenas um Aplicativo por Espaço de Trabalho. compartilhamento.

3. Publicando na Web 4. Embedando para sua organização 5. Embedando para seus clientes
Torna o relatório publicamente disponível para Destinado para incorporar conteúdos em Destinado para incorporar conteúdos em
qualquer um que possuir seu link. aplicações web que devem ser acessadas por aplicações web que devem ser acessados por
usuários que fazem parte da organização. usuários externos à organização.
Deve ser utilizado com extrema cautela e apenas
para dados públicos. Deve-se atribuir o Espaço de Trabalho à Geralmente utilizado no cenário de ISV, ou seja,
capacidade Premium para que usuários Free do para seus clientes.
Ideal para exibição de portfolios ou em websites de Power BI possam visualizar seu conteúdo, caso
empresa para exibir exemplos dos trabalhos. contrário apenas usuários Pro terão acesso. Pode ser adquirido diretamente na Azure, ao invés
do Office 365.

200
Distribuição de Aplicativos

201
Aplicativos

Ao criar um Aplicativo, você pode escolher


quais relatórios e painéis publicar;

As mudanças realizadas no Espaço de


Trabalho só são refletidas no Aplicativo após
republicá-lo;

É possível escolher para quais usuários e/ou


grupos você deseja publicar o Aplicativo;

Você pode compartilhar Aplicativos para


usuários fora do seu AAD.

202
Compartilhamento - Aplicativos

203
Aplicativos
Obtendo Aplicativos

204
Aplicativo Mobile

205
Aplicativo Mobile

206
Conectando no Serviço do Power BI

207
Criação de um Modelo de Dados

• Analysis Services para grandes modelos e budget elevado

• Para modelos menores e custos mais baixos a única opção é importar no PBI

• Formas de distribuição para usuários finais:


– Apps;
– Pacotes de Conteúdo;
– Compartilhamento;
– Etc

208
Modelo de Dados Centralizado

E se os usuários finais quiserem criar suas próprias medidas? Como fazer?

• Opção 1:
– Enviar o arquivo PBIX para os usuários
– Ruim pois você acaba criando silos de dados
– Como manter os relatórios dos usuários atualizados?

• Opção 2:
– Conectar-se a um modelo de dados central publicado no serviço do Power BI
– Única versão da verdade
– Qualquer modificação realizada no modelo central é refletido nos relatórios que se conectam nele
– É preciso cuidar com manutenções, como mudança no nome de campos, para não quebrar os relatórios
conectados

209
Power BI Premium

210
O que é o Power BI Premium?

• Plano lançado em Junho/2017 e disponível para aquisição no portal do Office 365

• Fornece recursos dedicados à execução do serviço do Power BI

• Voltado para capacidade de processamento, e não para licença de usuário

• Não se compara um plano Premium com um Plano Pro


– Plano Pro é para licença de usuário
– Plano Premium é voltado para obtenção de uma capacidade dedicada

• Você escolhe quais Espaços de Trabalho incorporar à capacidade dedicada


– Os que não foram atribuídos a uma capacidade Premium continuarão em capacidade compartilhada

211
Atribuindo Plano Premium a um Espaço de Trabalho

212
Principal Vantagem do Power BI Premium

Possibilitar que usuários Free visualizem


o conteúdo do Espaço de Trabalho

213
Planos do Power BI Premium

Planos EM Planos P

Voltados para visualização de relatórios Voltados para visualização de


embedados em aplicações internas da conteúdos no portal online do Power BI

X
organização
Usuários Free, além das vantagens ao
Usuários Free que possuem conta no lado, podem também visualizar
AAD podem visualizar relatórios aplicativos e dashboards
embedados em aplicações SaaS, como compartilhados diretamente no portal
Sharepoint, Microsoft Teams, ou em online do Power BI
sua própria aplicação Web

214
Outras Vantagens do Power BI Premium

• Ganho de performance por estar em hardware dedicado na Microsoft


• Limite de atualização aumenta de 8x/dia para 48/dia, podendo agendar uma
atualização a cada minuto
• Restrição de 1GB por dataset aumenta para até 10GB por dataset
• Limite de 10GB por espaço de trabalho aumenta para até 100TB por espaço de
trabalho

Essas vantagens só fazem sentido


quando utiliza-se o modo Import

Nos modos DirectQuery e Live Connection a


performance é ditada pela fonte de origem

215
Quando Adquirir os Planos P do Power BI Premium?

• De um ponto de vista financeiro, quando seu aplicativo for distribuído para mais de
505 usuários finais que irão apenas visualizar relatórios (não irão editar):
– Acima de 505 usuários é mais vantajoso adquirir o Plano P1 e deixar todos eles com conta Free
– Abaixo de 505 usuários é mais vantajoso deixar todos eles com a conta Pro
– $9,90 x 505 usuários = $4.999,50 por mês

Nó Cores Memória Valor Mensal

P1 8 25GB $4.995

P2 16 50GB $9.995

P3 32 100GB $19.995

216
Quando Adquirir os Planos P do Power BI Premium?

• Já de um ponto de vista funcional, quando o volume de dados e o tamanho da base é


grande, a melhor opção na minha opinião é partir para o Analysis Services:
– Arquivos PBIX maiores que 500MB deixam a máquina lenta;
– Demoram para salvar;
– Demoram para ser publicados;

• Para contornar esses pontos, há a possibilidade de trabalhar com uma amostra


pequena dos dados no Power BI Desktop e, após publicá-lo, atualizar essa amostra
para a base completa no serviço do Power BI através de Parâmetros do Editor de
Consultas
– Funciona, porém não é tão eficiente quanto o uso de partições no Analysis Services

217
Quando Adquirir os Planos EM do Power BI Premium?

• Quando os usuários possuírem conta no seu AAD e você quiser incorporar seu
relatório em aplicações Web para mais de 63 usuários finais
– Acima de 63 usuários é mais vantajoso adquirir o Plano EM1 e deixar todos eles com conta Free
– Abaixo de 63 usuários é mais vantajoso deixar todos eles com a conta Pro
– $9,90 x 63 usuários = $623,70 por mês

Nó Cores Memória Valor Mensal Lembre que esses usuários Free


não poderão visualizar aplicativos
EM1 1 3GB $625 e dashboards compartilhados
pelo portal do Power BI Online.
EM2 2 5GB $1.245
Apenas os planos Premium P
EM3 4 10GB $2.495 tem essa vantagem.

218
Planos do Power BI (com Premium)
Versão Versão Online Versão Online
Desktop Plano Free Plano Pro
Construir modelos e utilizar funções DAX

Conectar-se a fontes de dados on-premise

Conectar-se a fontes de dados online

Construir relatórios

Construir dashboards

Publicar na Web

Criar e colaborar em espaços de trabalho

Compartilhar aplicativos e dashboards com outros usuários

Visualizar aplicativos e dashboards compartilhados no portal do Power BI

Visualizar relatórios embedados em aplicações Web internas da


organização

Valor Grátis Grátis $9,90/mês

Premium EM Premium P
219
Power BI Embedded

220
Power BI Embedded

• Voltado para que desenvolvedores possam incorporar relatórios, dashboards e tiles


em suas aplicações web

• O usuário tem acesso aos conteúdos diretamente pela aplicação, ao invés de utilizar o
portal online do Power BI

• Permite grande flexibilidade e velocidade à equipe de desenvolvimento, que não


precisa se preocupar em desenvolver ferramentas analíticas de visualização

• É preciso apenas uma conta Pro para embedar conteúdos


– Ela é a conta Master, responsável por publicar o conteúdo no Espaço de Trabalho
– Porém os demais desenvolvedores que irão publicar conteúdo também precisam de conta Pro

221
Fluxo Power BI Embedded

1. Usuário acessa sua aplicação pelo navegador


2. A aplicação autentica com o AAD e obtém o token de acesso
3. A aplicação utiliza o token de acesso para chamar as APIs do serviço do Power BI
4. A aplicação recebe os dados para serem incorporados e os transfere para o navegador
5. O front-end utiliza as APIs Javascript do Power BI para criar o recurso embedado
6. A conexão é estabelecida entre o navegador e o serviço do Power BI

5 6
iFrame
Serviço do
Navegador 4
4 Power BI
3
Aplicação
Web
1
2
Azure AD
222
Cenários para Embedar Conteúdo

Para sua organização Para seus clientes


Muito utilizado em portais internos, Sharepoint Muito utilizado em cenários para venda a
e Microsoft Teams. clientes para que eles visualizam seus dados
diretamente no software e com todo o
Necessita que todos os usuários estejam no potencial que o Power BI oferece.

X
AAD e tenham conta do Power BI.
Não necessita que usuários estejam listados
Conta do usuário é utilizada na autenticação. no AAD e eles não precisam de conta no
Power BI. A aplicação controla os acessos.
Permite que os usuários acessem também o
portal do Power BI, visto que eles tem conta Conta do usuário Master é utilizada na
no Power BI. autenticação.

Plano necessário: Premium EM ou Premium P Plano necessário em ambiente de produção:


(apenas para que usuários Free tenham Embedded A, Premium EM ou Premium P
acesso)

Ambos os casos fazem usos das APIs REST e das


223 APIs JavaScript do serviço do Power BI
Premium P x Premium EM x Embedded A

A SKU (Power BI Embedded)


Compra pela Azure e
Embedar conteúdo cobrança por hora
em sua própria
aplicação web

EM SKU (Power BI Premium)


Compra pelo O365 e
Compartilhar conteúdo cobrança mensal
com usuários Free fora
do portal do Power BI

Compartilhar conteúdo P SKU (Power BI Premium)


com usuários Free dentro Compra pelo O365 e
do portal do Power BI cobrança mensal
224
Premium P x Premium EM x Embedded A

Nó Cores Memória Valor

A1 1 3GB $1 hora ~ $738 mês

A6 32 100GB $32 hora ~ $23.600 mês

EM1 1 3GB $625 mês

EM3 4 10GB $2.495 mês

P1 8 25GB $4.995 mês

P3 32 100GB $19.995 mês

225
Segurança a Nível de Linha (RLS)

226
Segurança a Nível de Linha (RLS)

• Usada para restringir o acesso a dados para determinados usuários

• Cria-se uma função no Power BI Desktop através da aplicação de um filtro que irá restringir os
dados no nível de linha

• Na aba Modelagem, selecione Gerenciar Funções

• Após isso selecione “Criar” e forneça um nome para a nova função

227
Segurança a Nível de Linha (RLS)

• Selecione a tabela à qual você deseja aplicar a regra e insira a expressão DAX
– Esta expressão deve retornar TRUE ou FALSE

• No exemplo ao lado estamos criando


uma função chamada “Lojas Asia” que
aplica um filtro na tabela “Loja”, retornando
apenas as linhas da tabela onde a coluna
“Continente” tem o valor “Asia”

• Este filtro irá se propagar de forma


semelhante aos demais filtros, no sentido
1 para N (dimensões para fatos)

228
Segurança a Nível de Linha (RLS)

• Ao publicar este relatório no serviço do Power BI, será necessário atribuir os usuários finais às
funções criadas no Power BI Desktop

• Para gerenciar a segurança no modelo de dados, deve-se ir à aba “Conjunto de dados”, clicar
nas reticências e depois em “Segurança”

• Pronto, após isso basta adicionar o


e-mail dos usuários à função desejada

• Pode-se utilizar grupos de segurança


do Office 365 caso seja mais conveniente
do que adicionar e-mails individuais

229
Gateway de Dados Local

230
Gateway de Dados Local

• Quando nossa fonte de dados é local (on-premises), precisamos instalar e configurar


um gateway para a comunicação entre a fonte e o serviço online do Power BI

• Ele funciona como uma ponte fornecendo uma transferência de dados rápida e segura
entre os dados locais e os serviços do Power BI na nuvem

• Há quatro etapas principais para usar um gateway:


– Instalar o gateway em um computador local, usando o modo apropriado
– Adicionar usuários ao gateway, para que possam acessar as fontes de dados locais
– Conectar-se a fontes de dados, para que eles possam ser usados em relatórios e painéis
– Atualizar dados locais, para que os relatórios do Power BI sejam atualizados

• Passo a passo para instalação:


– https://docs.microsoft.com/pt-br/power-bi/service-gateway-install

231

Você também pode gostar