Press "Enter" to skip to content

Curated SQL Posts

An Explanation of Fabric Licensing

Paul Turley digs in:

When the Power BI cloud service morphed into the Fabric platform a few years ago, Microsoft introduced very attractive cost and capacity options for small organizations, teams and projects – and its easy to scale-up. This is why Fabric works for both small and huge workloads.

Fabric licensing might look intimidating from the outside, mostly because Microsoft describes it in acronyms. Strip those away and it really boils down to two questions.

Click through for those questions and what it all means.

Leave a Comment

A Decade of Logical Replication in Postgres

Dimitri Fontaine reflects on ten years of functionality:

A long time ago I ran a write-heavy system on a hub and a handful of workers. Each worker took a share of the application traffic and wrote events locally. The hub owned the reference data (customers, plans, prices), pushed it down to the workers, and pulled every worker’s events back up to compute the invoices. The plumbing was Londiste and PgQ: triggers on every table, a queue per node, a ticker, and a Python daemon per hop. It worked, and it was a lot of moving parts to explain to anyone new.

Postgres 10 shipped logical replication in 2017, and 19 is the tenth release that has it. Every release since Postgres 10 has taken a piece of that plumbing and made it a line of SQL.

Click through for a reflection on what’s there and what has changed over the years. This first post in the series covers the hub and worker model.

Leave a Comment

Creating Alerts in Microsoft Fabric

Koen Verbeeck turns on the Bat-signal:

We are building a new data platform with Microsoft Fabric and we’re using the warehouse for our “gold layer”. We don’t have real-time ingestion or analytic requirements, but we have a use case where we want to send an alert if a certain threshold is reached. Ideally, the alert is sent when a SQL query returns a result set.

Click through to see how that’s possible, as well as what kinds of rules, triggers, and conditions you can set.

Leave a Comment

Creating a Security Checklist Based on STIGs

Marlon Ribunal builds a checklist:


Here’s a follow up for our US Department of Defense STIG document. In my previous post, SQL Server Security Hardening Guide Using the DoD STIG Checklist, I walked through how I used the DoD STIG checklist as a starting point for reviewing and hardening a SQL Server environment.

After going through the checklist, I started thinking about what I would actually want to use the next time I perform a security review.

The DoD STIG for SQL Server is a great, solid starting point for establishing your security practices with SQL Server. In fact, it’s also a good template for your own STIG in your organization. So, you may want to create a custom checklist that makes sense from the perspective of your SQL Server environment.

The STIG is detailed, which is a good thing, but I found myself wanting something a little more practical for day-to-day DBA work. Something I could open, work through one item at a time, record what I found, and come back to later without having to navigate through the entire STIG document every time.

Click through to see what Marlon came up with.

Leave a Comment

Contrasting LTAP and HTAP

Paul Andrew notes another convergence of OLTP and OLAP:

At the Data and AI Summit in June this year, Databricks introduced Lake Transactional/Analytical Processing, or LTAP. My first reaction, I’ll admit, was cynicism, just for a change. Every software vendor must invent new names for old things these days. And for those of us who have worked in data architecture long enough to have the grey hair to prove it, like me, this felt very familiar. Hybrid Transactional and Analytical Processing, or HTAP, a term Gartner coined back in 2014, has long advertised bringing operational transactions and analytics “closer together”. In my experience it never really became a strong implementation pattern in data platform deliveries.

Read on to learn how LTAP and HTAP differ, where Databricks and other competitors (like Microsoft) are going in this space, and how much they have yet to do.

Leave a Comment

Vector Comparison in SQL Server 2025

Chad Callihan demonstrates a vector comparison:

Vectors consist of an ordered list of numbers that represent characteristics or meaning captured from data. That data could be words, images, or other files. An AI embedding model is used to analyze the data and translate it into a long list of numbers that becomes that data’s vector embedding. The closer the vector embeddings are to each other, the more closely related the meanings of the data are together.

While vectors are more commonly hundreds or thousands of numbers, we’re going to simplify it and make up three numbers for our example.

Click through for that comparison.

Leave a Comment

Chain-Ladder Reserving Calculations in Python

Christian Lorentzen digs into loss reserving:

Ask a reserving actuary how they run a Chain-Ladder and you’ll usually hear “Excel” or the name of a pricey specialized tool. It turns out a modern dataframe library handles it just as well — in a few lines, for hundreds of companies at once.

We use the CAS loss reserving data, specifically the other liability line of business (LoB): 233 US insurers (“GRNAME”), 10 accident years (1998–2007), paid and incurred losses at every development lag (1-10). We treat 2007 as our reporting year, i.e. we simulate a year-end closing.

Click through for a demonstration and a comparison against R’s ChainLadder package.

Leave a Comment

Dealing with Bias in Data Stories

Cole Nussbaumer Knaflic provides some advice:

Yesterday, a participant in one of our workshops asked a question that I’ve been thinking about ever since. She works with researchers and statisticians, and the idea of telling a story with data can make some of them uncomfortable. Doesn’t telling a story mean choosing a perspective? And doesn’t choosing a perspective introduce bias? Wouldn’t it be more objective to simply show the data and let people draw their own conclusions?

Read on for Cole’s answer. Cole differentiates between “bias” and “perspective,” though I wouldn’t even go that far. Instead, I’d simply make it clear what your biases are. At its core, a bias is a preference for or against something. We normally think of bias as a negative, but that’s not strictly true. I do think it’s important to state where your biases come in, as they can undermine a point or attempt to drive people to a specific conclusion. But bias itself can extend to “I am showing you this information because I believe it will help you in making your decision,” even if that decision isn’t one you necessarily prefer.

Leave a Comment

Shortcuts to Iceberg Tables in Microsoft Fabric

Teo Lachev makes a connection:

Snowflake is an increasingly popular option for data warehousing. One nice Snowflake feature is the ability to configure a table to save its data in Iceberg file format in the Snowflake own managed storage or external storage, including S3, GCS, ADLS Gen 2, and OneLake. As I wrote in the post “Give Me Your Data!”, Fabric supports shortcuts to Iceberg tables, in which case the data is not copied but exposed as a Parquet Delta table in a Fabric lakehouse. This could be useful when building Fabric-centric solutions on top of Snowflake without moving the data.

Iceberg isn’t just a Snowflake thing, though this is certainly helpful if you do have both Snowflake and Fabric.

Leave a Comment

Migrating a Power BI Report between Tenants

Reitse Eskens makes a move:

Before I get started, yes, I’m going to write about Power BI. If you’re not familiar with my work, the long and short of it is that I tend to keep a healthy distance from anything involving semantic models and reports. Why? In one word, pie charts. Sorry if that triggered you.

But every now and again, I need to do work adjacent to this; specifically, when onboarding new clients or helping them migrate things, I have to touch the Power BI stuff too. But rest assured, a lot needs to happen before I’ll actually start creating reports. Many people are more qualified than me to do that.

Click through to see how you can do this through the Fabric/Power BI portal. And if you want to see this made easier, vote up Reitse’s suggestion.

Leave a Comment