Na parte de Self-Service do BI (SSBI) da Microsoft, a única ferramenta de ETL disponível para usuários de negócios é o Power Query via Power BI ou Excel. É uma interface de no/low-code com centenas de conectores integrados para facilmente extrair e transformar seus dados.
Embora existam várias versões do Power Query, cada uma com suas particularidades em como o motor executa os scripts M (como no Excel, Power BI Desktop, Power BI Service/Fabric para modelos no modo Import, Power BI Dataflow Gen1, Power BI Dataflow Gen2 (DFGen2), Power Platform Dataflow, e outros que provavelmente estou esquecendo), a mais popular — e onde você provavelmente já tem dezenas de lógicas ETL construídas — é via Power BI Desktop, que é publicado para o Service/Fabric.
Como está integrado ao Modelo Semântico (também conhecido como dataset ou conjunto de dados), ele também pode ser aprimorado com colunas e tabelas DAX calculadas, se desejado (embora, na maioria dos casos, isso não seja recomendado). A materialização de tabelas calculadas pode ser importante ao usar o Modelo Semântico para conduzir a avaliação formal/oficial de um indicador, o qual pode ser usado como entrada para outros processos.
Como um Modelo Semântico é executado pelo motor do Analysis Services, que é um motor em memória, não é razoável ter todos os modelos semânticos na memória o tempo todo. Por isso, existe uma lógica de retirada dos modelos de memória para salvar esses dados importados em algum lugar, de modo que da próxima vez que alguém tentar se conectar ao modelo semântico, ele possa ser rapidamente carregado novamente para a memória, o que é chamado de transcodificação. Antes do Fabric, esses dados armazenados usavam um formato de armazenamento de arquivos proprietário inacessível, mas como o método padrão de armazenar tabelas no Microsoft Fabric é via delta tables, e o formato de arquivo Parquet é quase compatível com ele, foram feitas adaptações para ler uma delta table e carregá-la rapidamente na memória do Analysis Services.
Ou seja, a integração do OneLake para Modelo Semânticos é uma forma de tornar esses arquivos “fora da memória” acessíveis e persistidos em um lugar onde possam ser facilmente consumidos por todos os outros motores do Fabric e não-Fabric que conseguem ler Delta.
A Realidade do Usuário de Negócios
Quando você vem do lado de negócios, na maioria das vezes você não tem acesso a um data warehouse adequado ou sua fonte está disponível apenas através de DFGen1, um modelo semântico no modo import (cujas consultas DAX podem ser ingeridas no seu Power Query, como aqui), ou até mesmo com arquivos Excel criptografados via labels de sensibilidade.
Para ingerir corretamente esses dados no seu Fabric OneLake, há novas alternativas no Fabric, principalmente utilizando o Copy Job (anteriormente a atividade de cópia do pipeline de dados do Data Factory), Python via notebooks (especialmente usando o incrível semantic-link-labs), ou DFGen2, onde você define um destino OneLake para cada tabela.
A opção não intuitiva é, na verdade, usar a integração do OneLake para o modelo semântico para fazer essa extração para a camada bronze. E ela oferece muitos benefícios sobre as alternativas anteriores:
- Ela usa o motor de Power Query mais resiliente e leve: o do Semantic Model/Power BI Desktop.
- Você pode acessar arquivos Excel criptografados via labels de sensibilidade.
- É compatível com arquivos hospedados no SharePoint (geralmente na seção de arquivos de um time do MS Teams).
- Você pode desenvolver offline usando o Power BI Desktop.
- É totalmente compatível com integração Git a partir de outubro de 2024.
- Você pode configurar a lógica de atualização incremental com a implementação mais flexível disponível.
- Cada computação é categorizada como background, o que se beneficia do “smoothing” de 24 horas.
Você pode encontrar mais detalhes sobre como configurar isso aqui, aqui, e aqui. Mas, basicamente, você precisa ter o Fabric habilitado na sua capacidade, configurar seu modelo semântico para o formato de armazenamento do modelo semântico grande, e habilita a integração com o OneLake nas configurações do modelo semântico. Da próxima vez que você fizer um refresh, os dados das tabelas de importação dos seus modelos semânticos estarão automaticamente disponíveis para uso no OneLake.
Você pode então ter um atalho do OneLake na sua Bronze Lakehouse apontando para o seu modelo semântico integrado ao OneLake e começar a consumi-lo usando qualquer motor que desejar.
O único ponto de atenção é que, a cada refresh, as versões antigas da sua delta table são deletadas, significando que você só terá a versão mais atual armazenada. Isso pode causar problemas transitórios para motores, como um modelo semântico DirectLake com atualizações automáticas ativadas.
Recent Comments