Press "Enter" to skip to content

Author: Kevin Feasel

Defining “Laziness” in R

Maëlle Salmon, Athanasia Mo Mowinckel, and Hannah Frick are quite studious:

In the programming world, laziness can often be a good thing: it is both a human quality that can motivate automation efforts, and a programming concept that avoids wasting resources such as memory. Now, when reading code or documentation, seeing the word “lazy” can be confusing, because of its polisemy: it carries several meanings. In this post, we will enumerate the different possible definitions of “lazy” in R code.

Read on for a variety of contexts around “lazy,” including lazy evaluation, lazy database queries, lazy loading, and more.

Comments closed

Building Sparklines in R Shiny

Osheen MacOscar needs a series of tiny visuals:

All of the plots from this package use the sparkline function, and we pass the type of chart we want as the type argument (default is line). The function will take a vector or list for the values argument, depending on the type of chart we are creating this can be either data to plot or specifications for the plot.

Click through for a list of the sparkline-esque visuals you can create as well as how you can use the sparkline package and some examples of outputs.

Comments closed

Maintaining a Heap Table in SQL Server

Lori Brown performs maintenance:

I have a customer who let me know that some of their tables had a large amount of unused space in them.  They were wondering if I could get them to release the space.  After doing some investigation, I found that all tables with the huge amount of unused space were heap tables.

Read on to see how this is possible. Lori has a bonus script for us as well.

Comments closed

Microsoft Fabric Permissions Models for Sharing Data with End Users

Jon Vöge builds a list:

Consider the following scenario:

  • I am building a data platform on Microsoft Fabric, using Lakehouses as the primary storage engine.
  • My end users need to consume data from the data platform as users of Power BI reports which connects to data from the Lakehouses, as developers of ad hoc models and report using data from the Lakehouses, and through ad hoc SQL queries on the Lakehouses.
  • I want to use DirectLake for Power BI reports to take advantage of frequency data ingestion and transformation, and improve the actionability of my reports.
  • My data is sensitive, and users, regardless of whether they consume reports or develop their own, need to be restricted by Row Level Security to only see some of the data.

Read on for eight different approaches to the problem and Jon’s thoughts on each approach.

Comments closed

The Challenge of TDE in PostgreSQL

Bruce Momjian shares an update:

I first blogged about Transparent Data Encryption (tde) in 2019, which was more thoroughly analyzed in a blog post in 2023. An email exchange in December 2024 summarized the most up-to-date status of this feature:

When I started focusing on tde, it was going to require changes to buffer reads/writes, wal, and require a way to store secret keys. I thought those changes would be acceptable given tde’s security value. Once file I/O changes were required, I think the balance tilted to tde requiring too many code changes given its security value (not policy compliance value).

Read on for Bruce’s take now. Coming from the SQL Server world, where TDE has been in the product since 2008, I generally agree that there are better ways to ensure regulatory compliance. It’s not like TDE is actively harmful or anything, but considering that all of the relevant keys and certificates need to be on the local server to begin with, this prevents a limited number of situations from exposing your data, and there tend to be less resource-intensive alternatives for those situations.

Comments closed

Point in Time Database Restoration in SQL Server

Andy Brownsword rolls back the clock:

A few weeks ago I demonstrated the simplicity of performing point-in-time database restored in Azure Managed Instance. Whilst that has a lovely front-end, it can be just as easy with a proc call on your traditional SQL instance.

Let’s see how to use two open source tools to achieve this simplicity.

Click through for Andy’s solution. I would also make mention of Minion Backup, which does a great job of the database backup portion and about 90% of the database restoration portion well.

Comments closed

Failover Groups in Azure SQL Database

Mika Sutinen looks at some interesting functionality:

One of the interesting features in Azure SQL Database is the Failover Groups. It allows you to manage replication of an Azure SQL database, or group of databases, to another logical server. The reason I’ve bolded the manage replication is, that the replication itself is handled by active geo-replication, which is also a feature of Azure SQL Database.

Read on to see how these are different and why you might want to use failover groups.

Comments closed

Error Code 0x851A0043 on SQL Server 2022 Updates

Ben Johnston runs into an error:

I’ve been working in the Azure space for the last few years and less with full server installations. Azure leaves file locations out of my control, but I recently had a client upgrading an on-prem server to SQL 2022.It was a fresh installation on a new VM. I installed SQL, restored all the data, then I moved files to their optimal locations. This was a fresh installation of SQL Server and I wanted to move all of the data files, log files and tempdb files to their own drives. I also wanted to move the system databases. The documentation cautions that cumulative updates (CU) could fail if a specific registry key isn’t updated after moving the master files, so I wanted to test this before I spent too much time configuring the server.

An excerpt of that warning follows here.

Click through for the warning, as well as how to fix the problem.

Comments closed

Dynamic Retrieval of Microsoft Fabric Item IDs

Paul Andrew takes a peek:

When building dynamic pipelines and other artifacts in Microsoft Fabric we are currently forced to reference everything using the underlying item IDs, rather than the more useful names (display names).

In the UI, setting a item value is fine when selecting items from the respective drop down lists. But they will of course be static and can’t be changed at runtime. However, as soon as an expression is required (which in the real world, always is) those UI labels change to be the ID values. AKA the item GUIDs in the context of the workspace and wider solution.

Paul has an answer, though it’s not pretty.

Comments closed

Concerns with Azure Data Studio’s Deprecation

Thom Andrews raises a valid concern:

Some of you may, or may not know, Microsoft announced the deprecation of the Azure Data Studio (ADS) on 06 February, with support ending next year on 28 February. For those of using ADS Microsoft recommends migrating to VSCode and using the mssql extension.

Honestly, I’m really concerned about this. I tried the mssql extension for VSCode (mssql going forwards) some time ago, and compared to ADS it was incredibly feature lacking. A lot of stuff I want to do as a DBA was completely missing, so I went straight back to ADS and didn’t look back. I like ADS, and I’ve got good use out of it; especially as (as those who know me well) a Linux user at home, where I can’t use SSMS.

Anyway, I thought “Ok, I’ll give mssql another go, maybe it’s come a long way since I tried last”. Oh boy has it not; at least for someone like myself.

The upshot of Thom’s post is that the mssql extension is definitely not ready for prime time, and there’s going to be an uphill slog to get it, within one year, back to where Azure Data Studio is today. My hope on this is that, because the mssql extension team (who may be the same people as the Azure Data Studio team) doesn’t need to continuously fork and work around changes to Visual Studio Code, that it will allow them to re-use and re-implement relevant code quicker than otherwise. But if not, that’s a tough story to tell.

Comments closed