Microsoft Fabric Content Hub Update October

Microsoft Fabric Content Hub Update October

Fabric-Overview-Short

Microsoft

by Erwin | Oct 16, 2023

Stay up-to-date with the latest and most valuable content about Microsoft Fabric, all in one place!  From insightful articles and tutorials to engaging videos and community blogs, you’ll find a treasure trove of resources to deepen your understanding.

Latest Community blog posts:

What Happens When You Clone A Fabric Warehouse Table? – Serverless SQL

Flatten Nested JSON in Microsoft Fabric – Turning data into direction (storybi.com)

What does it mean to refresh a Direct Lake Power BI dataset in Fabric? (crossjoin.co.uk)

Tear down walls, no data silos any longer using Microsoft Fabric, and finally, export to Excel will become a breeze - Mincing Data - Gain Insight from Data (minceddata.info)

Does it feel like too much? — DATA GOBLINS (data-goblins.com)

How do you set up your Data Governance in Microsoft Fabric? – Data Ascend (data-ascend.com)

Fabric, Power BI, Power Platform, Data Platform: Pausing a Fabric Capacity - What Does It Actually Mean? (nickyvv.com)

Understanding data temperature with Direct Lake in Fabric – Data – Marc (data-marc.com)

Exploring Direct Lake Framing and warm-up data using Semantic Link in Fabric Notebooks – Data – Marc (data-marc.com)

Microsoft Fabric: setting your spark compute pool size – Reitse's blog (sqlreitse.com)

Microsoft Fabric, capacity usage and a design – Reitse's blog (sqlreitse.com)

Lightening Fast Copy In Fabric Notebook

Fabric Semantic Link and Use Cases

Keep your existing Power BI data and add new data to it using Fabric (crossjoin.co.uk)

Connect Power BI and Spark notebooks with Microsoft Fabric Semantic Link – Seequality

Recommended Microsoft Learn material for Microsoft Fabric - Kevin Chant (kevinrchant.com)

Data Science in Microsoft Fabric - RADACAD

What is OneLake in Microsoft Fabric, and Why You Should Care? - RADACAD

Feel free to leave a comment

Microsoft Fabric Content Hub Update October

Microsoft Fabric Content Hub Update September

Fabric-Overview-Short

Microsoft

by Erwin | Sep 20, 2023

Stay up-to-date with the latest and most valuable content about Microsoft Fabric, all in one place!  From insightful articles and tutorials to engaging videos and community blogs, you’ll find a treasure trove of resources to deepen your understanding.

Feel free to leave a comment

Azure Open AI and Microsoft Fabric

Azure Open AI and Microsoft Fabric

Microsoft

by Erwin | Sep 14, 2023

Get ready for data enrichement in Microsoft Fabric

Azure OpenAI is fun and exciting and we can use it to do amazing stuff. In combination with Spark on Microsoft Fabric or Azure Synapse Analytics, we can transform and generate large amounts of text data and make use of OpenAI’s flexibility in defining the transformation. The SynapseML library that comes pre-installed on all Synapse Spark pools and Fabric workspaces includes an OpenAI module that allows you to perform OpenAI transformations on spark dataframes, enabling OpenAI at scale. Azure OpenAI is fun and exciting and we can use it to do amazing stuff. In combination with Spark on Microsoft Fabric or Azure Synapse Analytics, we can transform and generate large amounts of text data and make use of OpenAI’s flexibility in defining the transformation. 

Together with Floris Berends we had a look into the possibilities and wrote the post below

Requirements

To run this example you need to have:

  • An Azure OpenAI service
  • A model deployment
  • A Microsoft Fabric workspace Alternatively, a Synapse Analytics workspace
  • A Spark Notebook

Extracting text fields from raw social media posts

Let’s say we are scraping social media posts and are interested in some of the details. Usually, scraping text fields results in some pretty messy data. For this example, we are using the Scikit-Learn newsgroups open dataset.

Set up a Spark Dataframe

In order to load the open dataset into a spark dataframe, we first load it into a pandas dataframe. Of course if you are using your own data, you can load the data from anywhere, as long as it fits into a spark dataframe

import pandas as pd
from sklearn.datasets import fetch_20newsgroups
newsgroups = fetch_20newsgroups(subset="train", categories=['talk.politics.misc'])
pd_df = pd.DataFrame(newsgroups["data"], columns=["data"])
df = spark.createDataFrame(pd_df)

Set up our parameters

To prepare the OpenAI transformation, we need to provide the API with a number of connection and configuration parameters. These include the Azure OpenAI service name, the name of the model deployment, and a prompt that will specify our transformation. The parameters can be found in the Azure Portal, on your Azure OpenAI resource. If you have not yet deployed a model, do this now. Note that the prompt specifies what we want the model to do, but also specifies the format in which we want the model to respond. This is crucial in getting reliable results from the model and this is what enables us to use the transformation as part of a pipeline.

