{"id":1838,"date":"2026-01-21T22:54:43","date_gmt":"2026-01-22T01:54:43","guid":{"rendered":"https:\/\/alisonpezzott.com.br\/?p=1838"},"modified":"2026-01-21T23:31:57","modified_gmt":"2026-01-22T02:31:57","slug":"vista-do-lago-materializada-no-microsoft-fabric","status":"publish","type":"post","link":"https:\/\/alisonpezzott.com.br\/en\/vista-do-lago-materializada-no-microsoft-fabric\/","title":{"rendered":"Vista do lago materializada no Microsoft Fabric"},"content":{"rendered":"<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Vistas materializadas do lago no Microsoft Fabric\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/vxMdKQ-1ABs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Neste v\u00eddeo e artigo demonstro como utilizar a vista do lago materializada do Microsoft Fabric. <\/p>\n\n\n\n<p>Este recurso ainda em Preview (janeiro de 2026) \u00e9 um recurso disruptivo no Microsoft Fabric quando falamos em ingest\u00e3o e tratamento entre camadas do Lakehouse.<\/p>\n\n\n\n<p>Uma view SQL (vis\u00e3o, vista) tradicional nada mais \u00e9 do que uma query, uma instru\u00e7\u00e3o que foi salva. <\/p>\n\n\n\n<p>Contudo uma vista (ou view) n\u00e3o possui dados. Ou seja, n\u00e3o \u00e9 poss\u00edvel inserir, atualizar ou excluir dados de uma view. O resultado de uma view \u00e9 obtido quando requisitamos os dados desta view seja dentro do banco de dados ou pipelines de atualiza\u00e7\u00e3o de processos de ingest\u00e3o de dados, seja qual for<\/p>\n\n\n\n<p>Utilizar uma view em muito dos casos pode mascarar queries ruins fazendo com que o processo de ingest\u00e3o\/transforma\u00e7\u00e3o perca performance.<\/p>\n\n\n\n<p>Views materializadas j\u00e1 existem em alguns bancos de dados, como no Postgres por exemplo. <\/p>\n\n\n\n<p>Materializar uma view \u00e9 basicamente a a\u00e7\u00e3o de popular com dados uma tabela com o resultado de uma view. Isto \u00e9 o que est\u00e1 sendo proposto no Microsoft Fabric com as MLV`s ou materialized lake views ou usando ao p\u00e9 da letra a tradu\u00e7\u00e3o da <a href=\"https:\/\/learn.microsoft.com\/pt-pt\/fabric\/data-engineering\/materialized-lake-views\/get-started-with-materialized-lake-views\">documenta\u00e7\u00e3o<\/a>, vistas do lago materializadas. <\/p>\n\n\n<h2 class=\"wp-block-post-title\">Vista do lago materializada no Microsoft Fabric<\/h2>\n\n\n<p>Para que este recurso seja testado criei um material de apoio para que voc\u00ea possa reproduzir os mesmos passos demonstrados no v\u00eddeo citada acima e dispon\u00edvel <a href=\"https:\/\/youtu.be\/vxMdKQ-1ABs\">aqui<\/a>.<\/p>\n\n\n\n<p>Fa\u00e7a o download dos arquivos e extraia em sua pasta <code>Downloads<\/code> <\/p>\n\n\n\n<p>Baixe <a href=\"https:\/\/github.com\/alisonpezzott\/introducing_materialized_lake_views\/archive\/refs\/heads\/main.zip\">aqui<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prepara\u00e7\u00e3o<\/h3>\n\n\n\n<p>Crie um novo workspace chamado de demo_mlv no Microsoft Fabric e configure uma capacidade do Fabric (Malha ou Trial).<\/p>\n\n\n\n<p>Clique em novo item e crie o lakehouse chamado <code>lh_lakehouse<\/code>. Habilite a caixa <code>Lakehouse schemas<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-1024x546.png\" alt=\"\" class=\"wp-image-1843\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-1024x546.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-300x160.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-768x410.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-1536x819.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-2048x1092.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-15-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Depois v\u00e1 at\u00e9 Import\/Notebook e carregue os notebooks dentro da pasta scripts do zip baixado. Arquivos *.ipynb<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-1024x546.png\" alt=\"\" class=\"wp-image-1844\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-1024x546.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-300x160.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-768x409.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-1536x819.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-2048x1092.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-16-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ap\u00f3s importar os notebooks, abra o lakehouse e crie uma subpasta chamada <code>raw<\/code> dentro de <code>Files<\/code> clicando nos tr\u00eas pontinhos. <\/p>\n\n\n\n<p>Clicando novamente nos tr\u00eas pontinhos escolha <code>Upload<\/code> \/ <code>Upload Files<\/code> e importe todos os arquivos contidos na pasta <code>data<\/code> do zip baixado. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-1024x551.png\" alt=\"\" class=\"wp-image-1845\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-1024x551.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-300x161.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-768x413.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-1536x826.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-2048x1101.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-17-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-1024x549.png\" alt=\"\" class=\"wp-image-1846\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-1024x549.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-300x161.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-768x412.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-1536x823.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-2048x1098.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-18-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Arquivos csv carregados<\/figcaption><\/figure>\n\n\n\n<p>De dentro do lakehouse, clique em abrir o notebook e escolha o <code>nb_01_import_first_data<\/code><\/p>\n\n\n\n<p>Abaixo segue o c\u00f3digo do notebook PySpark<\/p>\n\n\n\n<p>Nesta c\u00e9lula estamos importando os tipos de dados par ainferir o schema para ler corretamente os arquivos *.csv<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from pyspark.sql.types import (\n    StructType, StructField, IntegerType, StringType,\n    DateType, DoubleType, ShortType, DecimalType\n)\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">from<\/span><span style=\"color: #B392F0\"> pyspark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sql<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">types <\/span><span style=\"color: #F97583\">import<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    StructType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> StructField<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> IntegerType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> StringType<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    DateType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> DoubleType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> ShortType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> DecimalType<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-586603d\" data-block-id=\"586603d\"><p class=\"stk-block-text__text\">Com o magic cria-se o schema <code>bronze<\/code> para as tabelas Delta <\/p><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>%%sql\nCREATE SCHEMA IF NOT EXISTS bronze<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">%%<\/span><span style=\"color: #B392F0\">sql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">CREATE SCHEMA IF NOT EXISTS bronze<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-7d407b6\" data-block-id=\"7d407b6\"><p class=\"stk-block-text__text\">Para cada tabela Delta ser\u00e1 criado o schema com os nomes das colunas e tipos de dados. Cada arquivo csv \u00e9 carregado. <\/p><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># product\n\nschema = StructType(&#91;\n    StructField(\"product_id\", IntegerType(), False),              \n    StructField(\"product_subcategory_id\", IntegerType(), True),\n    StructField(\"product\", StringType(), False),                  \n    StructField(\"color\", StringType(), True),                     \n    StructField(\"size\", StringType(), True),                      \n    StructField(\"product_line\", StringType(), True),              \n    StructField(\"class\", StringType(), True),                     \n    StructField(\"style\", StringType(), True),                     \n    StructField(\"product_model_id\", IntegerType(), True),\n&#93;)\n\ndf = (spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/product.csv\"))\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.product\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># product<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),              <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_subcategory_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),                  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;color&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;size&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_line&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),              <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;class&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;style&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_model_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/product.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.product&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># product_category\n\nschema = StructType(&#91;\n    StructField(\"product_category_id\", IntegerType(), False),  \n    StructField(\"product_category\", StringType(), False),      \n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/product_category.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.product_category\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># product_category<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_category_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_category&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/product_category.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.product_category&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># product_subcategory\n\nschema = StructType(&#91;\n    StructField(\"product_subcategory_id\", IntegerType(), False),  \n    StructField(\"product_category_id\", IntegerType(), False),\n    StructField(\"product_subcategory\", StringType(), False),      \n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/product_subcategory.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.product_subcategory\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># product_subcategory<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_subcategory_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_category_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_subcategory&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/product_subcategory.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.product_subcategory&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># product_subcategory\n\nschema = StructType(&#91;\n    StructField(\"product_subcategory_id\", IntegerType(), False),  \n    StructField(\"product_category_id\", IntegerType(), False),\n    StructField(\"product_subcategory\", StringType(), False),      \n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/product_subcategory.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.product_subcategory\")\n    <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># product_subcategory<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_subcategory_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_category_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_subcategory&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/product_subcategory.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.product_subcategory&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># customer\n\nschema = StructType(&#91;\n    StructField(\"customer_id\", IntegerType(), False),\n    StructField(\"first_name\", StringType(), False),        \n    StructField(\"middle_name\", StringType(), True),        \n    StructField(\"last_name\", StringType(), False),         \n    StructField(\"address_line_1\", StringType(), False),\n    StructField(\"addess_line_2\", StringType(), True),      \n    StructField(\"city\", StringType(), False),\n    StructField(\"state_province_code\", StringType(), False),   \n    StructField(\"country_region_code\", StringType(), False),  \n    StructField(\"state_name\", StringType(), False),        \n    StructField(\"territory_name\", StringType(), False),    \n    StructField(\"territory_group\", StringType(), False),\n    StructField(\"start_date\", DateType(), True),\n    StructField(\"end_date\", DateType(), True),\n    StructField(\"is_active\", IntegerType(), False)\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/customer.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.customer\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># customer<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;customer_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;first_name&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;middle_name&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;last_name&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),         <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;address_line_1&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;addess_line_2&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;city&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;state_province_code&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),   <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;country_region_code&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;state_name&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;territory_name&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;territory_group&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">StringType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;start_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;end_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;is_active&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/customer.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.customer&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># sales_order_detail\n\nschema = StructType(&#91;\n    StructField(\"sales_order_id\", IntegerType(), True),\n    StructField(\"sales_order_detail_id\", IntegerType(), True),\n    StructField(\"sales_detail_item\", IntegerType(), True),\n    StructField(\"items_per_order\", IntegerType(), True),\n    StructField(\"order_qty\", ShortType(), True),                 \n    StructField(\"product_id\", IntegerType(), True),\n    StructField(\"unit_price\", DecimalType(19, 4), True),\n    StructField(\"percentage_discount\", DecimalType(19, 4), True),\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/sales_order_detail.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.sales_order_detail\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># sales_order_detail<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_detail_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_detail_item&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;items_per_order&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;order_qty&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">ShortType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;unit_price&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;percentage_discount&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/sales_order_detail.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.sales_order_detail&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># sales_order_header\n\nschema = StructType(&#91;\n    StructField(\"sales_order_id\", IntegerType(), False),     \n    StructField(\"order_date\", DateType(), True),\n    StructField(\"ship_date\", DateType(), True),\n    StructField(\"due_date\", DateType(), True),\n    StructField(\"customer_id\", IntegerType(), False),\n    StructField(\"tax_amount\", DecimalType(19, 4), False),\n    StructField(\"freight\", DecimalType(19, 4), False),\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/sales_order_header.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.sales_order_header\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># sales_order_header<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;order_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;ship_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;due_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;customer_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;tax_amount&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;freight&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/sales_order_header.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.sales_order_header&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># product_cost_history\n\nschema = StructType(&#91;\n    StructField(\"product_id\", IntegerType(), False),     \n    StructField(\"start_date\", DateType(), False),\n    StructField(\"end_date\", DateType(), True),\n    StructField(\"is_active\", IntegerType(), False),\n    StructField(\"standard_cost\", DecimalType(19, 4), False)\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(\"Files\/raw\/product_cost_history.csv\")\n)\n\ndf.write \\\n    .mode(\"overwrite\") \\\n    .option(\"overwriteSchema\", True) \\\n    .saveAsTable(\"bronze.product_cost_history\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># product_cost_history<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;start_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;end_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;is_active&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;standard_cost&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/product_cost_history.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwrite&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;overwriteSchema&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.product_cost_history&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-5a9c1b6\" data-block-id=\"5a9c1b6\"><p class=\"stk-block-text__text\">O c\u00f3digo a seguir aplica CDF para todas as tabelas do schema bronze. O CDF \u00e9 a abrevia\u00e7\u00e3o de Change Data Feed recomendado na documenta\u00e7\u00e3o para otimizar os processos das vistas do lago materializadas.<\/p><\/div>\n\n\n\n<p>Fonte: <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-engineering\/materialized-lake-views\/refresh-materialized-lake-view\">Refresh Materialized Lake Views in a Lakehouse &#8211; Microsoft Fabric | Microsoft Learn<\/a>  <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Apply CDF (Change Data Feed) to all table of the schema\nschema = \"bronze\"\n\ntbls = (\n    spark.sql(f\"SHOW TABLES IN {schema}\")\n    .select(\"tableName\")\n    .collect()\n)\n\nfor r in tbls:\n    t = f\"{schema}.{r&#91;'tableName'&#93;}\"\n    spark.sql(f\"\"\"\n        ALTER TABLE {t} \n        SET TBLPROPERTIES (delta.enableChangeDataFeed = true)\n    \"\"\")\n    <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># Apply CDF (Change Data Feed) to all table of the schema<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&quot;bronze&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">tbls <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sql<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;SHOW TABLES IN <\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">schema<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\">&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">select<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;tableName&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">collect<\/span><span style=\"color: #BBBBBB\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">for<\/span><span style=\"color: #B392F0\"> r <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #B392F0\"> tbls<\/span><span style=\"color: #BBBBBB\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    t <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\">.<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #B392F0\">r<\/span><span style=\"color: #BBBBBB\">&#91;<\/span><span style=\"color: #FFAB70\">&#39;tableName&#39;<\/span><span style=\"color: #BBBBBB\">&#93;<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sql<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;&quot;&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFAB70\">        ALTER TABLE <\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">t<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFAB70\">        SET TBLPROPERTIES (delta.enableChangeDataFeed = true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFAB70\">    &quot;&quot;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-6c44c27\" data-block-id=\"6c44c27\"><p class=\"stk-block-text__text\">A c\u00e9lula a seguir tamb\u00e9m aplica o Change Data Feed utilizado SQL. Ela est\u00e1 congelada no notebook fornecido. Apenas quis demonstrar caso for \u00fatil para outras situa\u00e7\u00f5es. <\/p><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>%%sql\n\n-- Option with SQL\nALTER TABLE bronze.customer \nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.product\nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.product_category\nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.product_subcategory \nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.sales_order_detail \nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.sales_order_header \nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n\nALTER TABLE bronze.product_cost_history \nSET TBLPROPERTIES (delta.enableChangeDataFeed = true);\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">%%<\/span><span style=\"color: #B392F0\">sql<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">-- Option <\/span><span style=\"color: #F97583\">with<\/span><span style=\"color: #B392F0\"> SQL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">customer <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">product<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">product_category<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">product_subcategory <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sales_order_detail <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sales_order_header <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ALTER TABLE bronze<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">product_cost_history <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">SET TBLPROPERTIES <\/span><span style=\"color: #BBBBBB\">(delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #BBBBBB\"> true)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Execute o notebook clicando em Run All.  <\/p>\n\n\n\n<p>Feito isto a primeira carga de dados ser\u00e1 feito para a camada bronze. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Criando as vistas do lago materializadas  <\/h4>\n\n\n\n<p>Acessando o Lakehouse, clique em <code>Manage materialized lake views<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"543\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-1024x543.png\" alt=\"\" class=\"wp-image-1848\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-1024x543.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-300x159.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-768x407.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-1536x814.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-2048x1086.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-19-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>E na sequencia acesse o notebook existente <code>nb_02_materialized_lake_views<\/code><\/p>\n\n\n\n<p>Ele que ir\u00e1 criar cada uma das vistas materializadas no lakehouse. Segue o c\u00f3digo abaixo de cada MLV criada como um exemplo did\u00e1tico.  Repare que aqui \u00e9 utilizado exclusivamente SQL para criamos as MLVs que est\u00e3o simulando nossas camadas  Silver e Gold.  <\/p>\n\n\n\n<p>Cria-se o schema silver e gold.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>CREATE SCHEMA IF NOT EXISTS silver;\nCREATE SCHEMA IF NOT EXISTS gold;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">SCHEMA<\/span><span style=\"color: #B392F0\"> IF <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">SCHEMA<\/span><span style=\"color: #B392F0\"> IF <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-d8a6bd3\" data-block-id=\"d8a6bd3\"><p class=\"stk-block-text__text\">Inicia-se a cria\u00e7\u00e3o das MLVs.<\/p><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS silver.customer;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customer\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nWITH cte_countries AS (\nSELECT \n    DISTINCT country_region_code,\n    territory_group,\n    territory_name,\n    CASE \n        WHEN country_region_code IN ('AU', 'DE', 'ENG', 'FR', 'GB') THEN territory_name\n        WHEN country_region_code IN ('17', '31', '41', '45','57', '59', '62', '75', '77', \n            '78', '80', '91', '92', '93', '94', '95', 'BC', 'NSW', 'QLD', 'VIC' ) THEN territory_group\n        WHEN country_region_code = 'CA' AND territory_name = 'Canada' THEN 'Canada'\n        WHEN country_region_code = 'CA' AND territory_name = 'California' THEN 'United States of America'\n        WHEN country_region_code IN ('US', 'WA') THEN 'United States of America'\n    ELSE 'Undefined'\n    END AS country\nFROM bronze.customer \n)\nSELECT \n    DISTINCT cu.customer_id,\n    CONCAT_WS(' ', cu.first_name, cu.middle_name, cu.last_name) AS customer_name,\n    CONCAT_WS(' ', cu.address_line_1, cu.addess_line_2) AS address,\n    cu.city,\n    cu.state_name AS state,\n    ct.country,\n    CONCAT_WS(\n        ', ', \n        CONCAT_WS(' ', cu.address_line_1, cu.addess_line_2), \n        cu.city, \n        cu.state_name, \n        ct.country\n    ) AS full_address,\n    cu.start_date,\n    cu.end_date,\n    cu.is_active\nFROM bronze.customer cu\nJOIN cte_countries ct\n    ON ct.country_region_code = cu.country_region_code AND \n       ct.territory_group     = cu.territory_group     AND\n       ct.territory_name      = cu.territory_name<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.customer;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.customer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">WITH<\/span><span style=\"color: #B392F0\"> cte_countries <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">DISTINCT<\/span><span style=\"color: #B392F0\"> country_region_code,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    territory_group,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    territory_name,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">CASE<\/span><span style=\"color: #B392F0\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">WHEN<\/span><span style=\"color: #B392F0\"> country_region_code <\/span><span style=\"color: #F97583\">IN<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #FFAB70\">&#39;AU&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;DE&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;ENG&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;FR&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;GB&#39;<\/span><span style=\"color: #B392F0\">) <\/span><span style=\"color: #F97583\">THEN<\/span><span style=\"color: #B392F0\"> territory_name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">WHEN<\/span><span style=\"color: #B392F0\"> country_region_code <\/span><span style=\"color: #F97583\">IN<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #FFAB70\">&#39;17&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;31&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;41&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;45&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;57&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;59&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;62&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;75&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;77&#39;<\/span><span style=\"color: #B392F0\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;78&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;80&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;91&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;92&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;93&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;94&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;95&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;BC&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;NSW&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;QLD&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;VIC&#39;<\/span><span style=\"color: #B392F0\"> ) <\/span><span style=\"color: #F97583\">THEN<\/span><span style=\"color: #B392F0\"> territory_group<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">WHEN<\/span><span style=\"color: #B392F0\"> country_region_code <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;CA&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">AND<\/span><span style=\"color: #B392F0\"> territory_name <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;Canada&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">THEN<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;Canada&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">WHEN<\/span><span style=\"color: #B392F0\"> country_region_code <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;CA&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">AND<\/span><span style=\"color: #B392F0\"> territory_name <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;California&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">THEN<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;United States of America&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">WHEN<\/span><span style=\"color: #B392F0\"> country_region_code <\/span><span style=\"color: #F97583\">IN<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #FFAB70\">&#39;US&#39;<\/span><span style=\"color: #B392F0\">, <\/span><span style=\"color: #FFAB70\">&#39;WA&#39;<\/span><span style=\"color: #B392F0\">) <\/span><span style=\"color: #F97583\">THEN<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;United States of America&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ELSE<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;Undefined&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">END<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> country<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> bronze.customer <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">DISTINCT<\/span><span style=\"color: #B392F0\"> cu.customer_id,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    CONCAT_WS(<\/span><span style=\"color: #FFAB70\">&#39; &#39;<\/span><span style=\"color: #B392F0\">, cu.first_name, cu.middle_name, cu.last_name) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> customer_name,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    CONCAT_WS(<\/span><span style=\"color: #FFAB70\">&#39; &#39;<\/span><span style=\"color: #B392F0\">, cu.address_line_1, cu.addess_line_2) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">address<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    cu.city,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    cu.state_name <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">state<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ct.country,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    CONCAT_WS(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;, &#39;<\/span><span style=\"color: #B392F0\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        CONCAT_WS(<\/span><span style=\"color: #FFAB70\">&#39; &#39;<\/span><span style=\"color: #B392F0\">, cu.address_line_1, cu.addess_line_2), <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        cu.city, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        cu.state_name, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ct.country<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> full_address,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    cu.start_date,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    cu.end_date,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    cu.is_active<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> bronze.customer cu<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">JOIN<\/span><span style=\"color: #B392F0\"> cte_countries ct<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ON<\/span><span style=\"color: #B392F0\"> ct.country_region_code <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> cu.country_region_code <\/span><span style=\"color: #F97583\">AND<\/span><span style=\"color: #B392F0\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">       ct.territory_group     <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> cu.territory_group     <\/span><span style=\"color: #F97583\">AND<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">       ct.territory_name      <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> cu.territory_name<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS silver.product;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.product\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT \n    p.product_id, \n    p.product,\n    s.product_subcategory,\n    c.product_category,\n    p.color,\n    p.size,\n    p.product_line,\n    p.class,\n    p.style,\n    p.product_model_id\nFROM bronze.product p\nJOIN bronze.product_subcategory s\n    ON s.product_subcategory_id = p.product_subcategory_id\nJOIN bronze.product_category c\n    ON c.product_category_id = s.product_category_id<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.product;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.product<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.product_id, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.product,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    s.product_subcategory,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    c.product_category,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.color,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.size,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.product_line,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.class,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.style,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    p.product_model_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> bronze.product p<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">JOIN<\/span><span style=\"color: #B392F0\"> bronze.product_subcategory s<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ON<\/span><span style=\"color: #B392F0\"> s.product_subcategory_id <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> p.product_subcategory_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">JOIN<\/span><span style=\"color: #B392F0\"> bronze.product_category c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ON<\/span><span style=\"color: #B392F0\"> c.product_category_id <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> s.product_category_id<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS silver.sales;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.sales\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT\n    d.sales_order_id,\n    d.sales_order_detail_id,\n    d.sales_detail_item,\n    d.items_per_order,\n    h.order_date,\n    h.ship_date,\n    h.due_date,\n    h.customer_id, \n    d.product_id,\n    d.order_qty,\n    d.unit_price,\n    d.percentage_discount,\n    c.standard_cost AS unit_cost\nFROM bronze.sales_order_detail d\nJOIN bronze.sales_order_header h\n    ON h.sales_order_id = d.sales_order_id\nJOIN bronze.product_cost_history c\n    ON c.product_id = d.product_id AND\n       h.order_date >= c.start_date AND\n       (h.order_date &lt;= c.end_date OR c.is_active = 1)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.sales;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.sales<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.sales_order_id,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.sales_order_detail_id,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.sales_detail_item,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.items_per_order,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    h.order_date,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    h.ship_date,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    h.due_date,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    h.customer_id, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.product_id,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.order_qty,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.unit_price,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    d.percentage_discount,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    c.standard_cost <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> unit_cost<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> bronze.sales_order_detail d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">JOIN<\/span><span style=\"color: #B392F0\"> bronze.sales_order_header h<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ON<\/span><span style=\"color: #B392F0\"> h.sales_order_id <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> d.sales_order_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">JOIN<\/span><span style=\"color: #B392F0\"> bronze.product_cost_history c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">ON<\/span><span style=\"color: #B392F0\"> c.product_id <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> d.product_id <\/span><span style=\"color: #F97583\">AND<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">       h.order_date <\/span><span style=\"color: #F97583\">&gt;=<\/span><span style=\"color: #B392F0\"> c.start_date <\/span><span style=\"color: #F97583\">AND<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">       (h.order_date <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #B392F0\"> c.end_date <\/span><span style=\"color: #F97583\">OR<\/span><span style=\"color: #B392F0\"> c.is_active <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">1<\/span><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS silver.tax_and_freight;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.tax_and_freight\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT\n    *\nFROM bronze.sales_order_header<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.tax_and_freight;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> silver.tax_and_freight<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> bronze.sales_order_header<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.fact_tax_and_freight;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.fact_tax_and_freight\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT * FROM silver.tax_and_freight<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.fact_tax_and_freight;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.fact_tax_and_freight<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> silver.tax_and_freight<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.fact_sales;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.fact_sales\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT * FROM silver.sales<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.fact_sales;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.fact_sales<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> silver.sales<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.dim_customer;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.dim_customer\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT * FROM silver.customer<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_customer;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_customer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> silver.customer<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.dim_product;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.dim_product\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT * FROM silver.product<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_product;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_product<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> silver.product<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.aux_sales_order;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.aux_sales_order\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT DISTINCT sales_order_id FROM silver.sales<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.aux_sales_order;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.aux_sales_order<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT DISTINCT<\/span><span style=\"color: #B392F0\"> sales_order_id <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> silver.sales<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.dim_date;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.dim_date\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT\n  d as date,\n  year(d)  AS year,\n  month(d) AS month,\n  element_at(\n    array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),\n    month(d)\n  ) AS month_name,\n  day(d)   AS day\nFROM (\n  SELECT explode(\n    sequence(\n      to_date('2022-01-01'),\n      to_date(concat(year(current_date()), '-12-31')),\n      interval 1 day\n    )\n  ) AS d\n) t\nORDER BY d;\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_date;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_date<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  d <\/span><span style=\"color: #F97583\">as<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">date<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  year(d)  <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">year<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  month(d) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">month<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  element_at(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">array<\/span><span style=\"color: #B392F0\">(<\/span><span style=\"color: #FFAB70\">&#39;Jan&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Feb&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Mar&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Apr&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;May&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Jun&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Jul&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Aug&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Sep&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Oct&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Nov&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Dec&#39;<\/span><span style=\"color: #B392F0\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    month(d)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> month_name,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  day(d)   <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">day<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  <\/span><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> explode(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">sequence<\/span><span style=\"color: #B392F0\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      to_date(<\/span><span style=\"color: #FFAB70\">&#39;2022-01-01&#39;<\/span><span style=\"color: #B392F0\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      to_date(<\/span><span style=\"color: #B392F0\">concat<\/span><span style=\"color: #B392F0\">(year(current_date()), <\/span><span style=\"color: #FFAB70\">&#39;-12-31&#39;<\/span><span style=\"color: #B392F0\">)),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      interval <\/span><span style=\"color: #F8F8F8\">1<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">day<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">) t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">ORDER BY<\/span><span style=\"color: #B392F0\"> d;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DROP MATERIALIZED LAKE VIEW IF EXISTS gold.dim_date;\n\nCREATE MATERIALIZED LAKE VIEW IF NOT EXISTS gold.dim_date\nTBLPROPERTIES (delta.enableChangeDataFeed = true)\nAS\nSELECT\n  d as date,\n  year(d)  AS year,\n  month(d) AS month,\n  element_at(\n    array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),\n    month(d)\n  ) AS month_name,\n  day(d)   AS day\nFROM (\n  SELECT explode(\n    sequence(\n      to_date('2022-01-01'),\n      to_date(concat(year(current_date()), '-12-31')),\n      interval 1 day\n    )\n  ) AS d\n) t\nORDER BY d;\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">DROP<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_date;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">CREATE<\/span><span style=\"color: #B392F0\"> MATERIALIZED LAKE VIEW <\/span><span style=\"color: #F97583\">IF<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">NOT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">EXISTS<\/span><span style=\"color: #B392F0\"> gold.dim_date<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">TBLPROPERTIES (delta.enableChangeDataFeed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> true)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">AS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  d <\/span><span style=\"color: #F97583\">as<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">date<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  year(d)  <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">year<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  month(d) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">month<\/span><span style=\"color: #B392F0\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  element_at(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">array<\/span><span style=\"color: #B392F0\">(<\/span><span style=\"color: #FFAB70\">&#39;Jan&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Feb&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Mar&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Apr&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;May&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Jun&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Jul&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Aug&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Sep&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Oct&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Nov&#39;<\/span><span style=\"color: #B392F0\">,<\/span><span style=\"color: #FFAB70\">&#39;Dec&#39;<\/span><span style=\"color: #B392F0\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    month(d)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> month_name,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  day(d)   <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">day<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  <\/span><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> explode(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">sequence<\/span><span style=\"color: #B392F0\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      to_date(<\/span><span style=\"color: #FFAB70\">&#39;2022-01-01&#39;<\/span><span style=\"color: #B392F0\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      to_date(<\/span><span style=\"color: #B392F0\">concat<\/span><span style=\"color: #B392F0\">(year(current_date()), <\/span><span style=\"color: #FFAB70\">&#39;-12-31&#39;<\/span><span style=\"color: #B392F0\">)),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">      interval <\/span><span style=\"color: #F8F8F8\">1<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">day<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">) t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">ORDER BY<\/span><span style=\"color: #B392F0\"> d;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Execute o notebook. As MLVs s\u00e3o criadas. Volte para a \u00e1rea de gerencia da MLVs no Lakehouse e verifique a linhagem que \u00e9 formada. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-1024x549.png\" alt=\"\" class=\"wp-image-1850\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-1024x549.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-300x161.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-768x412.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-1536x823.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-2048x1097.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-21-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Essa vis\u00e3o demonstra a linhagem dos dados o que interfere na atualiza\u00e7\u00e3o das MLVs. O pr\u00f3prio recurso consegue definir as interdepend\u00eancias das tabelas, logo executa o processo de forma sequencial l\u00f3gica. Primeiro executa o processo da Silver e na sequencia o da Gold. Se ainda existir tabelas agregadas como nesta imagem <code>gold.agg_sales<\/code> todas as outras tabelas ir\u00e3o efetuar o refresh primeiro e somente no final ela ser\u00e1 processada.  Esta defini\u00e7\u00e3o \u00e9 feita de forma autom\u00e1tia e auton\u00f4ma. <\/p>\n\n\n\n<p>Al\u00e9m disso, o <code>Optimal Refresh<\/code> decide qual m\u00e9todo ir\u00e1 atualizar determinadas tabelas: Full, Incremental ou NoRefresh quando n\u00e3o tem dados novos na tabela de origem. Muito legal n\u00e3o eh?  <\/p>\n\n\n\n<p>Fonte: <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-engineering\/materialized-lake-views\/refresh-materialized-lake-view#optimal-refresh\">https:\/\/learn.microsoft.com\/en-us\/fabric\/data-engineering\/materialized-lake-views\/refresh-materialized-lake-view#optimal-refresh<\/a>  <\/p>\n\n\n\n<p>Clique em Run e confira neste novo refresh a sequencia de atualiza\u00e7\u00e3o entre as tabelas.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-1024x551.png\" alt=\"\" class=\"wp-image-1852\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-1024x551.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-300x161.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-768x413.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-1536x827.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-2048x1102.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-22-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Linhagem das MLVs durante o refresh<\/figcaption><\/figure>\n\n\n\n<p>Para conferir as execu\u00e7\u00f5es dos refreshes voc\u00ea pode voltar para o lakehouse e ir at\u00e9 o SQL analytics endpoint e executar a query abaixo que tamb\u00e9m est\u00e1 no material do download.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>WITH last_refresh AS (\nSELECT Namespace, MLVName, RefreshTimestamp, RefreshPolicy,\n    TotalRowsProcessed, TotalRowsDropped,\n    ROW_NUMBER () OVER (\n        PARTITION BY MLVName\n        ORDER BY RefreshTimestamp DESC\n    ) AS rn\nFROM dbo.sys_dq_metrics\n)\nSELECT Namespace, MLVName, RefreshTimestamp, RefreshPolicy,\n    TotalRowsProcessed, TotalRowsDropped FROM last_refresh\nWHERE rn=1\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">WITH<\/span><span style=\"color: #B392F0\"> last_refresh <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">Namespace<\/span><span style=\"color: #B392F0\">, MLVName, RefreshTimestamp, RefreshPolicy,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    TotalRowsProcessed, TotalRowsDropped,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ROW_NUMBER () <\/span><span style=\"color: #F97583\">OVER<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">PARTITION<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">BY<\/span><span style=\"color: #B392F0\"> MLVName<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">ORDER BY<\/span><span style=\"color: #B392F0\"> RefreshTimestamp <\/span><span style=\"color: #F97583\">DESC<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ) <\/span><span style=\"color: #F97583\">AS<\/span><span style=\"color: #B392F0\"> rn<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> dbo.sys_dq_metrics<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">SELECT<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">Namespace<\/span><span style=\"color: #B392F0\">, MLVName, RefreshTimestamp, RefreshPolicy,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    TotalRowsProcessed, TotalRowsDropped <\/span><span style=\"color: #F97583\">FROM<\/span><span style=\"color: #B392F0\"> last_refresh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">WHERE<\/span><span style=\"color: #B392F0\"> rn<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">1<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Esta query traz o \u00faltimo refresh para cada MLV juntamente com as informa\u00e7\u00f5es do hor\u00e1rio da ;ultima atualiza\u00e7\u00e3o, o tipo de refresh, full incremental ou noRefresh e as linhas processadas.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-1024x546.png\" alt=\"\" class=\"wp-image-1853\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-1024x546.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-300x160.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-768x409.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-1536x819.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-2048x1091.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-23-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Exemplo da query de checagem dos refreshes das MLVs<\/figcaption><\/figure>\n\n\n\n<p>Volte ao lakehouse e abra o notebook existente <code>nb_03_add_some_data<\/code><\/p>\n\n\n\n<p>Este notebook acrescenta novos dados de 3 dias da base.  <\/p>\n\n\n\n<p>A ideia \u00e9 rodar este notebook para cada data, uma de cada vez, na sequencia efetuar o refresh nas MLVs e checar o coportamento no SQL Endpoint para cada uma das tr\u00eas datas dispon\u00edveis. <\/p>\n\n\n\n<p>Execute o processo inteiro  para primeira data, substitua o dia e rode novamente com a nova data.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>day = \"15\" # Available: 15, 16, 17<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">day <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&quot;15&quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #6B737C\"># Available: 15, 16, 17<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from pyspark.sql.types import (\n    StructType, StructField, IntegerType, StringType,\n    DateType, DoubleType, ShortType, DecimalType\n)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">from<\/span><span style=\"color: #B392F0\"> pyspark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">sql<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">types <\/span><span style=\"color: #F97583\">import<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    StructType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> StructField<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> IntegerType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> StringType<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    DateType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> DoubleType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> ShortType<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> DecimalType<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># sales_order_detail\n\nschema = StructType(&#91;\n    StructField(\"sales_order_id\", IntegerType(), True),\n    StructField(\"sales_order_detail_id\", IntegerType(), True),\n    StructField(\"sales_detail_item\", IntegerType(), True),\n    StructField(\"items_per_order\", IntegerType(), True),\n    StructField(\"order_qty\", ShortType(), True),                 \n    StructField(\"product_id\", IntegerType(), True),\n    StructField(\"unit_price\", DecimalType(19, 4), True),\n    StructField(\"percentage_discount\", DecimalType(19, 4), True),\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(f\"Files\/raw\/sales_order_detail_2026-01-{day}.csv\")\n)\n\ndf.write \\\n    .mode(\"append\") \\\n    .saveAsTable(\"bronze.sales_order_detail\")\n\nprint(f\"{df.count()} new rows written in table bronze.sales_order_detail\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># sales_order_detail<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_detail_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_detail_item&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;items_per_order&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;order_qty&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">ShortType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),                 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;product_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;unit_price&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;percentage_discount&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/sales_order_detail_2026-01-<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">day<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\">.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;append&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.sales_order_detail&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">df.<\/span><span style=\"color: #B392F0\">count<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\"> new rows written in table bronze.sales_order_detail&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2c2c2c;color:#a37ced\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># sales_order_header\n\nschema = StructType(&#91;\n    StructField(\"sales_order_id\", IntegerType(), False),     \n    StructField(\"order_date\", DateType(), True),\n    StructField(\"ship_date\", DateType(), True),\n    StructField(\"due_date\", DateType(), True),\n    StructField(\"customer_id\", IntegerType(), False),\n    StructField(\"tax_amount\", DecimalType(19, 4), False),\n    StructField(\"freight\", DecimalType(19, 4), False),\n&#93;)\n\ndf = (\n    spark.read.format(\"csv\")\n        .option(\"header\", True)\n        .option(\"delimiter\", \";\")\n        .schema(schema)\n        .load(f\"Files\/raw\/sales_order_header_2026-01-{day}.csv\")\n)\n\ndf.write \\\n    .mode(\"append\") \\\n    .saveAsTable(\"bronze.sales_order_header\")\n\nprint(f\"{df.count()} new rows written in table bronze.sales_order_header\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># sales_order_header<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">schema <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> StructType<\/span><span style=\"color: #BBBBBB\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;sales_order_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),     <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;order_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;ship_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;due_date&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DateType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;customer_id&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">IntegerType<\/span><span style=\"color: #BBBBBB\">(), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;tax_amount&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">    <\/span><span style=\"color: #B392F0\">StructField<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;freight&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #B392F0\">DecimalType<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F8F8F8\">19<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #BBBBBB\">), <\/span><span style=\"color: #79B8FF\">False<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BBBBBB\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    spark<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">read<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;header&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #79B8FF\">True<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">option<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;delimiter&quot;<\/span><span style=\"color: #BBBBBB\">, <\/span><span style=\"color: #FFAB70\">&quot;;&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">schema<\/span><span style=\"color: #BBBBBB\">(schema)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;Files\/raw\/sales_order_header_2026-01-<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">day<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\">.csv&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">df<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">write <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">mode<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;append&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #BBBBBB\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #B392F0\">saveAsTable<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&quot;bronze.sales_order_header&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #FFAB70\">&quot;<\/span><span style=\"color: #F8F8F8\">{<\/span><span style=\"color: #BBBBBB\">df.<\/span><span style=\"color: #B392F0\">count<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F8F8F8\">}<\/span><span style=\"color: #FFAB70\"> new rows written in table bronze.sales_order_header&quot;<\/span><span style=\"color: #BBBBBB\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-d6ad464\" data-block-id=\"d6ad464\"><p class=\"stk-block-text__text\">Al\u00e9m das funcionalidades demonstradas ainda \u00e9 poss\u00edvel agendar as atualiza\u00e7\u00f5es di\u00e1rias, hor\u00e1rias, mensais assim como todos artefatos e tamb\u00e9m \u00e9 poss\u00edvel configurar o <code>environment<\/code> do Spark.<\/p><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"548\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-1024x548.png\" alt=\"\" class=\"wp-image-1856\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-1024x548.png 1024w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-300x161.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-768x411.png 768w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-1536x822.png 1536w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-2048x1097.png 2048w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-24-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Conclus\u00e3o  <\/h3>\n\n\n\n<p>As vistas do lago materializadas nesta demo mostraram-se promissores recursos para a stack de engenharia de dados moderna, facilitando inclusive a migra\u00e7\u00e3o de projetos com abordagem semelhante com views mas que por venturar tem problemas com perfomance. Uma view materializada pode ser usada como uma fonte de modelos sem\u00e2nticos em Direct Lake, modo que elimina a necessidade de refresh do modelo e que possui \u00f3tima experi\u00eancia no front end dos relat\u00f3rios.  <\/p>\n\n\n\n<p>Este artigo tamb\u00e9m est\u00e1 dispon\u00edvel em v\u00eddeo <a href=\"https:\/\/youtu.be\/vxMdKQ-1ABs\">aqui<\/a>.<\/p>\n\n\n\n<p>Confira a <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-engineering\/materialized-lake-views\/overview-materialized-lake-view\">documenta\u00e7\u00e3o oficial<\/a>.<\/p>\n\n\n\n<p>Me siga nas redes sociais abaixo, um forte abra\u00e7o e at\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Neste v\u00eddeo e artigo demonstro como utilizar a vista do lago materializada do Microsoft Fabric. Este recurso ainda em Preview (janeiro de 2026) \u00e9 um recurso disruptivo no Microsoft Fabric quando falamos em ingest\u00e3o e tratamento entre camadas do Lakehouse. Uma view SQL (vis\u00e3o, vista) tradicional nada mais \u00e9 do que uma query, uma instru\u00e7\u00e3o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1859,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_silent-publish":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[50],"tags":[51,52],"class_list":["post-1838","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-fabric","tag-deltatable","tag-notebook"],"blocksy_meta":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/Frame-165-scaled.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/comments?post=1838"}],"version-history":[{"count":7,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1838\/revisions"}],"predecessor-version":[{"id":1861,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1838\/revisions\/1861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/media\/1859"}],"wp:attachment":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/media?parent=1838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/categories?post=1838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/tags?post=1838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}