Press "Enter" to skip to content

Curated SQL Posts

Azure SQL DB Lessons Learned

Kendra Little shares a few lessons:

When I think about service objectives, I tend to assume we’re talking about guaranteed uptime, often expressed in some number of 9’s.

But Azure SQL Database has its own language. The best resource I know of to learn that language is the Azure SQL glossary of terms.

Read on for three lessons, two of which are pretty straightforward but the third one is liable to strike without you realizing.

Comments closed

Spark Structured Streaming with Synapse

Ryan Adams builds a demo:

In this post we are going to look at an example of streaming IoT temperature data in Synapse Spark.  I have an IoT device that will stream temperature data from two sensors to IoT hub. We’ll use Synapse Spark to process the data, and finally write the output to persistent storage. Here is what our architecture will look like: 

Click through for the architectural diagram and step-by-step on how to put the demo together.

Comments closed

The Problem with Tornado Graphs

Rita Fainshtein takes a beloved chart and gives it the beating it rightfully deserves:

In the picture above, you can see the execution of the budget on the right (blue), and the budget amount on the left (orange).

This interesting and special graph can be perfectly integrated into any business dashboard.

But does it let you know where the company stands in relation to its budget?

No, it is not. An optimistic view would be challenging, if not misleading.

Click through for more info and alternative ways of displaying this. In fairness, the area where I like seeing tornado charts is a categorical comparison, not a time series comparison, of two things. For example, during a head-to-head matchup in a sporting event, a tornado chart showing relevant stats about each side (or a star player on each side) tends to work reasonably well. Yeah, there are still clearer ways of showing the results in that case, but these have a soft spot in my heart for that specific use case.

Comments closed

The Cost of Ignoring GDPR

Matthew McGiffen looks at the fines:

The biggest fines (both individually and in total) have been levied for improper use of data, with Amazon, WhatsApp, Google and Facebook topping the list. After that though we have fines for insufficient protection of data. In most cases this is where companies have had some form of data breach and the safeguards in place weren’t deemed sufficient. The largest fine in this case was against British Airways who were hacked in 2018 and they received a fine of over 22 million euros for the lack of safeguards. That was calculated as 1.5% of the company’s turnover in 2017.

Read on for a summary of fines by violation type, more detail, and a link to the core data.

Comments closed

Setting CPU Affinity (Correctly)

Taiob Ali does something out of the ordinary:

Setting CPU affinity in SQL Server is not a task you do every day. Rarely are there use cases when you need to do that. I had a recent requirement to do it. We plan to replace a physical server with half of its current CPU. Primarily due to faster CPU and workload moved off of SQL Server to other cloud services. To test, we needed to set the CPU affinity mask in one of our non-production servers. In the research, I learned about the side effect of setting CPU affinity mask, which is nicely explained in this ( by Klaus Aschenbrenner) and this (by Adam Denby) blog post.

Click through to learn more about the process.

Comments closed

Avoiding Dynamic Data Sources Error with OData.Feed

Chris Webb avoids an error altogether:

In my last post I showed how, in many cases, you can avoid the “dynamic data sources” error with OData data sources by taking advantage of query folding. That’s not always possible though and in this post I’ll show you how you can use the Query option of the OData.Feed function to do so instead.

As always, Chris provides some nice detail and good examples.

Comments closed

Using the Native Pipe in R 4.1+

Michael Mayer shows off the native R pipe:

What does the pipe do? It puts the object on its left as the first argument into the function on its right: iris %>% head() is a funny way of writing head(iris). It helps to avoid long function chains like f(g(h(x))), or repeated assignments.

In 2021 and version 4.1, R has received its native forward pipe operator |> so that we can write nice code like this:

Tying pipe syntax all back together, the magrittr pipe %>% was (as I recall) built with the F# pipe |> in mind. In R 4.1 and later, the built-in pipe is |>, as is right and natural in this world. Regardless, do check the comment before trying out this code, as it appear to work for R 4.2 and later, though not 4.1.

Comments closed

Writing Tests with shinytest2

Russ Hyde continues a series on shinytest2:

Here, we will write a simple shiny app (as an R package) and show how to generate tests for this app using {shinytest2}. As discussed in the previous post, {shinytest2} tests your app as if a user was interacting with it in their browser. The tests generated are application-focussed rather than component-focussed and so give some overall guarantees on how the app should behave.

This post is slightly more technical than the last, and assumes that the reader is comfortable with creating and unit-testing packages in R, and with shiny development in general.

Click through to see the code, as well as plenty of explanation.

Comments closed

Reviewing the Power BI Admin Portal

Reza Rad looks at administrative options:

In the world of Power BI, there are some configurations in the Desktop tool and some on the Service. One of these critical configurations is the Tenant Settings of the Power BI administrator panel. Tenant settings have a list of highly important configurations across your Power BI tenant. If you miss configuring the settings properly, it may result in leaking the data, authorizing people who should not be authorized to see reports and many other catastrophic scenarios. In this article and video, you will learn the configurations available in Tenant settings and the recommended options for each. If you want to learn more about Power BI, read the Power BI book from Rookie to Rock Star.

Click through for a video, as well as a detailed description of what’s available in the admin portal.

Comments closed