openai_service_name = "<YOUR SERVICE NAME>"
openai_deployment_name = "<YOUR DEPLOYMENT NAME>"
openai_key = "<YOUR SERVICE KEY>"
source_content_column = "data"
system_prompt = """
You will read the raw text of an e-mail and extract the senders e-mail
address and subject from the text. You will also list the topics of the email, provide a short one-sentence summary, and output the sentiment of the email. Ensure that the sentiment is one of the following: negative, neutral, positive.

Your response will be in the following format
{{
"EMAILADDRESS": "",
"SUBJECT": "",
"SUMMARY": "",
"SENTIMENT": "",
"TOPICS: []
}}
"""

Set up the prompt column

Because OpenAI needs a prompt in order to generate a completion, we need to setup a prompt column that includes both the instruction (system_prompt) we set up earlier and our data. The way that Azure OpenAI chat completions work, is that you can provide the ‘chat history’ as a message column. This column is what we will use as input for the transformation. Additionally, Azure OpenAI chat completion messages include a ‘role’ parameter. The role specifies who sent the message. In a normal chat interaction, there are 2 roles: the user and the assistant (i.e. the model). However, it is possible to provide a ‘system’ message that will instruct the model how to behave. We will use a ‘system’ message in order to instruct the model on how to transform our data. In order to do this, we need to set up the prompt column in the following way:

  1. A message with the ‘system’ role and our instruction as content.
  2. A message with the ‘user’ role and our data as content.
import pyspark.sql.functions as F

from pyspark.sql.types import ArrayType, StructType, StructField, StringType
df = df.withColumn("prompt", F.udf(
    lambda system_prompt, content: [{"name":"system", "role":"system", "content": system_prompt},{"name":"user", "role":"user", "content": content}],
        ArrayType(
            StructType([
                StructField("name", StringType(),False),
                StructField("role", StringType(),False),
                StructField("content", StringType(),False)
                ]
            )
        )
    )(F.lit(system_prompt),F.col(source_content_column)))

Calling the Azure OpenAI API

Now that we have the input dataframe with the data and prompt just how we want it, we can set up the call to the Azure OpenAI API. Note that Spark will not immediately execute the transformation, but will simply setup the plan for the dataframe. The API will only be called when we actually need the data (e.g. when we save or display the dataframe).

from synapse.ml.cognitive import OpenAIChatCompletion
completion = (
    OpenAIChatCompletion()
        .setSubscriptionKey(openai_key)
        .setDeploymentName(openai_deployment_name)
        .setUrl(f"https://{openai_service_name}.openai.azure.com/")
        .setMessagesCol("prompt")
        .setErrorCol("error")
        .setOutputCol("output")
        .limit(10)
)

Transforming the results

The OpenAIChatCompletion mehthod simply puts the completion results into the output column, but we want to have the results in separate columns. Before we can do this  we need to define the output schema.

output_columns = "EMAILADDRESS,SUBJECT,SUMMARY,SENTIMENT,TOPICS"
prompt_schema = StructType(
                   [StructField(col, StringType(), True)
                      for col in output_columns.split(",")
                   ])
df_result = completion.transform(df.limit(10)).withColumn(
                 "response",
                  F.from_json(
  F.col("output.choices.message.content").getItem(0)
  ,prompt_schema)
                  ).select("response.*","error")

Displaying and Verifying the results

There are a number of things that can go wrong. For any row, errors returned by the API will be put into the error column that you provided by .setErrorCol. We can display the dataframe to inspect the results:

display(df_result)

Microsoft-Fabric-Open-AI

Final

It might seem that this setup is so versatile that you can use it to apply any transformation you desire on any column in any dataset. Although this might not be far from the truth, there are a couple of things you need to consider:

  1. Cost: Azure OpenAI transformations are more expensive then those that do not rely on external APIs (e.g. Spark Native transformation like map(), flatten(), explode(), or using regular expressions and the like).
  2. Complexity: This example applies a transformation with a simple output schema. It might very well be the case that asking a LLM to output data in a very complex schema will not turn out well.
  3. Language: This example applies a transformation that is primarily a language based transformation: extracting and summarizing information that is available as natural language. Using LLMs to apply math-based, logic-based, or code-based transformations might not show reliable results.

 

The main take-away is that using Azure OpenAI to transform text-fields though natural language operations like summarization, description and extraction can be done fast and reliable. We are looking forward to seeing where this technology will take us.

Learn more

Fabric (preview) trial

Data science in Microsoft Fabric

Azure OpenAI for big data

Questions

If you have any further questions, feel free to ask them in the comments below.

Feel free to leave a comment

Microsoft Purview new Experience is coming

Microsoft Purview new Experience is coming

Microsoft

by Erwin | Jun 28, 2023

