Abaixo você entenderá, da maneira mais completa possível, o que é ETL. A sigla em inglês, Extract, Transform and Load (Extrair, Transformar e Carregar). Buscamos de forma simples explicar para que o leitor leigo no assunto possa compreender o assunto e o leitor intermediário consolidar seu conhecimento.

Quando falamos sobre o que é ETL, falamos de um processo de extração e adaptação de dados de fontes externas. O conceito de ETL se confunde muito com ferramentas que fazem o processo, pois um não se realiza sem o outro.

O entendimento geral é de que esta é a fase mais crítica da construção de um modelo de dados. Caso você vá montar um Data Warehouse é o processo mais importante e trabalhoso a ser feito, pois, toda a estrutura de dados depende dele. Não há Business Intelligence sem ETL.

A consolidação dos dados é feita a partir de diferentes fontes. Estas fontes podem ser banco de dados relacionais, arquivos de texto, arquivos em excel, endereços na Web, dentre inúmeros outros tipos de fontes. O sistema de ETL tem que conseguir se comunicar com as diversas fontes de dados, ler diferentes formatos e como resultado trazer tudo numa base homogênea. O produto final do processo de ETL será uma base para gerar relatórios e análises que suportem decisões de negócios, não podem ter erros nestes resultados.

No mercado há diversas ferramentas para estas atividades, algumas bastante conhecidas e consolidadas. Citamos aqui SAS, Microsoft SQL Server Integration Services, Power Query (excel e Power BI), Pentaho Data Integration, Oracle Data Integrator, SAP BusinessObjects Data Services, dentre outros.

 

Extração, Transformação e Carregamento (o que é ETL)

O processo de ETL envolve os seguintes passos, como o próprio nome indica:

  • Extração dos dados de fontes externas;
  • Transformação dos dados para a realidade de cada negócio;
  • Carregamento dos dados nos modelos de dados deixando-os disponíveis para trabalho.
o que é ETL e sua importancia

Como o processo de ETL funciona.

Extração

A primeira etapa no processo é extrair os dados nas origens das fontes. Os projetos em geral consolidam diferentes fontes com diferentes formatos dos dados, organizados também em estruturas diferentes.

Veja abaixo exemplos das fontes de dados mais utilizadas:

  • Arquivos de Texto/CSV;
  • Excel;
  • Banco de Dados Relacionais;
  • Banco de Dados Cloud;
  • JSON;
  • Endereço WEB;
  • Serviços Online por API;
  • Etc…

 

Transformação

Consiste no tratamento, limpeza e adaptação dos dados extraídos. Desta transformação são gerados os dados a serem carregados.

A parte de transformação consiste em padronizar os dados em relação ao tamanho e tipo. Remover colunas ou linhas indesejadas. Substituir caracteres estranhos, corrigir erros de digitação e padronizar nomes e termos. Criação de novas colunas a partir de colunas já existentes contendo somente parte dos dados. Criação de colunas a partir da junção de duas colunas. Transposição de linhas para colunas ou vice-versa. Traduzir valores codificados em informações legíveis (exemplo: 1 para Masculino, 2 para Feminino). Alteração das unidades de medida. Mesclar ou Acrescentar informações de tabelas em uma só. E muito mais.

 

Carregamento

Esta etapa, dentro do que explicamos sobre o que é ETL, representa em colocar os dados transformados dentro do modelo de dados ou Data Warehouse. Este processo varia de acordo com a aplicação, necessidade e organização.

Com a carga dos dados é possível ler e gerar valor sobre eles. A partir deste ponto o analista ou gestor de negócios consegue manipular e formar seus relatórios e análises para o processo de tomada de decisão.

A frequência de carregamento e a quantidade de dados a serem armazenados são definidas nesta etapa também. Cada empresa e pessoa tem necessidades específicas. Com relação à frequência é importante programar uma periodicidade em que os dados serão atualizados e utilizados e num horário que não tenha grande utilização de recursos de rede, pois é um processo que exige do ambiente ou da máquina que irá executar.

 

Considerações importantes para o entendimento sobre o que é ETL e para trabalhar melhor nos processos

A chave de um bom processo de ETL e prestar atenção em alguns fatores.

Disponibilidade das fontes de Dados

Suas fontes devem ser de fácil acesso e pouco sujeitas a alterações. Busque se basear em fontes onde você ou sua empresa tenham uma certa influência. Devem ser evitados constantes alterações na estrutura, nos locais de armazenamento ou caminho de busca bem como alterações no próprio conteúdo, isto causa inconsistências no modelo de dados e necessidade de ajustes constante nas etapas de extração e transformação.

 

