Press "Enter" to skip to content

Curated SQL Posts

An Introduction to Data Dict

Malte Grosser describes a new project:

A data dictionary can record what each row represents, how values were measured and how tables fit together. Data Dict provides a format for writing this down alongside rules the data should satisfy. Both live in one file, data-dict.yaml. Its command-line tool checks the rules against the data and turns the dictionary into readable documentation.

The open-source project was initiated by Hadley Wickham and is supported by Posit. The format is designed for teams working across R, Python and SQL.

The post combines a high-level description of the Data Dict project, as well as one of the examples in frog jumping. H/T R-Bloggers.

Leave a Comment

Operational Blind Spots in SQL Server Security

Fabiano Amorim offers some advice:

The SQL Server attack pattern is consistent: attackers do not always need a spectacular vulnerability. They often succeed by chaining normal features that were granted too broadly, trusted too much, or monitored too narrowly. 

In this article, I’ll focus on operational blind spots in SQL Server. These are the features DBAs use every day to keep SQL Server healthy: linked servers, traces, Dynamic Management Views, Extended Events, and session-management commands such as KILL.

These tools, while necessary, also create visibility, automation, and trust paths that attackers can abuse after compromising a low-privileged application account or a local database owner. 

Because of this, a SQL Server DBA should know the answer to the following questions at all times: where am I exposed, what should I monitor, and what should I change first? In this article, you’ll learn the answers to all three.

Click through for the advice.

Leave a Comment

Users, Licenses, and Guest Access in Microsoft Fabric

Paul Turley manages a tenant:

Fabric doesn’t have its own separate licensing screen — you assign every license, Fabric included, from the Microsoft 365 admin center, the same place you’d manage Exchange or Teams. Easy to miss if you came into this world through the Fabric admin portal. Save yourself a search: bookmark the Microsoft 365 admin center alongside the Fabric admin portal, since you’ll need both within your first week.

Click through for some more tips and tricks around user management in Microsoft Fabric.

Leave a Comment

Building Business versus Data Apps in Microsoft Fabric

Soheil Bakhshi builds an app:

While building that application, I came across a few gotchas and limitations around its architecture. But there is also another Fabric Apps pattern that takes a quite different approach. Instead of creating an operational database, it uses the relationships, measures and business logic we already have in a Power BI semantic model.

Microsoft calls this the Data App template. In this article, I compare it with the operational pattern from my previous exercise, which I refer to as a Business App. They both run on Fabric Apps, but what happens underneath is different. Their security requirements, sharing model and licensing are different too. So, let’s go through what I tested, what caught me out, and where I think each pattern makes sense.

Read on to learn more.

Leave a Comment

A Medallion Architecture Primer

Andy Brownsword takes us through a concept:

Medallion architecture is the go-to for handling analytical data, particularly with the prominence of lakehouses in Databricks and Fabric.

Whilst the layers are well defined, their definitions don’t tell you where particular tasks belong. So here I wanted to present my view from a more practical perspective of what goes into each layer.

What I’ve found interesting is that, despite almost everyone agreeing on the rules of what goes where, you can easily get into debates with other data architects and lakehouse practitioners once you start asking concrete questions around specific datasets and specific levels of transformation. The edges between silver and gold get really fuzzy.

Leave a Comment

Managing Resources via Azure Cloud Shell

Jordan Boich isn’t afraid of the command line:

As a DBA or any data professional, it is becoming more valuable and vital to have a well rounded understanding of your data estate and environment. However, sometimes it can be a bit cumbersome, especially when connecting to Azure resources via PowerShell. You have to fumble with authentication, connection cmdlets and more, which can be a bit discouraging to use at times.

There are some interesting and useful tools to help circumvent that overhead and manage your Azure resources. Azure Cloud Shell is a great quick tool to use if you want to have a lightweight, and easily accessible way to help manage and administer your Azure resources.

Read on to see how you can connect and some of the things you can do with it. You also get your choice of bash versus PowerShell.

Leave a Comment

Clustering in Fabric Data Warehouse

Louis Davidson does some exploring:

Clustering is one of the data terms that could not have been created by a database design person. Why? Because it has multiple meanings. In PostgreSQL it means the same thing as an instance in SQL Server. In server architecture it means connecting multiple servers together to form a “single” unit of some form to protect against failure. Then it means an index that determines the physical storage of a table in some manner. This usage of the word means the former.

The weirdest part of using a Fabric Data Warehouse when you first try to look at a query is the lack of indexes. So (currently as of writing this is late 2026), you only have this one tool to affect your performance. The tool allows you to order the data physically in your files so query processing can be reduced when searching the physical file.

Read on for an introduction of how it works, with the caveat that Louis is about two pages ahead of most people in the book.

Leave a Comment

Tracking Microsoft Fabric Capacity Operation Events

Gilbert Quevauvilliers stores some data:

This blog post will explain how to capture the data from real-time events for Fabric Operation Events and store the results in a Lakehouse.

My approach is to use a Python notebook to query Eventhouse.

The reason for this is the Python notebook runs very quickly and because it consumes very little Capacity Units, it is a very efficient way to store the Fabric Operational Events to be analyzed over a long period of time.

Read on for the instructions and the notebook that Gilbert used.

Leave a Comment

Checking archive_mode on pgBackRest

Stefan Fercot shares some advice:

A recent question on the community channels described a difficult situation: a standby had been promoted with archive_mode=off, and restarting the new primary was something the team wanted to avoid. Could they enable archiving on a downstream standby and take a pgBackRest backup from there instead?

Their attempt failed with archive_mode must be enabled, even with archive-mode-check=n. Removing the checks from pgBackRest’s source code allowed their proof of concept to succeed, but was that enough to trust the approach?

My recommendation was to return to a supported configuration, either through a restart or a controlled switchover. But I wanted to take a closer look and see whether archive-mode-check=n might allow the standby-based approach.

Read on for that answer, as well as some of the issues you might run into.

Leave a Comment