• Stop Writing the Morning Trading Report, Automate It with AI

    The Morning Ritual Nobody Loves Every morning in retail, somewhere between 8am and 10am, someone pulls yesterday’s sales figures, checks the weather, tries to recall which promotion was running, consults the calendar for bank holidays, paydays, school terms or other significant trading periods and then drafts a few paragraphs for the leadership team. It is usually rushed and almost always takes longer than it should. What if it simply…

    » Read more
  • Using Microsoft Fabric PySpark Notebooks to Combine Different File Formats Together

    Purple Frog Systems consultant Nick Edwards stands in front of a graphic background featuring a modern glass building and hexagonal patterns. He is wearing a black and purple Purple Frog-branded polo shirt. White text on the right reads: ‘Combining File Formats with Microsoft Fabric PySpark Notebooks.

    One of the strengths of Microsoft Fabric is how easily it handles different data formats within a single notebook. Whether your data arrives as a CSV file, a JSON file, an XML file, or anything in between, PySpark (or Python) gives you a consistent way to read, transform, and combine it. This makes Fabric an ideal environment for building data pipelines without relying on complex integrations. In this example, I’ve loaded three completely…

    » Read more
  • How to Run T-SQL in Microsoft Fabric Python Notebooks

    Here at Purple Frog Systems, I’ve been experimenting with pure Python Notebooks rather than PySpark Notebooks for small to medium datasets, due to their super quick start up time and reduced CU consumption for customers with smaller F-SKUs. https://learn.microsoft.com/en-us/fabric/data-engineering/fabric-notebook-selection-guide When scrolling through LinkedIn I came across a Microsoft Blog which allows you to combine T-SQL and Python within…

    » Read more
  • Introducing Dynamic Execution of Fabric Pipelines: The Wait is Over!

    For several years, it has been a limiting factor that Azure Data Factory (ADF) and Azure Synapse Analytics, and more recently Fabric, did not allow dynamic content to be passed into the invoked pipeline name within the Execute Pipeline activity. I’ve blogged about a workaround for this in Azure Synapse Analytics previously here:…

    » Read more
  • How to use T-SQL to Query and Monitor your Microsoft Fabric Capacity App

    The Fabric Capacity App Report has received some mixed reviews regarding its usability. But what if you could query the underlying dataset, load it into a Fabric Lakehouse, and then use standard T-SQL for querying instead. This is possible with the use of a Fabric notebook and Semantic Link or SemPy! Prerequisites: The Microsoft Fabric Capacity Metrics App must be installed in your tenant with the necessary access and reside in a Fabric/Premium…

    » Read more
  • How to call Microsoft Fabric Data Pipelines dynamically using APIs

    The Microsoft Fabric REST APIs allow you to automate Fabric procedures and processes. In this blog post, we’ll focus on a specific API: “Run On Demand Item Job” To dynamically call another data pipeline, we’ll utilise this API within a data pipeline web activity. By passing in the itemId of the data pipeline we want to invoke, we can trigger its execution. You can learn more here:…

    » Read more
  • Automating DAX Measure Formatting in Power BI with Tabular Editor

    Until coming across this piece of code, I often used the DAX formatter (https://www.daxformatter.com/) to format all of my Tabular Model measures. However, if you end up writing a lot of measures in your Tabular Model this can become quite tedious. There is a faster method however. Using Tabular Editor 2 and some basic C# code you can format all of your Tabular model measures at once. Assuming you have Tabular Editor 2 installed on your machine,…

    » Read more
  • Automate Power BI single table refresh using Azure Synapse Analytics and Power BI APIs

    In a blog I posted back in June 2022, I explained how you could trigger a Power BI dataset refresh via Azure Synapse Analytics. https://www.purplefrogsystems.com/2022/06/how-to-trigger-a-power-bi-dataset-refresh-via-azure-synapse-analytics-in-3-simple-steps/ However, what if you just wanted to refresh a select number of tables or objects rather than a full dataset? This might be the case if you are performing intraday loads in your ETL. There…

    » Read more
  • Microsoft Fabric – So how do I build a Data Warehouse without Identity Columns and Merge?

    At the time of writing (29th June 2023) the following T-SQL commands are not supported in a Fabric Data Warehouse. Identity Columns Merge To see the full list of T-SQL limitations please refer to the documentation link below: https://learn.microsoft.com/en-us/fabric/data-warehouse/tsql-surface-area Here at Purple Frog, all of our Data Warehouses are knitted together using surrogate keys to link Dimension tables to Fact tables following the…

    » Read more
  • Excel, CSV and Leading Zeros

    Yes, even at Purple Frog Systems we use Excel! Excel is great for that quick and dirty analysis, but there is nothing worse than opening a CSV file directly with Excel and finding out you’ve lost all of your leading zeros. Take a look at my Sales.csv file Viewed as a CSV in Notepad++ it looks as it should… However viewed directly using Excel… It now looks like I’ve got a sales quantity of 62 for product id 5! To solve…

    » Read more