Simplifique sua vida

É nesta parte que você pode otimizar seu trabalho e deixar sua vida mais fácil na geração de seus relatórios e modelos de dados. Preste bastante atenção na hora de transformar, faça isto para reduzir a necessidade de intervenção no dia a dia, para deixar a atividade mais automatizada possível.

 

Escalabilidade de dados

A tendência é que os dados somente cresçam e se acumulem, fazendo com que consuma cada vez mais recursos do sistema.  Isto deve ser pensado no momento da criação do modelo, deve-se entender o tamanho que vai chegar. Dependendo deste tamanho a estratégia de atualização muda, será necessário criar rotinas quebradas com vários processamentos. Então para não ter surpresas e travamentos já pense nisto antes.

As empresas de desenvolvimento de softwares de ETL desenvolveram formas de minimizar os impactos de grandes processamentos. É chamado de processamentos paralelos, dando mais capacidade às suas soluções.

Recomendamos a leitura do artigo a seguir com as nossas melhores práticas para importação de dados no Power BI.

Conclusão

Nossa intenção neste artigo, além de fazer você entender o que é ETL, foi também dar mais contexto a este processo. Espero que tenham compreendido a importância desta etapa no todo do Business Intelligence.

Por fim, entenda o que é ETL como sendo a ponte que liga os dados até o modelo de dados. Sem esta ponte os dados não chegam ao seu objetivo, que é informar, dar subsídios, possibilitar tomada de decisão consciente.

O processo deve ser bem planejado e executado de forma a evitar erros e retrabalhos futuros, mas principalmente de forma a reduzir o tempo de execução no tratamento dos dados. Esperamos que tenham gostado e entendido o que expusemos em relação ao que é ETL.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!

Criar uma tabela Calendário talvez seja uma das atividades que você mais fará nos seus modelos de dados. Esta tabela vai constar em praticamente todos os modelos a serem criados, pois uma das maneiras mais comuns e efetivas de segmentação de dados é por data.

Leia abaixo neste artigo as duas maneiras que consideramos mais efetivas para criar uma tabela Calendário. É possível utilizar também estas instruções para criar nos suplementos do excel: Power Pivot (a primeira maneira); Power Query (a segunda forma que apresentamos). Este artigo busca abranger todos os possíveis campos a se criar na tabela. Caso você perceba alguma coluna que seja interessante acrescentar, deixe seu comentário no final do artigo.

Ah! antes que eu me esqueça, se quiser ver uma outra forma para criar a tabela calendário no Power BI entre no artigo a seguir. É uma terceira forma ainda mais prática: Aprenda a criar uma Tabela Calendário Automática no Power BI.

Em geral queremos visualizar e comparar dados por dia, mês, semana, dia da semana, período do mês, etc. Para ter todas estas comparações à disposição criar uma tabela Calendário é a melhor solução. Com esta tabela, relacionada às demais tabelas, fica possível fazer todas as análises possíveis em relação a datas.

Através de uma segmentação e organização de dados por datas bem-feita conseguimos também utilizar as funções de inteligência de tempo, assim conseguir análises ainda mais ricas em comparações de períodos.

 

Como criar uma tabela Calendário no Power BI

Apresentaremos aqui duas formas para tal. A primeira utilizando as funções da Linguagem DAX e a segunda utilizando o Power Query no Editor de Consultas. Nas duas formas será gerado uma tabela de datas com várias colunas úteis para comparações e visualizações.

Antes de iniciarmos no conteúdo em si, baixe nosso modelo contendo o que ensinamos neste artigo na prática. Isto facilitará o acompanhamento do que explicamos. Você também poderá utilizar este material baixado no futuro caso queira recordar como fazer.

Link do nosso exemplo para criar a tabela de Calendário no Power BI.

 

Criação da tabela Calendário utilizando Linguagem DAX

No nosso entendimento esta é a forma mais prática de todas, apesar de que no Power Query também é bem tranquilo e usual. Mas a nossa preferência é esta devido a utilizar as funções DAX.

Abaixo o passo a passo para criar uma tabela Calendário utilizando funções da Linguagem DAX.

Utilize o modelo que disponibilizamos no link acima para praticar e acompanhar os exemplos.

Dentro do Power BI Desktop, vá na faixa de opções Modelagem clique em Nova Tabela.

