• Time Travel in Microsoft Fabric Warehouses

    Have you ever wished you could see what your data looked like last Tuesday? With time travel in Microsoft Fabric Warehouse, you can! Time travel in Microsoft Fabric Warehouse provides the ability to query your data exactly as it existed at any point within the last 30 days, without maintaining separate historical snapshots or copies. Fabric Warehouse is built on Delta Lake, which records every insert, update, and delete as a new version in the…

    » Read more
  • Enforcing NOT NULL in a CTAS

    In this blog I will show you how to use a CTAS to create a table with non-nullable columns. I have a table with the following structure (note all columns are non-nullable): CREATE TABLE [dbo].[Date] ( [Date] DATE NOT NULL, [Day] INT NOT NULL, [Week] INT NOT NULL, [Month] INT NOT NULL, [Quarter] INT NOT NULL, [Year] INT NOT NULL ) GO If I want to create a new version of this table with an additional column called YearMonth, the easiest way to do…

    » Read more
  • Reset Row Number within a Window in SQL

    In this blog I will show you how to reset the row number within a partition window when using the ROW_NUMBER() function in SQL. The following is a sample dataset showing customer subscriptions with start/end dates, the RenewedSubscriptionID represents the subscription that was renewed to start a new subscription, for example SubscriptionID 101 was renewed to create SubscriptionID 102. The goal is to identify the sequence of renewals by customer.…

    » Read more
  • Data Factory pipeline failure with a “null” error message

    Have you ever had this error when running a pipeline in ADF or Synapse? I have now seen this more than once and it can be frustrating to debug the issue. After trying a few different setups in Synapse I have found that the following scenarios all result in the same error: 1. An Until activity inside an If Condition 2. A nested ForEach activity 3. A parameter with “-” in the parameter name For 1 and 2 it is not possible to create…

    » Read more
  • FabCon Real-Time Training Day Review

    FabCon Real-Time Training Day Review

    I recently attended the Fabric Community Conference Europe 2024 in Stockholm, overall it was a really good conference and a great learning experience about all things Fabric. In particular I want to focus on my full day tutorial: Build A Fabric Real-Time Intelligence Solution in One Day, presented by Devang Shah, Matt Gordon and Johan Brattas. As stated in the title, the day was all about real-time intelligence in Fabric and for someone who is…

    » Read more
  • Parameter Overrides in Synapse Workspace Release

    In this blog I will show you how to override pipeline parameter values when releasing a synapse workspace. This blog does not cover the Azure DevOps setup or the setup of the workspace release, it is purely about how to override parameters in the synapse deployment task. By default, the parameter template called “TemplateParametersForWorkspace.json” is used by Synapse, this can be seen in the workspace_publish branch in Repos in…

    » Read more
  • Synapse Data Flow bug

    I recently came across some unexpected output in a dedicated SQL Pool in Azure Synapse Analytics, upon investigation I realised this is as a result of an issue in Data Flows. This blog shows the issue using dummy data and a temporary workaround. At the time of writing (01/03/2024), this is still an issue and has been raised with Microsoft. I will provide a further update once Microsoft have resolved the issue or provided a suitable fix. Below is…

    » Read more
  • Fabric Data Warehouse – ALTER TABLE workaround

    You may be aware that the ALTER TABLE T-SQL command is currently not supported when working with data warehouses in Fabric. This isn’t much of a problem if the table you’re working with is empty, you can simply drop and recreate the table with the new structure. But if you do have data in a table and you want to make a change to the table, how can you do this without the ALTER TABLE command and without losing your data? My solution…

    » Read more
  • @@ROWCOUNT in Synapse Dedicated SQL Pool

    If you’ve been working with dedicated SQL pools in Synapse, you may have noticed that the SQL Server system variable @@RowCount is not supported. I will show you a workaround in synapse to get the same information. First, use the query label option to give your query an identifier that you can use to track it: SELECT * FROM Dim.Date OPTION (LABEL = ‘MyQuery’) You can then use DMVs to find your query using the specified label…

    » Read more
  • ADF Data flow string split

    This is a quick blog showing how to do a string split to get particular items in ADF data flows. Consider the following data where names and colours are combined into the FullName and Colours columns respectively. Note the delimiter for FullName is a space and the delimiter for Colours is a comma. To get each individual item and create new columns for this data use the split function in a Derived column transformation. The syntax for this…

    » Read more