{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/microsoft-fabric-lakehouse-vs-warehouse/","result":{"data":{"markdownRemark":{"frontmatter":{"title":"Microsoft Fabric: entenda Lakehouse vs Warehouse na prática","description":"Lakehouse ou Warehouse no Microsoft Fabric? Comparamos os dois motores de análise, quando usar cada um, custos de capacidade e integração com OneLake e Power BI.","date":"16 de julho de 2026","thumbnail":null},"html":"<p>Quem começa a estruturar uma plataforma de dados no Microsoft Fabric esbarra rápido na primeira decisão de arquitetura: criar um <strong>Lakehouse</strong> ou um <strong>Warehouse</strong>? Os dois aparecem lado a lado na criação de itens do workspace, ambos armazenam dados em formato Delta sobre o OneLake e ambos podem alimentar relatórios do Power BI. A diferença está em como você escreve, transforma e consulta esses dados — e escolher errado significa retrabalho de pipeline e custo de capacidade desperdiçado.</p>\n<p><strong>O que cada um realmente é</strong></p>\n<p>O Lakehouse é a experiência centrada em arquivos e Spark. Ele expõe duas visões: a área de <strong>Files</strong> (dados brutos, não estruturados, em qualquer formato) e a área de <strong>Tables</strong> (tabelas Delta gerenciadas). Você transforma dados majoritariamente com notebooks PySpark/Spark SQL ou com Dataflows Gen2, e o SQL fica disponível em modo <strong>somente leitura</strong> através do SQL analytics endpoint.</p>\n<p>O Warehouse é a experiência centrada em T-SQL transacional. Ele oferece um motor de data warehouse relacional completo, com suporte a <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>, transações multi-tabela e stored procedures — tudo em T-SQL, sem precisar escrever Spark. Por baixo, os dados também moram em Delta no OneLake, mas o ponto de entrada é o SQL de escrita.</p>\n<p><strong>A regra prática de decisão</strong></p>\n<ul>\n<li>Escolha <strong>Lakehouse</strong> quando a ingestão vier de arquivos (CSV, JSON, Parquet), quando houver dados semiestruturados/não estruturados, quando o time domina Python/Spark ou quando você precisa de engenharia de dados em larga escala (medallion architecture com camadas bronze/silver/gold).</li>\n<li>Escolha <strong>Warehouse</strong> quando a carga for majoritariamente relacional, quando o time é de SQL (não de Spark), quando você precisa de escrita transacional com T-SQL puro e quando quer stored procedures e controle transacional multi-tabela.</li>\n</ul>\n<p>Na prática, muitos projetos usam <strong>os dois</strong>: um Lakehouse como camada de engenharia (bronze/silver) e um Warehouse como camada de consumo/servindo (gold) para as áreas de negócio que consultam via T-SQL. Como tudo está no OneLake, o Warehouse consegue fazer cross-query contra tabelas do Lakehouse sem cópia física de dados.</p>\n<p><strong>OneLake e o fim das cópias</strong></p>\n<p>O ponto que muda o jogo em relação a arquiteturas anteriores é o <strong>OneLake</strong>: um único data lake lógico para todo o tenant. Tabelas Delta criadas no Lakehouse ou no Warehouse ficam acessíveis a outros itens via <strong>shortcuts</strong>, sem duplicação. Isso significa que um relatório de Power BI, um notebook Spark e uma consulta T-SQL podem apontar para o mesmo conjunto físico de arquivos Delta. Menos ETL de cópia, menos divergência entre versões da mesma tabela.</p>\n<p>Para o Power BI, o desdobramento direto é o <strong>Direct Lake</strong>: um modo de conexão que lê os arquivos Delta do OneLake diretamente, sem importar (como o Import) e sem consultar linha a linha no runtime (como o DirectQuery). Você ganha performance próxima do Import com atualização quase em tempo real — desde que a tabela esteja em formato compatível e a capacidade suporte.</p>\n<p><strong>Custo: tudo é capacidade</strong></p>\n<p>Diferente do modelo antigo de Power BI Premium por SKU dedicado, o Fabric cobra por <strong>Capacity Units (CU)</strong> em SKUs <code>F</code> (F2, F4, F8... F2048). Toda operação — notebook Spark, consulta no Warehouse, refresh de Dataflow Gen2, render de Direct Lake — consome CU da mesma capacidade compartilhada. Dois pontos de atenção:</p>\n<ol>\n<li><strong>Smoothing e throttling</strong>: o Fabric suaviza picos ao longo do tempo, mas cargas pesadas concentradas podem gerar throttling se a SKU for subdimensionada. Monitore com o app <strong>Fabric Capacity Metrics</strong>.</li>\n<li><strong>Pausar capacidade</strong>: SKUs F podem ser pausadas (no Azure) fora do horário de uso, cortando custo — algo impossível no modelo de reserva anual do Premium P SKU. Isso muda a economia de ambientes de Dev/Test.</li>\n</ol>\n<p><strong>Onde as equipes erram</strong></p>\n<p>Os tropeços mais comuns que vemos em projetos de Fabric:</p>\n<ul>\n<li>Criar um Warehouse só porque \"warehouse soa mais corporativo\", quando toda a ingestão é de arquivos e o time nem usa T-SQL — resultando em pipelines Spark desnecessários.</li>\n<li>Ignorar a governança de workspace e deixar todo mundo escrevendo na mesma capacidade, sem separar Dev/Test/Prod, gerando throttling imprevisível.</li>\n<li>Tratar o Direct Lake como bala de prata sem validar o fallback para DirectQuery, que ocorre silenciosamente quando um limite é ultrapassado e degrada a performance percebida.</li>\n<li>Duplicar dados com cópias físicas quando um shortcut do OneLake resolveria.</li>\n</ul>\n<p><strong>Fechando</strong></p>\n<p>Lakehouse e Warehouse não são concorrentes — são ferramentas com pontos fortes diferentes dentro da mesma plataforma unificada. A decisão certa depende do perfil do time, da natureza dos dados e do padrão de consumo, e o dimensionamento correto de capacidade é o que separa um Fabric barato de um Fabric caro. Se sua empresa está avaliando ou já migrando para o Microsoft Fabric e quer estruturar uma arquitetura de dados sustentável — com governança de workspace, dimensionamento de capacidade e modelagem no Power BI —, a Dynamic Soluções pode ajudar tanto na consultoria quanto no licenciamento das SKUs F.</p>\n<p>Anyone starting to structure a data platform on Microsoft Fabric quickly hits the first architecture decision: create a <strong>Lakehouse</strong> or a <strong>Warehouse</strong>? Both appear side by side when you add items to a workspace, both store data in Delta format on top of OneLake, and both can feed Power BI reports. The difference lies in how you write, transform, and query that data — and choosing wrong means pipeline rework and wasted capacity cost.</p>\n<p><strong>What each one really is</strong></p>\n<p>The Lakehouse is the file- and Spark-centric experience. It exposes two views: the <strong>Files</strong> area (raw, unstructured data in any format) and the <strong>Tables</strong> area (managed Delta tables). You transform data mostly with PySpark/Spark SQL notebooks or Dataflows Gen2, and SQL is available in <strong>read-only</strong> mode through the SQL analytics endpoint.</p>\n<p>The Warehouse is the transactional T-SQL-centric experience. It offers a full relational data warehouse engine, with support for <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>, multi-table transactions, and stored procedures — all in T-SQL, no Spark required. Under the hood the data also lives as Delta on OneLake, but the entry point is write-capable SQL.</p>\n<p><strong>The practical decision rule</strong></p>\n<ul>\n<li>Choose <strong>Lakehouse</strong> when ingestion comes from files (CSV, JSON, Parquet), when there is semi-structured/unstructured data, when the team is fluent in Python/Spark, or when you need large-scale data engineering (medallion architecture with bronze/silver/gold layers).</li>\n<li>Choose <strong>Warehouse</strong> when the workload is mostly relational, when the team is SQL-oriented (not Spark), when you need transactional writes in pure T-SQL, and when you want stored procedures and multi-table transactional control.</li>\n</ul>\n<p>In practice, many projects use <strong>both</strong>: a Lakehouse as the engineering layer (bronze/silver) and a Warehouse as the consumption/serving layer (gold) for business areas that query via T-SQL. Since everything lives in OneLake, the Warehouse can cross-query against Lakehouse tables without physically copying data.</p>\n<p><strong>OneLake and the end of copies</strong></p>\n<p>The game-changer compared to previous architectures is <strong>OneLake</strong>: a single logical data lake for the entire tenant. Delta tables created in the Lakehouse or the Warehouse are accessible to other items via <strong>shortcuts</strong>, with no duplication. That means a Power BI report, a Spark notebook, and a T-SQL query can all point to the same physical set of Delta files. Less copy-based ETL, less divergence between versions of the same table.</p>\n<p>For Power BI, the direct payoff is <strong>Direct Lake</strong>: a connection mode that reads the OneLake Delta files directly, without importing (like Import) and without querying row by row at runtime (like DirectQuery). You get near-Import performance with almost real-time refresh — provided the table is in a compatible format and the capacity can handle it.</p>\n<p><strong>Cost: everything is capacity</strong></p>\n<p>Unlike the old Power BI Premium dedicated-SKU model, Fabric charges by <strong>Capacity Units (CU)</strong> on <code>F</code> SKUs (F2, F4, F8... F2048). Every operation — Spark notebook, Warehouse query, Dataflow Gen2 refresh, Direct Lake render — consumes CU from the same shared capacity. Two things to watch:</p>\n<ol>\n<li><strong>Smoothing and throttling</strong>: Fabric smooths spikes over time, but heavy concentrated workloads can trigger throttling if the SKU is undersized. Monitor with the <strong>Fabric Capacity Metrics</strong> app.</li>\n<li><strong>Pausing capacity</strong>: F SKUs can be paused (in Azure) outside business hours, cutting cost — something impossible in the annual reservation model of the Premium P SKU. This changes the economics of Dev/Test environments.</li>\n</ol>\n<p><strong>Where teams get it wrong</strong></p>\n<p>The most common missteps we see in Fabric projects:</p>\n<ul>\n<li>Creating a Warehouse just because \"warehouse sounds more corporate,\" when all ingestion is file-based and the team doesn't even use T-SQL — resulting in unnecessary Spark pipelines.</li>\n<li>Ignoring workspace governance and letting everyone write to the same capacity, without separating Dev/Test/Prod, causing unpredictable throttling.</li>\n<li>Treating Direct Lake as a silver bullet without validating the fallback to DirectQuery, which happens silently when a limit is exceeded and degrades perceived performance.</li>\n<li>Duplicating data with physical copies when a OneLake shortcut would solve it.</li>\n</ul>\n<p><strong>Wrapping up</strong></p>\n<p>Lakehouse and Warehouse are not competitors — they are tools with different strengths within the same unified platform. The right decision depends on the team profile, the nature of the data, and the consumption pattern, and correctly sizing capacity is what separates a cheap Fabric from an expensive one. If your company is evaluating or already migrating to Microsoft Fabric and wants to build a sustainable data architecture — with workspace governance, capacity sizing, and Power BI modeling — Dynamic Soluções can help both with consulting and with licensing the F SKUs.</p>"}},"pageContext":{"slug":"/blog/microsoft-fabric-lakehouse-vs-warehouse/","previousPost":null,"nextPost":{"frontmatter":{"title":"Dataverse: segurança por roles e business units na prática"},"fields":{"slug":"/blog/dataverse-seguranca-roles-business-units/"}}}},"staticQueryHashes":["2269431855"]}