Modelagem Criar Tabela

Será criada uma nova tabela e também será aberto uma linha para digitar a função DAX que possibilita a criação desta tabela. Perceba como aparecerá na figura abaixo.

Criar uma tabela calendário 1

Neste momento delete a expressão “Tabela = “ e digite a expressão abaixo para criar uma tabela Calendário.

CalendarioDAX =
CALENDAR ( DATE ( 2017; 01; 01 ); DATE ( 2018; 12; 31 ) )

Aperte Enter.

Veja abaixo o resultado. Clique na visualização Dados para ver exatamente como está na tela abaixo.

Criar uma tabela calendário 2

Foi criado uma tabela com o nome CalendárioDAX, conforme digitamos, com uma coluna chamada “Date”. Esta coluna tem a menor data 01/01/2017 e a maior data 31/12/2018 conforme definimos na função CALENDAR. Esta função cria uma tabela com uma data mínima e uma data máxima, preenchendo todas as datas existentes neste intervalo.

A função CALENDAR aceita como mínimo e máximo expressões que retornem uma data, assim a grande vantagem de criar uma tabela Calendário utilizando a linguagem DAX é esta. Ao invés de usar datas fixas podemos utilizar a data mínima e máxima da tabela principal do modelo.

No exemplo abaixo a expressão está fazendo isto.

CalendarioDAX =
CALENDAR ( MIN ( Funcionarios[Admissão] ); MAX ( Funcionarios[Admissão] ) )

Neste caso iremos considerar o intervalo de datas entre a menor data e a maior data que já existe na tabela Funcionários. Assim na hora de avaliar e utilizar a data para comparações utilizamos somente um intervalo que já existe. Com isso deixamos as datas de análises mais limpas, constando apenas o intervalo que interessa.

Criando o restante das colunas da Tabela Calendário

Criada a principal coluna (coluna “Date”), todas as outras agora vão derivar dela.

Criaremos agora mais três colunas (dia, mês e ano). Para isto acrescente mais colunas clicando Nova Coluna na faixa de opções Modelagem.

Criar nova coluna power BI

Vamos criar mais três expressões, uma de cada vez. Crie na ordem abaixo:

Dia =
DAY ( 'CalendarioDAX'[Date] )

Mês =
MONTH( 'CalendarioDAX'[Date] )

Ano =
YEAR( 'CalendarioDAX'[Date] )

Após o processo teremos uma coluna contendo somente a informação de “Dia”, outra contendo o “Mês” e outra com o “Ano”.

Criar colunas de Dia Mes Ano no Power BI

As próximas etapas serão a criação das colunas de dia da semana, nome do mês completo, nome do mês curto e trimestre. Seguindo o mesmo procedimento para criar uma Nova Coluna, utilize as expressões abaixo nesta ordem.

DiaSemana =
FORMAT ( 'CalendarioDAX'[Date]; "ddd" )

MêsNome =
FORMAT( 'CalendarioDAX'[Date];"mmmm" )

MêsCurto =
FORMAT( 'CalendarioDAX'[Date];"mmm" )

Trimestre =
FORMAT( 'CalendarioDAX'[Date];"q" ) & "T"

Trim/Ano =
CalendarioDAX[Trimestre] & CalendarioDAX[Ano]

Utilizamos também, neste caso, a função FORMAT para que o resultado fosse exatamente na forma que nos ajude na visualização e análise. Assim fica mais amigável na hora de manipular e mostrar os eixos de data.

Veja como ficou a tabela após acrescentar todas as colunas.

Novas colunas no Power BI resultado

Além das colunas criadas, é possível pensar em outras e acrescentá-las de forma a atender suas necessidades, por exemplo, 1ª e 2ª quinzenas, Bimestre, Quadrimestre, Semestre, 3 últimos dias do mês e assim vai.

Terminamos a parte de criar uma tabela Calendário no Power BI utilizando as funções da linguagem DAX.

 

Criar uma tabela Calendário utilizando Editor de Consultas (Power Query)

Outra forma de criar uma tabela Calendário no Power BI é utilizando o Editor de Consultas. Neste modo utilizaremos a interface do Power Query e um pouco de Linguagem M, recomendo a leitura do artigo: Linguagem M. A Linguagem da Power Query no Power BI, para entender mais sobre o assunto.

Este método é o mais utilizado atualmente e seguindo o passo a passo abaixo será simples para você criar.

Clique no Editor de Consultas na faixa de opções Página Inicial.