Get ready for the next enhancement in Microsoft Purview

Get ready for the next enhancement in Microsoft Purview, as it brings a range of exciting new features and capabilities. To ensure the best experience with Purview, it is recommended that you tag your existing Microsoft Purview accounts appropriately.

Mark your Purview accounts with the proper tags

In short, mark each Purview account with the following tags: Name: "Purview Environment," Value: "Production."

In the long story, you have several tag options available to you. The table below outlines the different tags and their purposes:

In all purposes the tag name is "Purview Environment"

Production - This tag signifies that the account is or will be used for cataloging and governance requirements in a production environment. It is a candidate to be selected as the primary account for the tenant.

Pre-production - This tag indicates that the account is or will be used to validate cataloging and governance requirements before making them available in production. It is a candidate to be merged as a domain or can be deleted.

Test - This tag suggests that the account is or will be used for testing capabilities in Microsoft Purview Governance. It is a candidate to be merged as a domain or can be deleted.

Dev - This tag signifies that the account is or will be used to test capabilities or develop custom code and scripts in Microsoft Purview Governance. It is a candidate to be merged as a domain or can be deleted.

Proof Of Concept - This tag indicates that the account is or will be used to test capabilities or develop custom code and scripts in Microsoft Purview Governance. It can be deleted in the future.

Deprecate - This tag is for accounts that were created a while back but are not in use today. They can be deleted in the future.

Create tag

The following instructions will allow you to successfully tag your Purview account(s) with the desired classification:
1. Sign in to the Azure portal using your Azure account credentials.
2. Use the search bar to find and select your Microsoft Purview account.
3. Locate the Tags (edit) section on the left of the Purview account overview page.
4. Click on the Tags (edit) link to open the tags editor.
5. Add a new tag with a Name and Value according to the provided options (e.g., Name: "Purview Environment," Value: "Production").
6. Click on Save to apply the tag to your Purview account.

What's Next!

The next Microsoft Purview enhancement is coming to you in a few weeks. Along with the features you've enjoyed with Microsoft Purview so far, this enhancement will provide these additional capabilities:
Centralized organization-wide data governance that automatically gives you visibility across your Microsoft Cloud.
Configuration and set up is no longer required to capture metadata for Microsoft Cloud - Microsoft Purview is auto-attached to Microsoft Fabric and Azure SQL.
A clean, crisp, and more intuitive user interface to navigate the platform and apps.
These new features will be turned on automatically and added to your existing capabilities.

How can you use our new experience?

These new features will be turned on automatically and seamlessly integrated with your existing capabilities. The new experience will be available once your organization has been enabled. The exact steps to get started will depend on your organization's current structure, and more information will be provided in the coming weeks.

Follow one of these guides below:

More information will be available in the coming weeks.

You can learn more about the enhancements by going to https://learn.microsoft.com/azure/purview/account-upgrades.
I'm looking forward to new the experience with hopefully an even better integration with Microsoft Fabric.
If you have any further questions, feel free to ask them in the comments below.

Feel free to leave a comment

How to enable Microsoft Fabric

How to enable Microsoft Fabric

Microsoft

by Erwin | Jun 12, 2023

Microsoft Fabric

I got some questions from customers that didn’t know how to enable Microsoft Fabric and that they only see Power BI Items and not the new announced Experiences. In this short blog I will explain how you can easily enable Microsoft Fabric.

How to enable Fabric

If you want to try Fabric in your tenant, you need to enable the Fabric features in your Power BI admin portal.

To do, go to https://app.powerbi.com/.

Note: You must be an Power BI administrator

Please note that Microsoft Fabric Capacity(Trial) or Power BI Premium Capacity is required to get started with Microsoft Fabric.

  • Open the Microsoft Fabric admin portal.

Microsoft-Fabric-Admin-portal

  • By default, Microsoft Fabric is disabled (if you do not change the setting, it will be set to ON after July 1st 2023).

Microsoft-Fabric-Enabled

  • You enable Microsoft Fabric for the whole organization or you can just start with a small group(Specify Security Groups). My advice is to start with a small group. Microsoft Fabric is in Public Preview and not ready for Production Environments.
  • It will take up to 15 minutes to deploy these setting, mostly much faster. After that the new experiences will be available.

Microsoft-Fabric-Experiences

  • Select Data Engineering

In the top of the page you can directly, see which experience you use.

Microsoft-Fabric-Data-Engineering-experience

In this case Synapse Data Engineering Experience, check out the logo on the left side and the text behind home?experience 

Start Trial

Have a look to this page how easily it is to get started with a free Trial Fabric (preview)

Guy in the Cube

You also watch the video, who Adam Saxton created:

 

 

Documentation

If you have any questions, I’d love to hear them.
More information about Microsoft Fabric can be found at my Content Hub:

Microsoft Fabric Content Hub

Feel free to leave a comment