Press "Enter" to skip to content

Day: August 12, 2025

Using Python Code in SSIS

Tim Mitchell shoe-horns a language in:

SQL Server Integration Services (SSIS) is a mature, proven tool for ETL orchestration and data movement. In recent years, Python has exploded in popularity as a data movement and analysis tool. Surprisingly, though, there are no native hooks for Python in SSIS. In my experience using each of these tools independently, I’d love to see an extension of SSIS to naturally host Python integrations.

Fortunately, with a bit of creativity, it is possible to invoke Python logic in SSIS packages. In this post, I’ll walk you through the tasks to merge Python and SSIS together. If you want to follow along on your own, you can clone the repo I created for this project.

Honestly, it’s not that surprising. The last time there was significant development on Integration Services was roughly 2012 (unless you include the well-intentioned but barely-functional Hadoop support they added in around 2016). At that point, in the Windows world, Python was not at all a dominant programming language.

Leave a Comment

A Primer on TMDL Security Risks in Power BI

John Kerski gives us the low-down:

The Tabular Model Definition Language (TMDL) provides a simpler way of defining Power BI Semantic Models. Unlike the JSON-based Tabular Model Scripting Language (TMSL), TMDL uses a more accessible tab-based format for specifying DAX measures, relationships, and Power Query code.

Click through for the various ways things could go wrong, as well as how to mitigate those risks.

Mind you, “security risks” is a very broad concept and is not an indictment of the product, but rather something to keep in mind as you attempt to write secure code. For example, did you know that bad guys could potentially access all of your data in your database by using a series of SELECT statements?

Leave a Comment

Thoughts on Index Rebuilds in PostgreSQL

Laurenz Albe shares some advice:

People often ask “How can I automatically rebuild by indexes regularly?” or “When should I rebuild my indexes in PostgreSQL?”. That always gives me the feeling that they want to solve a problem that isn’t there. But the REINDEX statement is certainly there for a reason, and sometimes it is perfectly reasonable to rebuild an index. In this article, I’ll explain when it makes sense to rebuild an index and how you can get the relevant data to make that decision.

Read on to learn more.

Leave a Comment

Customer-Managed Keys in Microsoft Fabric Workspaces

Sumiran Tandon makes an announcement:

We’re excited to share that customer-managed keys (CMK) for Microsoft Fabric workspaces are now available in public preview in all public regions! This expansion makes it easier for customers worldwide to meet compliance requirements and implement robust data protection strategies.

Note: This feature was released in public preview in a limited set of regions earlier this year and here’s the step-by-step guide for setup.

I personally tend not to be a stickler about customer-managed versus Microsoft-managed keys, as your data is encrypted either way. That said, I know that there are environments in which this matters a lot.

Leave a Comment

Tips for Solving SSIS Package Bottlenecks

Andy Brownsword has some advice:

Last time out we started to look at optimising SSIS packages by showing how to identify bottlenecks with a handy script. This time we’re turning insights into action to solve those pain points.

The solutions are grouped into 3 areas: Data Flows, as they do a lot of heavy lifting; the Execute SQL task, which can also be used for transformation and calculations; and finally everything else (because the first two are usually the issue).

Andy has some good advice and plenty of links to prior content around optimizing SSIS performance. One small thing I’d add is architectural: think about whether you can solve the slow part inside SQL Server. If you’re grabbing a huge amount of data from a SQL Server instance and then narrowing it down with filters, it might be a lot faster to transform that into a SQL query with a stronger WHERE clause. But let’s say there’s some small file you’re using to filter, so you need to pull all of the data out of SQL Server to compare against the small file so that you know what you need. Instead of pulling all of the data out of SQL Server or setting up a Lookup component to hit the SQL Server instance for each row in the file, how about loading that file into SQL Server and then writing a query to do the work?

In short, the database engine is typically going to be a much better at performance than an integration layer would be.

Leave a Comment

Creating a Day-Level Slicer in Power BI

Ben Richardson knows what day it is:

Whether you’re tracking daily sales, monitoring customer behaviour, or managing service operations:

Day-level slicers in Power BI give you the precision your reports need.

Power BI offers great flexibility for filtering by year, quarter, or month.

But when daily trends drive your decisions, default settings just aren’t enough.

Read on to see how you can take the normal slicer and make it a bit better for working with dates. And, of course, it also makes sense to have a date dimension to help out with these sorts of things.

Leave a Comment