Editor de Consultas no Power BI

Dentro do ambiente do Editor de Consultas clique em Obter Dados e em seguida Consulta Nula.

Criar uma Consulta Nula no Power BI

Agora é hora de utilizar a Linguagem M. Utilizaremos a função “List.Dates” para criar uma lista de datas com uma data inicial, tempo de duração e forma de incremento (se será por dia, por hora, por mês, etc.).

Será aberto, logo após clicar em Consulta Nula, um espaço para digitar. Observe na figura abaixo (1) a função da Linguagem M que digitamos neste espaço.

List.Dates Linguagem M

Digite então conforme abaixo e em seguida aperte Enter.

= List.Dates (#date(2015,1,1), 365 * 3, #duration(1,0,0,0))

Esta função tem 3 partes, onde na primeira definimos a data inicial da lista. Utilizamos a função “#date” para colocar esta data inicial no formato que o Power Query entenda.

Na segunda parte é definido até quando a lista será completada. Colocamos aqui 3 anos, representado na expressão “365 * 3”. Note que fazendo desta forma é possível utilizar expressões com esta, não precisa fazer o cálculo de cabeça.

E por fim, na terceira parte será definido como a lista será incrementada, no caso utilizamos a função “#duration” e definimos o incremento em 1 dia por vez. Na função “#duration” é possível definir os dias, horas, minutos, segundos. No caso (1,0,0,0) foi definido 1 dia, 0 horas, 0 minutos e 0 segundos.

Seguindo o procedimento será gerada a lista dos dias.

Clique em Para a Tabela (conforme passo 2 na figura acima) para transformar a lista em uma tabela. Na janela que aparecer clique em OK.

Renomeie “Column1” para “Data” (1). Mude o nome da tabela de “Consulta1” para “CalendarioPQ” (2).

Renomeando Coluna e Consulta no Power BI

O próximo passo será alterar o tipo de dados da coluna “Data” para Data. Clique com o botão direito sobre a coluna (passo 1 abaixo). Posicione o mouse sobre Alterar Tipo e em seguida clique em Data.

A vantagem do Power Query é a facilidade de fazer algumas modificações.

No caso iremos adicionar novas colunas somente com as informações que queremos. Isto é feito de forma bem simples pela interface gráfica.

Clique em Adicionar Colunas (2), clique em Data (3), posicione o mouse em Dia e finalmente clique em Dia.

Adicionando Colunas no Power BI

Observe que será criada uma nova coluna com o nome “Dia”, contendo somente o Dia da coluna “Data”.

Vamos agora criar as colunas de Mês (Data/Mês/Mês), Ano (Data/Ano/Ano), Nome do Mês (Data/Mês/Nome do Mês), Nome do Dia (Data/Dia/Nome do Dia) e Trimestre (Data/Trimestre/Trimestre do Ano). Para isto repita os passos que fizemos para criar a coluna “Dia”.

Importante: Antes de inserir cada uma das colunas selecione a coluna “Data” novamente.

Veja abaixo o resultado após criar todas as colunas citadas acima.

Criar uma Tabela Calendário com Power Query

Depois de criar uma tabela Calendário utilizando o Power Query clique no botão Fechar e Aplicar na faixa de opções Página Inicial para salvar tudo que foi feito no Editor de Consultas.

 

Relacionando a tabela Calendário com as outras tabelas

Depois de criar a tabela calendário, para utilizar de fato, é necessário relacionar com as outras tabelas do modelo de dados. Este relacionamento será feito a partir da coluna “Data” da tabela Calendário para uma coluna que contenha Datas da outra tabela. As colunas devem ser do mesmo tipo de dados, ou seja, tipo de dados de data.

Para visualizar os relacionamentos clique no botão Relacionamentos no painel de Visuais (1 na figura abaixo).

Crie um relacionamento novo selecionando a tabela CalendarioDAX (utilizaremos esta para explicar este passo). Dentro desta tabela clique em “Date” segure e arraste a linha que será formada até a tabela Funcionários sobre o nome “Admissão”. Solte o cursor neste ponto.

Será criado um relacionamento entre as duas tabelas (2 na figura abaixo).

Relacionamento entre tabelas no Power BI

Com este relacionamento entre as duas tabelas será possível utilizar a tabela Calendário para manipular as informações sobre datas nos dados da tabela Funcionários.

Assim encerramos esta artigo mostrando as duas formas que utilizamos para criar uma tabela Calendário no Power BI.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!