Book Image

Data Modeling for Azure Data Services

By : Peter ter Braake
Book Image

Data Modeling for Azure Data Services

By: Peter ter Braake

Overview of this book

Data is at the heart of all applications and forms the foundation of modern data-driven businesses. With the multitude of data-related use cases and the availability of different data services, choosing the right service and implementing the right design becomes paramount to successful implementation. Data Modeling for Azure Data Services starts with an introduction to databases, entity analysis, and normalizing data. The book then shows you how to design a NoSQL database for optimal performance and scalability and covers how to provision and implement Azure SQL DB, Azure Cosmos DB, and Azure Synapse SQL Pool. As you progress through the chapters, you'll learn about data analytics, Azure Data Lake, and Azure SQL Data Warehouse and explore dimensional modeling, data vault modeling, along with designing and implementing a Data Lake using Azure Storage. You'll also learn how to implement ETL with Azure Data Factory. By the end of this book, you'll have a solid understanding of which Azure data services are the best fit for your model and how to implement the best design for your solution.
Table of Contents (16 chapters)
1
Section 1 – Operational/OLTP Databases
8
Section 2 – Analytics with a Data Lake and Data Warehouse
13
Section 3 – ETL with Azure Data Factory

Understanding workload management

A Synapse Analytics SQL pool is a scale-out SQL implementation. Even though it is a scale-out system, resources might be scarce and they are expensive. You need to be able to regulate how your resources are utilized by your queries. Assigning resources to queries is called workload management.

There is a trade-off to consider. A Synapse SQL pool can today execute 128 concurrent queries. If you do have 128 concurrent queries, all available resources are divided over those queries, which means that each query only has a limited number of resources it can use. Resources are a combination of I/O, memory, and CPU. When bulk-loading a columnstore table, you need your query to be able to utilize a lot of memory. With too many concurrent queries, your bulk-load query might not have enough memory. You can assign more resources to a query but that means you can run fewer queries concurrently.

To understand the memory requirement of bulk-load queries, we...