From 8e2656112ec9452408585d118775254a9021950f Mon Sep 17 00:00:00 2001 From: Anders Swanson Date: Fri, 10 May 2024 14:48:21 -0400 Subject: [PATCH 1/5] synapse guide first draft --- website/docs/guides/synapse-best-practices.md | 202 ++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 website/docs/guides/synapse-best-practices.md diff --git a/website/docs/guides/synapse-best-practices.md b/website/docs/guides/synapse-best-practices.md new file mode 100644 index 00000000000..3f33e15e464 --- /dev/null +++ b/website/docs/guides/synapse-best-practices.md @@ -0,0 +1,202 @@ +--- +title: Up and Running with Azure Synapse on dbt Cloud +id: synapse-best-practices +description: "How to get started with Azure Synapse on dbt Cloud" +displayText: How to get started with Azure Synapse on dbt Cloud +hoverSnippet: How to get started with Azure Synapse on dbt Cloud" +# time_to_complete: '30 minutes' commenting out until we test +icon: 'databricks' +hide_table_of_contents: true +tags: ['Databricks', 'dbt Core','dbt Cloud'] +level: 'Intermediate' +recently_updated: true +--- + +
+ +:::note Glossary of Terms +**ASADSP**: Azure Synapse Analytics Dedicated SQL Pools +**Fabric SQLDW**: Microsoft Fabric Synapse SQL Data Warehouse + +## history & announcement + +At dbt Labs, we’ve always believed in meeting analytics engineers where they are. That’s why we’re so excited to announce that today, analytics engineers within the Microsoft Ecosystem can use dbt Cloud with not only Microsoft Fabric but also Azure Synapse Analytics Dedicated SQL Pools. + +Since the early days of dbt, folks have been interested having MSFT data platforms. Huge shoutout to [Mikael Ene](https://github.com/mikaelene) and [Jacob Mastel](https://github.com/jacobm001) for their efforts back in 2019 on the original SQL Server adapters ([dbt-sqlserver](https://github.com/dbt-msft/dbt-sqlserver) and [dbt-mssql](https://github.com/jacobm001/dbt-mssql), respectively) + +The journey for the Azure Synapse dbt adapter, dbt-synapse, is closely tied to my journey with dbt. I was the one who forked dbt-sqlserver into dbt-synapse in April of 2020. I had first learned of dbt only a month earlier and knew immediately that my team needed the tool. With a great deal of assistance from Jeremy and experts at Microsoft, my team and I got it off the ground and started using it. When I left my team at Avanade in early 2022 to join dbt Labs, I joked that I wasn’t actually leaving the team; I was just temporarily embedding at dbt Labs to expedite dbt Labs getting into Cloud. Two years later, I can tell my team that the mission has been accomplished! Kudos to all the folks who have contributed to the TSQL adapters either directly in GitHub or in the community Slack channels. The integration would not exist if not for you! + +## Fabric Best Practices + +With the introduction of dbt Cloud support for Microsoft Fabric and Azure Synapse Analytics Dedicated SQL Pools, we're opening up new possibilities for analytics engineers in the Microsoft Ecosystem. + +The goal of this blog is to ensure a great experience for both + +- end-user data analysts who rely upon the data products built with dbt and +- the analytics engineers, who should predominately spend time creating and maintaining data products instead of maintaining and spinning up infrastructure +- data engineers who focus on data movement and ingestion into Synapse + +To achieve this goal, this post will cover four main areas + +- Microsoft Fabric: the future of data warehousing in the Microsoft/Azure stack +- strategic recommendations for provisioning Synapse environment +- data modeling in dbt: Synapse style +- Considerations for upstream and downstream of a Synapse-backed dbt project + +With that, let’s dive in! + +## Fabric is the future + +Many data teams currently use Azure Synapse dedicated pools. However, Fabric Synapse Data Warehouse is the future of data warehousing in the Microsoft Ecosystem. Azure Synapse Analytics will remain available for a few more years, but Microsoft’s main focus is on Fabric as we can see in their roadmap and launches. + +Because data platform migrations are complex and time-consuming, it’s perfectly reasonable to still be using dbt with Azure Synapse for the next two years while the migration is under way. Thankfully, if your team already is using ASADSP, transitioning to the new Cloud offering will be much more straightforward than the migration from on-premise databases to the Cloud. + +In addition, if you're already managing your Synapse warehouse with a dbt project, you'll benefit from an even smoother migration process. Your DDL statements will be automatically handled, reducing the need for manual refactoring. + +Bottom line, Fabric is the future of data warehousing for Microsoft customers, and Synapse is will be deprecated at an as-of-yet undeclared End-of-Life. + + There’s undeniable potential offered by Fabric with it’s: + +- fully-separated storage and compute, and +- pay-per-second compute. + +These two things alone greatly simplify the below section on Resource Provisioning + +For more information, see: + +- the official guide: [Migration: Azure Synapse Analytics dedicated SQL pools to Fabric](https://learn.microsoft.com/en-us/fabric/data-warehouse/migration-synapse-dedicated-sql-pool-warehouse). +- this blog about [the Future of Azure Synapse Analytics](https://blog.fabric.microsoft.com/en-us/blog/microsoft-fabric-explained-for-existing-synapse-users/) + +## Resource Provisioning + +Here are some considerations if you’re setting up an environment from scratch. If the infrastructure of multiple Synapse dedicated SQL pools and a Git repo already exist, you can skip to the next section, though a review of the below as a refresher wouldn’t hurt. + +### minimize pools; maximize DWUs + +#### definitions + +- dedicated SQL pools: effectively one data warehouse +- Data warehouse units (DWUs): the size of the cluster + +#### number of pools + +With Synapse, a warehouse is both storage and compute. That is to say, to access data, the cluster needs to be on and warmed up. + +If you only have one team of analytics engineers, you should have two SQL pools: one for development and one for production. If you have multiple distinct teams that will be modeling data in Synapse using dbt, consider using dbt Cloud’s Mesh paradigm to enable cross team collaboration. + +Each should be at the highest tier that you can afford. You should also consider purchasing “year-long reservations” for a steep discount. + +Some folks will recommend looking into scaling up and down pools based on demand. However, I’ve learned from personal experience that this optimization is not a free lunch and will require significant investment to not only build out but maintain. A large enough instance that is on whenever needed, keeps at least half an engineers time free to work on actual data modeling rather than platform maintenance. + +#### DWUs + +The starting tier is `DW100c`, which costs $1.20/hour, has limitations such as only allowing 4 concurrent queries. To add 4 concurrent queries, you must increase the DWH tier. For every increase in 100 `c`'s, you gain an additional 4 concurrent queries. + +If this warehouse is intended to be the single source of truth for data analysts, you should design it to perform for that use case. In all likelihood, that means paying for a higher tier. Just like the above discussed potential for saving money by turning the cluster on and off as needed, paying for a lower tier, introduces another host of problems. If the limitation of 4 concurrent queries becomes a bottleneck, your choice is to either + +- design infrastructure to push the data out of Synapse and into a Azure SQL db or elsewhere +- increase the tier of service paid (i.e. increase the `DWU`s) + +I’m of the opinion that minimizing Cloud spend should not come at the expense of developer productivity — both sides of the equation need to be considered. As such, I advocate predominately for the latter of the above two choices. + +### Deployment Resources + +In the Microsoft ecosystem, data warehouse deployments are more commonly conducted with Azure Data Factory instead of Azure DevOps pipelines or GitHub Actions. We recommend separating dbt project deployments from any ingestion pipeline defined in ADF. + +However, if you must use ADF as the deployment pipeline, it is possible to use dbt Cloud APIs. Running dbt Core within Azure Data Factory can be challenging as there’s no easy way to install and invoke dbt Core, because there’s no easy way to install and run Python. The workarounds aren’t great, for example: Setting up dbt calls via Azure Serverless Functions and invoking them from ADF. + +### access control + +#### permissions for analytics engineers + +:::caution +⚠️ User-based Azure Active Directory authentication is not yet supported in dbt Cloud. As a workaround, consider having a [Service Principal](https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser) made for each contributing Analytics Engineer for use in dbt Cloud + +In the development warehouse, each user should have the following privileges: `EXECUTE`, `SELECT`, `INSERT`, `UPDATE`, and `DELETE`. + +#### service principal permissions + +In addition, a service principal is required for dbt Cloud to directly interact with both the warehouse and your Git service provider (e.g. GitHub or Azure DevOps). + +Only the Service Principal in charge of deployment has the above permissions in production. End users have only `SELECT` access to this environment + +## Model Considerations + +The magic begins when the environments are provisioned and dbt Cloud is connected. + +With dbt on Synapse, you can own the entire data transformation workflow from raw data to modeled data that data analysts and end users rely upon. The end product of which will be documented and tested. + +With dbt Cloud, things are even more streamlined. The dbt Cloud CLI allows developers to build only the models they need for a PR, deferring to the production environment for dependencies. There’s also dbt Explorer, which now has column-level lineage. + +While there are already platform-agnostic best practice guides that still apply for Synapse, there are some additional factors related to data distribution and indexing. + +### distributions & indices + +Working in ASADSP, it is important to remember that you’re working in a [Massively-Parallel Processing (MPP) architecture](https://www.indicative.com/resource/what-is-massively-parallel-processing-mpp/). + +What this means for an analytics engineer working using dedicated SQL pools is that for every table model, it must have an `index` and `distribution` configured. In `dbt-synapse` the defaults are + +- index: `CLUSTERED COLUMNSTORE INDEX` +- distribution `ROUND_ROBIN` + +If you want something different, you can define it like below. For more information, see [dbt docs: configurations for Azure Synapse DWH: Indices and distributions](https://docs.getdbt.com/reference/resource-configs/azuresynapse-configs#indices-and-distributions) + +```sql +{{ + config( + index='HEAP', + dist='ROUND_ROBIN' + ) +}} +SELECT * FROM {{ ref('some_model') }} +``` + +A distribution specifies how the table rows should be stored across the 60 nodes of the cluster. The goal is to provide a configuration that both: + +1. ensures data is split evenly across the nodes of the cluster and +2. minimizes inter-node movement of data + +For example, imagine querying a 100-row seed table in a downstream model. Using `distribution=ROUND_ROBIN` instructs the pool to evenly distribute the rows between the 60 node, which equates to having only one or two rows in each node. This `SELECT`-ing all these an operation that touches all 60 nodes. The end result is that the query will run much slower than you might expect. + +The optimal distribution is `REPLICATE` which will load a full copy of the table to every node. In this scenario, any node can return the 100 rows without coordination from the others. This is ideal for a lookup table which could limit the result set within each node before aggregating each nodes results. + +### limitations + + + +#### more information + +- [Guidance for designing distributed tables using dedicated SQL pool in Azure Synapse Analytics](https://learn.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-distribute) +- [source code for `synapse__create_table_as()` macro](https://github.com/microsoft/dbt-synapse/blob/master/dbt/include/synapse/macros/materializations/models/table/create_table_as.sql) + +## Deployments & Ecosystem + +With the infrastructure in place and the analytics engineers enabled with best practices, the final piece is to think through how a dbt project sits in the larger data stack of your organization both upstream and downstream + +### Upstream + +In dbt, we assume the data has already been ingested into the warehouse raw. This follows a broader paradigm known as Extract-Load-Transform (ELT). The same goes for dbt with Azure Synapse. The goal should be to have the data ingested into Synapse that is as “untouched” as possible from when it came from the upstream source system. It’s common for data teams using Azure Data Factory to continue to imploy an ETL-paradigm where data is transformed before it even lands in the warehouse. We do not recommend this, as it results in critical data transformation living outside of the dbt project, and therefore undocumented. + +If you have not already, engage the central/upstream data engineering team to devise a plan to integrate data extraction and movement in tools such as SSIS and Azure Data Factory with the transformation performed via dbt Cloud. + +### Downstream Consumers (Power BI) + +It is extremely common in MSFT data ecosystem to have significant amounts of data modeling live within Power BI reports and/or datasets. This is ok up to a certain point. + +The correct approach is not to mandate that all data modeling should be done in dbt with `SQL`. Instead seek out the most business critical Power BI datasets and reports. Any modeling done in those reports should be upstreamed into the dbt project where it can be properly tested and documented. + +There should be a continuous effort to take and Power Query code written in PBI as transformation code and to upstream it into the data warehouse where the modeling can be tested, documented, reused by others and deployed with confidence + +## Conclusion + +There’s great opportunity in dbt Cloud today for data teams using Azure Synapse. While Fabric is the future, there’s meaningful considerations when it comes to resource provisioning, model design, and deployments within the larger ecosystem. + +As we look ahead, we're excited about the possibilities that Microsoft Fabric holds for the future of data analytics. With dbt Cloud and Azure Synapse, analytics engineers can be disseminate knowledge with confidence to the rest of their organization. + +
From 2163ec08402e73fef4556181233f9becad1549ef Mon Sep 17 00:00:00 2001 From: Anders Swanson Date: Fri, 10 May 2024 15:06:39 -0400 Subject: [PATCH 2/5] incorrect callout syntax --- website/docs/guides/synapse-best-practices.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/website/docs/guides/synapse-best-practices.md b/website/docs/guides/synapse-best-practices.md index 3f33e15e464..6cb583f1ef2 100644 --- a/website/docs/guides/synapse-best-practices.md +++ b/website/docs/guides/synapse-best-practices.md @@ -14,11 +14,13 @@ recently_updated: true
+## history & announcement + :::note Glossary of Terms **ASADSP**: Azure Synapse Analytics Dedicated SQL Pools -**Fabric SQLDW**: Microsoft Fabric Synapse SQL Data Warehouse -## history & announcement +**Fabric SQLDW**: Microsoft Fabric Synapse SQL Data Warehouse +::: At dbt Labs, we’ve always believed in meeting analytics engineers where they are. That’s why we’re so excited to announce that today, analytics engineers within the Microsoft Ecosystem can use dbt Cloud with not only Microsoft Fabric but also Azure Synapse Analytics Dedicated SQL Pools. @@ -109,8 +111,9 @@ However, if you must use ADF as the deployment pipeline, it is possible to use d #### permissions for analytics engineers -:::caution +:::caution ⚠️ User-based Azure Active Directory authentication is not yet supported in dbt Cloud. As a workaround, consider having a [Service Principal](https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser) made for each contributing Analytics Engineer for use in dbt Cloud +::: In the development warehouse, each user should have the following privileges: `EXECUTE`, `SELECT`, `INSERT`, `UPDATE`, and `DELETE`. From 6cdb12c4c5b10cdd0823200594c283aca9b1cbfa Mon Sep 17 00:00:00 2001 From: Anders Swanson Date: Thu, 16 May 2024 16:33:13 -0400 Subject: [PATCH 3/5] look at me. i am the devblog now --- .../2024-05-17-synapse-best-practices.md} | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) rename website/{docs/guides/synapse-best-practices.md => blog/2024-05-17-synapse-best-practices.md} (97%) diff --git a/website/docs/guides/synapse-best-practices.md b/website/blog/2024-05-17-synapse-best-practices.md similarity index 97% rename from website/docs/guides/synapse-best-practices.md rename to website/blog/2024-05-17-synapse-best-practices.md index 6cb583f1ef2..af5d3395fde 100644 --- a/website/docs/guides/synapse-best-practices.md +++ b/website/blog/2024-05-17-synapse-best-practices.md @@ -1,18 +1,16 @@ --- title: Up and Running with Azure Synapse on dbt Cloud -id: synapse-best-practices description: "How to get started with Azure Synapse on dbt Cloud" -displayText: How to get started with Azure Synapse on dbt Cloud -hoverSnippet: How to get started with Azure Synapse on dbt Cloud" -# time_to_complete: '30 minutes' commenting out until we test -icon: 'databricks' -hide_table_of_contents: true -tags: ['Databricks', 'dbt Core','dbt Cloud'] -level: 'Intermediate' -recently_updated: true ---- +slug: synapse-best-practices + +authors: [anders_swanson] -
+tags: ['Synapse', 'Azure','Microsoft', 'dbt Core','dbt Cloud'] +hide_table_of_contents: false + +date: 2024-05-02 +is_featured: true +--- ## history & announcement @@ -111,7 +109,7 @@ However, if you must use ADF as the deployment pipeline, it is possible to use d #### permissions for analytics engineers -:::caution +:::caution ⚠️ User-based Azure Active Directory authentication is not yet supported in dbt Cloud. As a workaround, consider having a [Service Principal](https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser) made for each contributing Analytics Engineer for use in dbt Cloud ::: @@ -201,5 +199,3 @@ There should be a continuous effort to take and Power Query code written in PBI There’s great opportunity in dbt Cloud today for data teams using Azure Synapse. While Fabric is the future, there’s meaningful considerations when it comes to resource provisioning, model design, and deployments within the larger ecosystem. As we look ahead, we're excited about the possibilities that Microsoft Fabric holds for the future of data analytics. With dbt Cloud and Azure Synapse, analytics engineers can be disseminate knowledge with confidence to the rest of their organization. - -
From 48c01005fe916fe285d986d23946c1239aca7fa5 Mon Sep 17 00:00:00 2001 From: Anders Swanson Date: Thu, 16 May 2024 17:09:01 -0400 Subject: [PATCH 4/5] author entry --- website/blog/authors.yml | 9 +++++++++ .../static/img/blog/authors/anders-rain.jpg | Bin 0 -> 113858 bytes 2 files changed, 9 insertions(+) create mode 100644 website/static/img/blog/authors/anders-rain.jpg diff --git a/website/blog/authors.yml b/website/blog/authors.yml index dafde6c6126..70d665ce944 100644 --- a/website/blog/authors.yml +++ b/website/blog/authors.yml @@ -605,3 +605,12 @@ colin_rogers: links: - icon: fa-linkedin url: https://www.linkedin.com/in/ckrogers + +anders_swanson: + image_url: /img/blog/authors/anders-rain.jpg + job_title: Senior Developer Experience Advocate + name: Anders Swanson + organization: dbt Labs + links: + - icon: fa-linkedin + url: https://www.linkedin.com/in/andersswanson diff --git a/website/static/img/blog/authors/anders-rain.jpg b/website/static/img/blog/authors/anders-rain.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87a8f6991ffa6f1c794d9f63c4811bcb2890eeec GIT binary patch literal 113858 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%0AyLyol?P{CSTo_?}G2V98#jtzS|7@9AL|A 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 T2Tvlavfq_lL}(c1_-Fsw5@;Xo literal 0 HcmV?d00001 From 6d170284503f168a30080c6bedba80a639eb1e2a Mon Sep 17 00:00:00 2001 From: Anders Swanson Date: Fri, 17 May 2024 15:57:13 -0400 Subject: [PATCH 5/5] copy edits --- .../blog/2024-05-17-synapse-best-practices.md | 42 +++++++------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/website/blog/2024-05-17-synapse-best-practices.md b/website/blog/2024-05-17-synapse-best-practices.md index af5d3395fde..fe5ebb087dd 100644 --- a/website/blog/2024-05-17-synapse-best-practices.md +++ b/website/blog/2024-05-17-synapse-best-practices.md @@ -1,6 +1,6 @@ --- title: Up and Running with Azure Synapse on dbt Cloud -description: "How to get started with Azure Synapse on dbt Cloud" +description: "Some tips for getting started with Azure Synapse on dbt Cloud" slug: synapse-best-practices authors: [anders_swanson] @@ -8,24 +8,18 @@ authors: [anders_swanson] tags: ['Synapse', 'Azure','Microsoft', 'dbt Core','dbt Cloud'] hide_table_of_contents: false -date: 2024-05-02 +date: 2024-05-17 is_featured: true --- -## history & announcement - -:::note Glossary of Terms -**ASADSP**: Azure Synapse Analytics Dedicated SQL Pools - -**Fabric SQLDW**: Microsoft Fabric Synapse SQL Data Warehouse -::: - -At dbt Labs, we’ve always believed in meeting analytics engineers where they are. That’s why we’re so excited to announce that today, analytics engineers within the Microsoft Ecosystem can use dbt Cloud with not only Microsoft Fabric but also Azure Synapse Analytics Dedicated SQL Pools. +At dbt Labs, we’ve always believed in meeting analytics engineers where they are. That’s why we’re so excited to announce that today, analytics engineers within the Microsoft Ecosystem can use dbt Cloud with not only Microsoft Fabric but also Azure Synapse Analytics Dedicated SQL Pools (ASADSP). Since the early days of dbt, folks have been interested having MSFT data platforms. Huge shoutout to [Mikael Ene](https://github.com/mikaelene) and [Jacob Mastel](https://github.com/jacobm001) for their efforts back in 2019 on the original SQL Server adapters ([dbt-sqlserver](https://github.com/dbt-msft/dbt-sqlserver) and [dbt-mssql](https://github.com/jacobm001/dbt-mssql), respectively) The journey for the Azure Synapse dbt adapter, dbt-synapse, is closely tied to my journey with dbt. I was the one who forked dbt-sqlserver into dbt-synapse in April of 2020. I had first learned of dbt only a month earlier and knew immediately that my team needed the tool. With a great deal of assistance from Jeremy and experts at Microsoft, my team and I got it off the ground and started using it. When I left my team at Avanade in early 2022 to join dbt Labs, I joked that I wasn’t actually leaving the team; I was just temporarily embedding at dbt Labs to expedite dbt Labs getting into Cloud. Two years later, I can tell my team that the mission has been accomplished! Kudos to all the folks who have contributed to the TSQL adapters either directly in GitHub or in the community Slack channels. The integration would not exist if not for you! + + ## Fabric Best Practices With the introduction of dbt Cloud support for Microsoft Fabric and Azure Synapse Analytics Dedicated SQL Pools, we're opening up new possibilities for analytics engineers in the Microsoft Ecosystem. @@ -60,7 +54,7 @@ Bottom line, Fabric is the future of data warehousing for Microsoft customers, a - fully-separated storage and compute, and - pay-per-second compute. -These two things alone greatly simplify the below section on Resource Provisioning +These two things alone greatly simplify the below section on Resource Provisioning. For more information, see: @@ -119,7 +113,7 @@ In the development warehouse, each user should have the following privileges: `E In addition, a service principal is required for dbt Cloud to directly interact with both the warehouse and your Git service provider (e.g. GitHub or Azure DevOps). -Only the Service Principal in charge of deployment has the above permissions in production. End users have only `SELECT` access to this environment +Only the Service Principal in charge of deployment has the above permissions in production. End users have only `SELECT` access to this environment. ## Model Considerations @@ -135,12 +129,12 @@ While there are already platform-agnostic best practice guides that still apply Working in ASADSP, it is important to remember that you’re working in a [Massively-Parallel Processing (MPP) architecture](https://www.indicative.com/resource/what-is-massively-parallel-processing-mpp/). -What this means for an analytics engineer working using dedicated SQL pools is that for every table model, it must have an `index` and `distribution` configured. In `dbt-synapse` the defaults are +What this means for an analytics engineer working using dedicated SQL pools is that for every table model, it must have an `index` and `distribution` configured. In `dbt-synapse` the defaults are: - index: `CLUSTERED COLUMNSTORE INDEX` - distribution `ROUND_ROBIN` -If you want something different, you can define it like below. For more information, see [dbt docs: configurations for Azure Synapse DWH: Indices and distributions](https://docs.getdbt.com/reference/resource-configs/azuresynapse-configs#indices-and-distributions) +If you want something different, you can define it like below. For more information, see [dbt docs: configurations for Azure Synapse DWH: Indices and distributions](https://docs.getdbt.com/reference/resource-configs/azuresynapse-configs#indices-and-distributions). ```sql {{ @@ -154,31 +148,23 @@ SELECT * FROM {{ ref('some_model') }} A distribution specifies how the table rows should be stored across the 60 nodes of the cluster. The goal is to provide a configuration that both: -1. ensures data is split evenly across the nodes of the cluster and -2. minimizes inter-node movement of data +1. ensures data is split evenly across the nodes of the cluster, and +2. minimizes inter-node movement of data. For example, imagine querying a 100-row seed table in a downstream model. Using `distribution=ROUND_ROBIN` instructs the pool to evenly distribute the rows between the 60 node, which equates to having only one or two rows in each node. This `SELECT`-ing all these an operation that touches all 60 nodes. The end result is that the query will run much slower than you might expect. The optimal distribution is `REPLICATE` which will load a full copy of the table to every node. In this scenario, any node can return the 100 rows without coordination from the others. This is ideal for a lookup table which could limit the result set within each node before aggregating each nodes results. -### limitations - - #### more information - [Guidance for designing distributed tables using dedicated SQL pool in Azure Synapse Analytics](https://learn.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-distribute) - [source code for `synapse__create_table_as()` macro](https://github.com/microsoft/dbt-synapse/blob/master/dbt/include/synapse/macros/materializations/models/table/create_table_as.sql) + ## Deployments & Ecosystem -With the infrastructure in place and the analytics engineers enabled with best practices, the final piece is to think through how a dbt project sits in the larger data stack of your organization both upstream and downstream +With the infrastructure in place and the analytics engineers enabled with best practices, the final piece is to think through how a dbt project sits in the larger data stack of your organization both upstream and downstream. ### Upstream @@ -192,7 +178,7 @@ It is extremely common in MSFT data ecosystem to have significant amounts of dat The correct approach is not to mandate that all data modeling should be done in dbt with `SQL`. Instead seek out the most business critical Power BI datasets and reports. Any modeling done in those reports should be upstreamed into the dbt project where it can be properly tested and documented. -There should be a continuous effort to take and Power Query code written in PBI as transformation code and to upstream it into the data warehouse where the modeling can be tested, documented, reused by others and deployed with confidence +There should be a continuous effort to take and Power Query code written in PBI as transformation code and to upstream it into the data warehouse where the modeling can be tested, documented, reused by others and deployed with confidence. ## Conclusion