Azure Synapse Analytics November 2021 Update

Published Nov 30 2021 06:31 PM 11.7K Views
Microsoft

Welcome to the November 2021 update for Azure Synapse Analytics! As we reach the end the end of 2021, we're excited show you all the new things that are now available for you.

 

Table of Contents

Synapse Data Explorer

Working with Databases and Data Lakes

SQL

Apache Spark for Synapse

Machine Learning

Security

Data Integration

Synapse Link

Synapse Data Explorer

Synapse Data Explorer now available in preview

At Microsoft Ignite 2021 we announced the public preview of Azure Synapse data explorer. Azure Synapse data explorer complements the Synapse SQL and Apache Spark analytic engines already available in Synapse Analytics. The Synapse data explorer is optimized for efficient log analytics using powerful indexing technology. It automatically indexes free-text and semi-structured data commonly found in telemetry data, such as logs, time series, events, etc. making it easy for users to perform telemetry analytics in Synapse workspaces.

 

ryanmajidi_0-1638317464904.png

 

Learn more by reading:

Working with Databases and Data Lakes

 

Introducing Lake databases (formerly known as Spark databases)

Previously, Synapse workspaces had a kind of database called a Spark Database. Spark databases had two key characteristics:

  • Tables in Spark databases kept their underlying data in Azure Storage accounts (i.e. data lakes)
  • Tables in Spark databases could be queried by both Spark pools and by serverless SQL pools.

To help make it clear that these databases are supported by both Spark and SQL and to clarify their relationship to data lakes, we have renamed Spark databases to Lake databases. Lake databases work just like Spark databases did before. They just have a new name.

 

In this update, you’ll see the new name being used in the service. For example, the screenshot below shows you how they will show up in Synapse Studio.

ryanmajidi_2-1638317593112.png

 

Lake database designer now available in preview

Until now you’ve had to write code to design databases, tables, etc. In this update, Instead of writing code to design your database, any new Lake databases you create will support a new no-code design experience called the database designer that is built into Synapse Studio.

 

ryanmajidi_3-1638317602600.png

 

Learn more about lake databases.

Database Templates and Database Designer

It can be hard to know where to begin if you want to start using a lake database. It’s unclear what tables or schemas you need. In this month’s update we are making it simpler to kickstart the creation of databases for industry verticals by providing database templates.

 

Database templates leverage decades of industry-specific experience to create an extensible schema to help you design your lake database. The database schemas can be expanded or derived from your own business terminology and taxonomies while Azure Synapse manages connections and storage of the schema. Database templates allow you to easily create the foundation of your enterprise data lake.

 

Database templates can be explored and customized through Azure the no-code database designer inside Synapse Studio. The Database designer gives you the power to create and define schemas using the database templates as a starting point or starting from scratch.

 

Currently, Azure Synapse includes database templates for:

  • Retail
  • Consumer Goods
  • Banking
  • Energy
  • Freight & Logistics
  • Agriculture
  • Energy & Commodity Trading
  • Freight & Logistics
  • Oil & Gas
  • Utilities

We’ll add more industry-specific database templates over time.

 

To get started with the database templates, go to the Knowledge Center gallery in Synapse Studio and browse database templates.

ryanmajidi_5-1638317621934.png

 

Learn more by reading 

SQL

Delta Lake support for serverless SQL is generally available

The Delta Lake format enables data engineers to update big data sets with guaranteed ACID consistency. It is an important part of the big data ecosystem that many enterprises rely on to build their cloud analytics solutions.

 

Azure Synapse has had preview-level support for serverless SQL pools querying the Delta Lake format. This enables BI and reporting tools to access data in Delta Lake format through standard T-SQL. With this latest update, the support is now Generally Available and can be used in production.

ryanmajidi_8-1638317702172.png

 

To read the content of delta lake folder, use the OPENROWSET function and specify the DELTA format and provide the location of the delta lake folder.

 

 

 

 

 

SELECT TOP 10 *
FROM OPENROWSET(
         BULK 'https://mystorage.blob.core.windows.net/delta-lake/covid/',
         FORMAT = 'delta') as rows;

 

 

 

 

 

Find more information in the article How to query Delta Lake files using serverless SQL pools.

Query multiple file paths using OPENROWSET in serverless SQL

Serverless SQL pools in Azure Synapse allow ad-hoc queries through the OPENROWSET statement. So far, you’ve only been able specify only a single file path with OPENROWSET. With this month’s update, you can specify multiple file paths in the BULK parameter of the OPENROWSET statement. To make it even easier, Storage Explorer in Synapse Studio now lets you select multiple file paths by right-clicking to query them with a single SQL script.

 

Working with multiple file paths as shown above will generate the following code that demonstrate how the paths are used with the BULK parameter:

 

 

 

 

 

SELECT TOP 100 * FROM
    OPENROWSET(
        BULK (
        'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=1/data.parquet', 
        'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=1/data2.parquet',   
        'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=1/data3.parquet',   
        'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=1/data4.parquet'
        ),
        FORMAT = 'PARQUET'
    ) AS [result]

 

 

 

 

 

 

saveenr_0-1638338390585.png

Keep in mind that, the file paths DO NOT have to be in the same folder. As the following code shows, each file can be in a different folder.

 

 

 

 

 

SELECT TOP 100 * FROM
    OPENROWSET(
        BULK (            
            'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=1/data.parquet',       
            'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/month=2/day=10/data.parquet',
            'https://<storage_account_name>.dfs.core.windows.net/opendataset/example/year=2021/month=3/data.parquet',
            'https://<storage_account_name>.dfs.core.windows.net/opendataset/example2/data.parquet'
        ),
        FORMAT = 'PARQUET'
    ) AS [result]

 

 

 

 

 

To learn more read Query CSV files

 

Serverless SQL queries can now return up to 200GB of results

We have increased the result set maximum size for Serverless SQL queries to up to 200GB. This is 2.5x the earlier limit of 80GB.

 

Handling invalid rows with OPENROWSET in serverless SQL

Reading raw data in the data lake for insights is not easy when querying files. Often raw data includes invalid rows that will cause your queries to fail. You can now use OPENROWSET to reject these bad rows and place them in a separate file so you can examine those rows later.

 

ryanmajidi_0-1638323102701.png

 

In the OPENROWSET example below, the ERRORFILE_LOCATION and ERROR_DATA_SOURCE options show how to control this behavior.

 

 

 

 

 

SELECT * FROM OPENROWSET(
       BULK '/persons.txt', format='csv'
       , DATA_SOURCE = 'gen2_hn_pass'
       , MAXERRORS = 1
       , FIRSTROW = 2
       , ERRORFILE_LOCATION = 'rejectedrows'
       , ERRORFILE_DATA_SOURCE = 'gen2_hn_pass'
       )
    WITH
       (
              name varchar(100),
              birth_year int
    ) AS r

 

 

 

 

 

To learn more look for reject options in OPENROWSET and external tables.

Apache Spark for Synapse

Accelerate Spark workloads with NVIDIA GPU acceleration

Hardware-accelerated pools are now in public preview for Spark in Synapse. With Hardware-accelerated pools you can speed up big data with NVIDIA GPU-accelerated Spark pools. This can reduce the time necessary to run data integration pipelines, score ML models, and more. This means less time waiting for data to process and more time identifying insights to drive better business outcomes.

 

GPU-accelerated Spark pools provide performance improvements for ETL and ML workloads with built-in support for NVIDIA RAPIDS and integration with Microsoft’s Hummingbird library.

 

ryanmajidi_1-1638323141629.png

 

 

To learn more:

Mount remote storage to a Synapse Spark pool

Mounting remote storage is a common task for developers working with Spark. Previously, there was no direct way to do this in Synapse. Now you can mount/unmount remote storage with new APIs in the mssparkutils package. Mount and attach remote storage (Blob, ADLS Gen2, Azure File Share) to a synapse spark pool in all nodes, including driver and worker nodes. 

 

The Synapse mounting remote storage feature allows you to seamlessly access and manage data without manually entering credentials every time. Once the mount runs successfully, you can navigate data similar to local file system access. 

 

Below is an in example of how to mount a filesystem while taking advantage of Linked Services in Synapse so that authentication details are not in the mounting code.

 

 

 

 

 

mssparkutils.fs.mount(
    "abfss://mycontainer@storageacct1.dfs.core.windows.net",
    "/test",
    {"linkedService":"mygen2account"}
)

 

 

 

 

 

Learn more by reading Introduction to file mount in synapse - Azure Synapse Analytics

 

Natively read & write data in ADLS with Pandas

 

Pandas is an open-source Python package and is widely used for data science and data analysis tasks. It is the most-used Data Frame API in Python and has emerged as a de facto standard used by Python developers and data scientists. The Pandas APIs enables data processing and analysis, starting with simplifying reading data in various formats such as CSV, TSV, JSON, Excel and Parquet files from a plethora of sources.

 

In this month’s update we have added native support for Azure Storage to Pandas. This is a fundamental and critical capability for any Python-based data science or data processing use case in Synapse. Now easily read and write data to/from ADLSgen2 with Pandas.

 

We have added support for read/write using Azure URL formats and FSSPEC URL formats in Azure storage. It works well with Primary storge (one which is attached with Synapse workspace by default) as well as non-primary storage (any other azure storage).

 

We have auto-magic authentication in place which empowers users to use Pandas for primary storage without mentioning any credentials explicitly. For non-primary storage, we support two auth types viz.

  • Using linked service (with authentication options - storage account key, service principal, manages service identity and credentials).
  • Using storage options to directly pass client ID & Secret, SAS key, storage account key and connection string.

ryanmajidi_0-1638323220967.png

 

ryanmajidi_1-1638323225175.png

 

BEFORE – read and write requires special coding

 

 

 

 

 

 # To read data
import fsspec
import pandas
                            
adls_account_name = '' #Provide exact ADLS account name
adls_account_key = '' #Provide exact ADLS account key

fsspec_handle = fsspec.open('abfs://<container>/<path-to-file>', account_name=adls_account_name, account_key=adls_account_key)

with fsspec_handle.open() as f:
     df = pandas.read_csv(f)

# To write data
import fsspec
import pandas

adls_account_name = '' #Provide exact ADLS account name
adls_account_key = '' #Provide exact ADLS account key

data = pandas.DataFrame({'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]})

fsspec_handle = fsspec.open('abfs://<container>/<path-to-file>', account_name=adls_account_name,    account_key=adls_account_key, mode="wt")

with fsspec_handle.open() as f:
data.to_csv(f)

 

 

 

 

 

AFTER – read and write become one-liners natural idioms with dataframes

 

 

 

 

 

#Read Operation
df = pandas.read_csv('abfss://files@synapseamlprodstorage.dfs.core.windows.net/Testdata.csv', storage_options = {'linked_service' : 'AzureDataLakeStorage'})

#Write Operation
data = pandas.DataFrame({'Name':['Azure', 'Bing', 'Office', 'Xbox'], 'Age':[20, 21, 19, 18]})

data.to_csv('abfss://files@synapseamlprodstorage.dfs.core.windows.net/pandas/write/test_2.csv', storage_options = {'linked_service' : 'AzureDataLakeStorage'})

 

 

 

 

 

To learn more read Use Pandas to read/write Azure Data Lake Storage Gen2 data in serverless Apache Spark pool in Synaps...

 

Dynamic allocation of executors for Spark

Dynamic allocation of executors for Apache Spark improves your capacity utilization efficiency. With this release, you can now enable executors' dynamic allocation for Spark at the pool, Spark job, or Notebook session-level. Dynamic allocation allows you to customize how your clusters scale based on workload. 

 

Enabling dynamic allocation allows the job to scale the number of executors within the minimum and the maximum number of executors specified.

 

You can enable the dynamic allocation of executors for pools as shown below.

 

ryanmajidi_0-1638323472781.png

 

You can enable the dynamic allocation of executors for notebooks  via code.

 

 

 

 

 

%%configure -f
{
     "conf" : {
          "spark.dynamicAllocation.maxExecutors" : "6",
          "spark.dynamicAllocation.enable": "true",
           "spark.dynamicAllocation.minExecutors": "2"
     }
}

 

 

 

 

 

To learn more read Automatically scale Azure Synapse Analytics Apache Spark pools. 

Machine Learning

The Synapse ML library

With this update, we have released the Synapse ML library (previously known as MMLSpark). The Synapse ML library is an open-source library that simplifies the creation of massively scalable ML pipelines. Building production-ready distributed machine learning (ML) pipelines can be challenging, even for the most seasoned researcher or engineer. Composing tools from different ecosystems often requires considerable “glue” code, and many frameworks aren’t designed with thousand-machine elastic clusters in mind. The library unifies several existing ML frameworks and new Microsoft algorithms into a single, scalable API that’s usable across Python, R, Scala, and Java.

 

ryanmajidi_1-1638323531223.png

 

Developers can now build large-scale ML pipelines using the Microsoft Cognitive Services, LightGBM, ONNX, and other selected Synapse ML library features. It even includes templates to help users quickly prototype distributed ML systems, such as visual search engines, predictive maintenance pipelines, document translation, and more.

 

To learn more, read:

Getting started with state-of-the-art pre-built intelligent models

The Synapse ML library provides simple APIs for pre-built intelligent services, such as the Microsoft Cognitive Services, to quickly solve business and research challenges on large datasets. It enables developers to embed over 45 different state-of-the-art ML services directly into their systems and databases.

 

In the latest release, we added support for distributed form recognition, conversation transcription, and translation. These ready-to-use algorithms can parse a wide variety of documents, transcribe multi-speaker conversations in real time, and translate text to over 100 different languages.

 

To help you understand how to use it, we’ll walk through an example of using form recognition.

Let’s start with a form that saved as a JPG file in your data lake. The form looks like this:

 

ryanmajidi_2-1638323542164.png

 

To handle this form, you would use code like the following PySpark code

 

 

 

 

 

from pyspark.sql.functions import col, flatten, regexp_replace, explode, create_map, lit

imageDf = spark.createDataFrame([
  ("<replace with your file path>/layout.jpg",)
], ["source",])

analyzeLayout = (AnalyzeLayout()
                 .setLinkedService(cognitive_service_name)
                 .setImageUrlCol("source")
                 .setOutputCol("layout")
                 .setConcurrency(5))

display(analyzeLayout
     .transform(imageDf)
     .withColumn("lines", flatten(col("layout.analyzeResult.readResults.lines")))
     .withColumn("readLayout", col("lines.text"))
     .withColumn("tables", flatten(col("layout.analyzeResult.pageResults.tables")))
     .withColumn("cells", flatten(col("tables.cells")))
     .withColumn("pageLayout", col("cells.text"))
     .select("source", "readLayout", "pageLayout"))

 

 

 

 

 

And this code will give these results:

 

ryanmajidi_3-1638323625398.png

 

 

To learn more read Form Recognizer with Applied AI Service.

Building responsible AI systems with The Synapse ML library

After building a model, it’s imperative that researchers and engineers understand its limitations and behavior before deployment. The Synapse ML library helps developers and researchers build responsible AI systems by introducing new tools that reveal why models make certain predictions and how to improve the training dataset to eliminate biases. The library includes scalable methods that can explain the behavior of any trained machine learning model. In addition to supervised model explainability, the library also introduces several new capabilities for unsupervised responsible AI. With our new tools for understanding dataset imbalance, researchers can detect whether sensitive dataset features, such as race or gender, are over- or under-represented and take steps to improve model fairness. Finally, Azure Synapse Analytics users can take advantage of the private preview of a distributed implementation of Explainable Boosting Machines, which combines the modeling power of gradient-boosted trees with the interpretability of linear additive models. Explainable Boosting Machines allow data scientists to learn high-quality nonlinear models without sacrificing their ability to understand a model’s predictions.

 

STEP 1: Import feature balancer transformer

 

 

 

 

 

from synapse.ml.exploratory import FeatureBalanceMeasure

 

 

 

 

 

STEP 2: Load dataset and define features of interest

 

 

 

 

 

import pyspark.sql.functions as F

features = ["race", "sex"]
label = "income"

df = spark.read.parquet("wasbs://publicwasb@mmlspark.blob.core.windows.net/AdultCensusIncome.parquet")

# Convert the "income" column from {<=50K, >50K} to {0, 1} to represent our binary classification label column
df = df.withColumn(label, F.when(F.col(label).contains("<=50K"), F.lit(0)).otherwise(F.lit(1)))

 

 

 

 

 

STEP 3: Create a FeatureBalanceMeasure transformer. Use setSensitiveCols to set the list of sensitive features. Use setLabelCol to set the binary label column. Then, call the transform method with your dataset. Finally, visualize the resulting dataframe with the show method .

 

 

 

 

 

feature_balance_measures = (
    FeatureBalanceMeasure()
    .setSensitiveCols(features)
    .setLabelCol(label)
    .transform(df)
)
feature_balance_measures.show(truncate=False)

 

 

 

 

 

PREDICT is now GA for Synapse Dedicated SQL pools

The PREDICT function in Azure Synapse (Dedicated SQL pool) aims to empower data professionals to easily deploy machine learning models and collaborate with data scientists. Synapse users can score machine learning models using the familiar T-SQL language without the need to move data outside secure data warehouse boundaries. PREDICT takes an ONNX (Open Neural Network Exchange) model and data as inputs. It is fully integrated in T-SQL language and it can be called multiple times in a single statement or be a part of data modification (through INSERT, UPDATE, DELETE or MERGE statements).

 

ryanmajidi_0-1638323741166.png

 

To try it out and learn more read Machine learning model scoring wizard (preview) for dedicated SQL pools.

 

Simple & scalable scoring with PREDICT and MLFlow for Apache Spark for Synapse

We are simplifying batch scoring at scale in Azure Synapse. The PREDICT keyword on Spark, now in public preview, drastically simplifies the handoff between an ML model producer and a person operationalizing the model for batch scoring (the model consumer). It does this by allowing you to point to MLFlow packaged and registered models in Azure Machine Learning directly from your Synapse workspace. Users can easily run predictions at large scale on Spark on Synapse using a variety of MLFlow model flavors to streamline and simplify the batch scoring process. PREDICT also supports referencing models stored in Azure Data Lake Storage Gen2.

 

The model flavors supported in this public preview are Sklearn, Pytorch, ONNX and TensorFlow, and we continuously work on expanding this list. PyFunc models can also be used with PREDICT. As a user, all you need to do is to point to your model and the data within the secured boundaries of Azure Synapse. Information like model type and expected inputs and outputs are simply picked up from the MLFlow packaging format, which the model producer captured at the time of training the model.

ryanmajidi_1-1638323759662.png

 

To learn more read Score machine learning models with PREDICT in serverless Apache Spark pools.

 

Retail AI solutions

Database templates in Azure Synapse are industry-specific schema definitions that provide a quick method of creating a database known as a lake database. After the data is loaded into your lake database, you can take advantage of pre-built AI and ML models that understand your data based on the lake database template schema. An example is the Retail-Product recommendation solution in the Knowledge Center gallery:

ryanmajidi_0-1638323804038.png

 

When you use this template it creates a notebook you can start using immediately.

ryanmajidi_1-1638323812018.png

 

ryanmajidi_2-1638323821233.png

 

Knowing the shape of the data allows us to provide pre-built industry AI solutions. The AI solution for Retail Product Recommendation provides a robust and scalable recommendation engine for out-of-the-box development in Synapse. No additional data shaping is needed, the solution can work on the data out of the box.  This accelerates productivity of existing or emerging data scientists for solving a specific problem in the Retail domain.

To learn more about the Retail AI solution, use this quick start guide.

 

Security

User-Assigned managed identities now supported in Synapse Pipelines in preview

Previously, linked services used for authentication in Synapse pipelines only supported system-assigned managed identity. Users needed elevated access to the workspace system-assigned managed identity to execute any pipeline in a Synapse workspace.

 

Now you can use user-assigned managed identities in linked services for authentication in Synapse Pipelines and Dataflows. Unlike system-assigned managed identities, user-assigned managed identities are not tied to the lifecycle of a Synapse workspace. This also allows organizations to prevent granting elevated access to the workspace system-assigned managed identity to users, while continuing to benefit from the use of managed identities. Organizations can also prevent users from executing certain pipelines within a workspace by using different user-assigned managed identities or a combination of user and system-assigned managed identities.

 

In order to use user-assigned managed identity in a linked service, you must first create a credential for a user-assigned managed identity. Then create or edit a linked service and choose User-Assigned Managed Identity (Preview) as the authentication method, and select the newly created credential from the Credentials drop-down.

 

Step 1 – create a credential for a user-assigned managed identity

ryanmajidi_3-1638323839152.png

 

Step 2 – create a credential for a user-assigned managed identity

 

ryanmajidi_5-1638323847926.png

 

Step 3 – create a linked service and provide the credential

 

ryanmajidi_1-1638323969013.png

 

 

For more about using User-assigned managed identities (UAMI) and how to correctly configure your UAMI for use in linked services, see Using Credentials in Azure Synapse.

Browse ADLS Gen2 folders in an Azure Synapse Analytics workspace in preview

Directly browsing an ADLS Gen 2 account makes it easy to start analyzing data in the lake. With this update, we’ve added another way to do this. You can now browse an Azure Data Lake Storage Gen2 (ADLS Gen2) container or folder in your Azure Synapse Analytics workspace by connecting to a specific container or folder in Synapse Studio.

 

This is useful If your organization does not grant users the Storage Blob Data Contributor role from Azure RBAC on the storage account, but grants POSIX-like access control lists (ACLs) to the container or specific folders to users' Azure AD identity. In this case you can use this preview feature to browse the ADLS Gen2 container or folder.

 

To use this feature, first connect the ADLS Gen2 container or folder to your Synapse workspace. Right click on Azure Data Lake Storage Gen2 and select Connect to Azure Storage (preview). Once you provide the necessary details and click Connect, you will be able to browse contents of the container or folder by clicking on Attached Containers.  

 

Step 1 – Connect to the Azure Data Lake Storage Gen2 container or folder

 

ryanmajidi_7-1638323867169.png

 

 Step 2 – Connect to the Azure Data Lake Storage Gen2 container or folder

ryanmajidi_8-1638323873735.png

 

 Step 3 – Browse the files and folders in the connected storage container or folder.

 

ryanmajidi_2-1638323988296.png

 

Read more about the capability and its prerequisites at Browse ADLS Gen2 folders (preview) in an Azure Synapse Analytics workspace.

Data Integration

Pipeline Fail activity

When orchestrating data processing jobs in Azure Synapse pipelines, you might occasionally want to throw an error in a pipeline intentionally. For example, a Lookup activity might return no matching data, or a Synapse Spark Notebook activity might finish with an error. Whatever the reason might be, now you can use a Fail activity in a pipeline and customize both its error message and error code.

ryanmajidi_11-1638323898732.png

Within your pipeline logic, you can add a Fail activity with your own custom message and error code that will be returned to the pipeline monitoring backend as a failure. Now, you can view the return code and message from the pipeline monitoring view.

 

To learn more read Execute a Fail activity in Azure Data Factory and Synapse Analytics

Mapping Data Flow gets new native connectors

Data flows allow data transformation using a visual designer instead of writing code. We’ve added two new native mapping data flow connectors for Synapse Analytics. You can now connect directly to your AWS S3 buckets for data transformations and Azure Data Explorer clusters.

 

ryanmajidi_5-1638324015996.pngryanmajidi_7-1638324027762.png

 

With these additional connectors, you can build ETL patterns at Spark scale in a code-free design environment without ever touching the Spark compute. Azure Integration Runtimes allow you to define the Spark environment and provide a serverless Spark compute for your data transformation pipelines.

 

The screenshot below shows an ADX connector used as a source in the data flow to read NYC taxi data.

ryanmajidi_8-1638324046250.png

 

To learn more read Mapping Data Flow gets new native connectors.

Synapse Link

Synapse Link enables near real-time analytics over your operational data with a simple experience and no managed-ETL. By bringing your operational data to Synapse, this feature enables limitless cloud analytics capabilities and eliminates barriers to doing analytics with operational data and business application

ryanmajidi_10-1638324069306.png

 

Synapse Link for Dataverse

Synapse Link for Dataverse accelerates time to insights from your valuable business applications data using Azure Synapse Analytics. Previously available in Preview, Synapse Link for Dataverse is now Generally Available.

 

ryanmajidi_0-1638324178180.png

 

To learn more read Create an Azure Synapse Link for Dataverse with your Azure Synapse Workspace.

 

 

Custom partitions for Synapse link for Azure Cosmos DB in preview

Synapse Link for Azure Cosmos DB uses the Cosmos DB Analytical Store to let Synapse get insights into data from Cosmos DB. Getting the right partitioning for analytical data is critical getting the best performance, but so far there has been no way to control the partitioning used by the Analytical Store. With this update, you can improve query execution times for your Spark queries, by creating custom partitions based on fields frequently used in your queries.

 

To learn more read Support for custom partitioning in Azure Synapse Link for Azure Cosmos DB.

Additional capabilities released recently for Synapse link for Cosmos DB:

  • Synapse Link for serverless accounts
  • Full-fidelity schema for Core (SQL) API accounts.

Synapse Link for SQL Server

Synapse Link is all about accelerating time to insight from the data you already have. Synapse Link for SQL Server extends this to transactional data residing on-premises. You can now apply for the preview of Synapse Link for SQL Server 22.

 

4 Comments
%3CLINGO-SUB%20id%3D%22lingo-sub-3021133%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Synapse%20Analytics%20November%202021%20Update%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3021133%22%20slang%3D%22en-US%22%3E%3CP%3EFive%20more%20industries%20now%20available%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3COL%3E%3CLI%3EAgriculture%3C%2FLI%3E%3CLI%3EEnergy%20%26amp%3B%20Commodity%20Trading%3C%2FLI%3E%3CLI%3EFreight%20%26amp%3B%20Logistics%3C%2FLI%3E%3CLI%3EOil%20%26amp%3B%20Gas%3C%2FLI%3E%3CLI%3EUtilities%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics-blog%2Fnew-azure-synapse-database-templates-in-public-preview%2Fba-p%2F2955431%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics-blog%2Fnew-azure-synapse-database-templates-in-public-preview%2Fba-p%2F2955431%3C%2FA%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-3021664%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Synapse%20Analytics%20November%202021%20Update%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3021664%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%2C%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F10659%22%20target%3D%22_blank%22%3E%40isdataninja%3C%2FA%3E%26nbsp%3Bwe've%20updated%20the%20post%20with%20the%20additional%20industries.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-3020740%22%20slang%3D%22en-US%22%3EAzure%20Synapse%20Analytics%20November%202021%20Update%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3020740%22%20slang%3D%22en-US%22%3E%3CP%3EWelcome%20to%20the%20November%202021%20update%20for%20Azure%20Synapse%20Analytics!%20As%20we%20reach%20the%20end%20the%20end%20of%202021%2C%20we're%20excited%20show%20you%20all%20the%20new%20things%20that%20are%20now%20available%20for%20you.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ETable%20of%20Contents%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId-331765720%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Synapse%20Data%20Explorer%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1022327194%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Synapse%20Data%20Explorer%20now%20available%20in%20preview%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20style%3D%22background-color%3A%20%23ffffff%3B%22%20href%3D%22%23toc-hId-1011824090%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EWorking%20with%20Databases%20and%20Data%20Lakes%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--795630373%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EIntroducing%20Lake%20databases%20(formerly%20known%20as%20Spark%20databases)%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1691882460%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Lake%20database%20designer%20now%20available%20in%20preview%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--115572003%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Database%20Templates%20and%20Database%20Designer%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId--126075107%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20SQL%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-564486367%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Delta%20Lake%20support%20for%20serverless%20SQL%20is%20generally%20available%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--1242968096%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Query%20multiple%20file%20paths%20using%20OPENROWSET%20in%20serverless%20SQL%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1110860013%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Serverless%20SQL%20queries%20can%20now%20return%20up%20to%20200GB%20of%20results%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--696594450%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Handling%20invalid%20rows%20with%20OPENROWSET%20in%20serverless%20SQL%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId-1661835664%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Apache%20Spark%20for%20Synapse%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--16536080%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Accelerate%20Spark%20workloads%20with%20NVIDIA%20GPU%20acceleration%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--1823990543%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Mount%20remote%20storage%20to%20a%20Synapse%20Spark%20pool%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-663522290%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Natively%20read%20%26amp%3B%20write%20data%20in%20ADLS%20with%20Pandas%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--1143932173%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Dynamic%20allocation%20of%20executors%20for%20Spark%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId-1214497941%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Machine%20Learning%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--463873803%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20SynapseML%20library%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-2023639030%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Getting%20started%20with%20state-of-the-art%20pre-built%20intelligent%20models%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-914346508%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Building%20responsible%20AI%20systems%20with%20SynapseML%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1594404878%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20PREDICT%20is%20now%20GA%20for%20Synapse%20Dedicated%20SQL%20pools%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--213049585%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Simple%20%26amp%3B%20scalable%20scoring%20with%20PREDICT%20and%20MLFlow%20for%20Apache%20Spark%20for%20Synapse%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--2020504048%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Retail%20AI%20solutions%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId-337926066%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Security%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--1340445678%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20User-Assigned%20managed%20identities%20now%20supported%20in%20Synapse%20Pipelines%20in%20preview%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1147067155%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Browse%20ADLS%20Gen2%20folders%20in%20an%20Azure%20Synapse%20Analytics%20workspace%20in%20preview%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId--789470027%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Data%20Integration%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1827125525%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Pipeline%20Fail%20activity%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-717833003%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Mapping%20Data%20Flow%20gets%20new%20native%20connectors%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CA%20href%3D%22%23toc-hId--1218704179%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Synapse%20Link%20%3C%2FA%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId-1397891373%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Synapse%20Link%20for%20Dataverse%20%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22%23toc-hId--409563090%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%20Custom%20partitions%20for%20Synapse%20link%20for%20Azure%20Cosmos%20DB%20in%20preview%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH1%20id%3D%22toc-hId-2128717079%22%20id%3D%22toc-hId-2128718972%22%20id%3D%22toc-hId-2128718972%22%20id%3D%22toc-hId-2128718972%22%3ESynapse%20Data%20Explorer%3C%2FH1%3E%0A%3CH3%20id%3D%22toc-hId-1022327194%22%20id%3D%22toc-hId-1022329087%22%20id%3D%22toc-hId-1022329087%22%20id%3D%22toc-hId-1022329087%22%3ESynapse%20Data%20Explorer%20now%20available%20in%20preview%3C%2FH3%3E%0A%3CP%3EAt%20Microsoft%20Ignite%202021%20we%20announced%20the%20public%20preview%20of%26nbsp%3B%3CSTRONG%3EAzure%20Synapse%26nbsp%3Bdata%20explorer%3C%2FSTRONG%3E.%20%3CSTRONG%3EAzure%20Synapse%26nbsp%3Bdata%20explorer%3C%2FSTRONG%3E%20complements%20the%20Synapse%20SQL%20and%20Apache%20Spark%20analytic%20engines%20already%20available%20in%20Synapse%20Analytics.%20The%20Synapse%20data%20explorer%20is%20optimized%20for%20efficient%20log%20analytics%20using%20powerful%20indexing%20technology.%20It%20automatically%26nbsp%3Bindexes%20free-text%20and%20semi-structured%20data%26nbsp%3Bcommonly%26nbsp%3Bfound%20in%20telemetry%20data%2C%20such%20as%20logs%2C%20time%20series%2C%20events%2C%20etc.%20making%20it%20easy%20for%20users%20to%20perform%20telemetry%20analytics%20in%20Synapse%20workspaces.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638317464904.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330714iBDD84099F1A5AEFD%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638317464904.png%22%20alt%3D%22ryanmajidi_0-1638317464904.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELearn%20more%20by%20reading%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fyoutu.be%2FDZEuqhqZ8Tg%3Ft%3D586%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ESynapse%20data%20explorer%20Ignite%20demo%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics%2Fintroducing-azure-synapse-data-explorer-for-log-and-telemetry%2Fba-p%2F2920530%22%20target%3D%22_blank%22%3EIntroducing%20Azure%20Synapse%20data%20explorer%20for%20log%20and%20telemetry%20analytics%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics%2Fgetting-started-with-azure-synapse-data-explorer%2Fba-p%2F2922605%22%20target%3D%22_blank%22%3EGetting%20started%20with%20Azure%20Synapse%20data%20explorer%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fdata-explorer%2Fdata-explorer-overview%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EWhat%20is%20Azure%20Synapse%20Data%20Explorer%3F%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20id%3D%22toc-hId-1011824090%22%20id%3D%22toc-hId-1011825983%22%20id%3D%22toc-hId-1011825983%22%20id%3D%22toc-hId-1011825983%22%3EWorking%20with%20Databases%20and%20Data%20Lakes%3C%2FH2%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--795630373%22%20id%3D%22toc-hId--795628480%22%20id%3D%22toc-hId--795628480%22%20id%3D%22toc-hId--795628480%22%3EIntroducing%20Lake%20databases%20(formerly%20known%20as%20Spark%20databases)%3C%2FH2%3E%0A%3CP%3EPreviously%2C%20Synapse%20workspaces%20had%20a%20kind%20of%20database%20called%20a%20%3CSTRONG%3ESpark%20Database%3C%2FSTRONG%3E.%20Spark%20databases%20had%20two%20key%20characteristics%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ETables%20in%20Spark%20databases%20kept%20their%20underlying%20data%20in%20Azure%20Storage%20accounts%20(i.e.%20data%20lakes)%3C%2FLI%3E%0A%3CLI%3ETables%20in%20Spark%20databases%20could%20be%20queried%20by%20%3CSTRONG%3Eboth%3C%2FSTRONG%3E%20Spark%20pools%20and%20by%20serverless%20SQL%20pools.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ETo%20help%20make%20it%20clear%20that%20these%20databases%20are%20supported%20by%20both%20Spark%20and%20SQL%20and%20to%20clarify%20their%20relationship%20to%20data%20lakes%2C%20we%20have%20renamed%20%3CSTRONG%3ESpark%20databases%3C%2FSTRONG%3E%20to%20%3CSTRONG%3ELake%20databases%3C%2FSTRONG%3E.%20Lake%20databases%20work%20just%20like%20Spark%20databases%20did%20before.%20They%20just%20have%20a%20new%20name.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20update%2C%20you%E2%80%99ll%20see%20the%20new%20name%20being%20used%20in%20the%20service.%20For%20example%2C%20the%20screenshot%20below%20shows%20you%20how%20they%20will%20show%20up%20in%20Synapse%20Studio.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_2-1638317593112.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330716i0409D561616BB97F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_2-1638317593112.png%22%20alt%3D%22ryanmajidi_2-1638317593112.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1691882460%22%20id%3D%22toc-hId-1691884353%22%20id%3D%22toc-hId-1691884353%22%20id%3D%22toc-hId-1691884353%22%3ELake%20database%20designer%20now%20available%20in%20preview%3C%2FH2%3E%0A%3CP%3EUntil%20now%20you%E2%80%99ve%20had%20to%20write%20code%20to%20design%20databases%2C%20tables%2C%20etc.%20In%20this%20update%2C%20Instead%20of%20writing%20code%20to%20design%20your%20database%2C%20any%20new%20Lake%20databases%20you%20create%20will%20support%20a%20new%20no-code%20design%20experience%20called%20the%20%3CSTRONG%3Edatabase%20designer%3C%2FSTRONG%3E%20that%20is%20built%20into%20Synapse%20Studio.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_3-1638317602600.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330717i04A2135468E58E9B%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_3-1638317602600.png%22%20alt%3D%22ryanmajidi_3-1638317602600.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELearn%20more%20about%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fdatabase-designer%2Fconcepts-lake-database%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Elake%20databases.%3C%2FA%3E%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--115572003%22%20id%3D%22toc-hId--115570110%22%20id%3D%22toc-hId--115570110%22%20id%3D%22toc-hId--115570110%22%3EDatabase%20Templates%20and%20Database%20Designer%3C%2FH2%3E%0A%3CP%3EIt%20can%20be%20hard%20to%20know%20where%20to%20begin%20if%20you%20want%20to%20start%20using%20a%20lake%20database.%20It%E2%80%99s%20unclear%20what%20tables%20or%20schemas%20you%20need.%20In%20this%20month%E2%80%99s%20update%20we%20are%20making%20it%20simpler%20to%20kickstart%20the%20creation%20of%20databases%20for%20industry%20verticals%20by%20providing%20%3CSTRONG%3Edatabase%20templates%3C%2FSTRONG%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EDatabase%20templates%3C%2FSTRONG%3E%20leverage%20decades%20of%20industry-specific%20experience%20to%20create%20an%20extensible%20schema%20to%20help%20you%20design%20your%20lake%20database.%20The%20database%20schemas%20can%20be%20expanded%20or%20derived%20from%20your%20own%20business%20terminology%20and%20taxonomies%20while%20Azure%20Synapse%20manages%20connections%20and%20storage%20of%20the%20schema.%20Database%20templates%20allow%20you%20to%20easily%20create%20the%20foundation%20of%20your%20enterprise%20data%20lake.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EDatabase%20templates%20can%20be%20explored%20and%20customized%20through%20Azure%20the%20no-code%20%3CSTRONG%3Edatabase%20designer%3C%2FSTRONG%3E%20inside%20Synapse%20Studio.%20The%20Database%20designer%20gives%20you%20the%20power%20to%20create%20and%20define%20schemas%20using%20the%20database%20templates%20as%20a%20starting%20point%20or%20starting%20from%20scratch.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ECurrently%2C%20Azure%20Synapse%20includes%20database%20templates%20for%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ERetail%3C%2FLI%3E%0A%3CLI%3EConsumer%20Goods%3C%2FLI%3E%0A%3CLI%3EBanking%3C%2FLI%3E%0A%3CLI%3EEnergy%3C%2FLI%3E%0A%3CLI%3EFreight%20%26amp%3B%20Logistics%3C%2FLI%3E%0A%3CLI%3EAgriculture%3C%2FLI%3E%0A%3CLI%3EEnergy%20%26amp%3B%20Commodity%20Trading%3C%2FLI%3E%0A%3CLI%3EFreight%20%26amp%3B%20Logistics%3C%2FLI%3E%0A%3CLI%3EOil%20%26amp%3B%20Gas%3C%2FLI%3E%0A%3CLI%3EUtilities%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EWe%E2%80%99ll%20add%20more%20industry-specific%20database%20templates%20over%20time.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20get%20started%20with%20the%20database%20templates%2C%20go%20to%20the%20Knowledge%20Center%20gallery%20in%20Synapse%20Studio%20and%20browse%20%3CSTRONG%3Edatabase%20templates%3C%2FSTRONG%3E.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_5-1638317621934.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330719iB1F1120A4E687C2A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_5-1638317621934.png%22%20alt%3D%22ryanmajidi_5-1638317621934.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELearn%20more%20by%20reading%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CU%3E%3CA%20href%3D%22https%3A%2F%2Fyoutu.be%2FDZEuqhqZ8Tg%3Ft%3D162%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ELake%20database%20and%20Database%20designer%20Ignite%20Demo%3C%2FA%3E%3C%2FU%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fdatabase-designer%2Fconcepts-database-templates%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ELake%20database%20templates%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH1%20id%3D%22toc-hId--126075107%22%20id%3D%22toc-hId--126073214%22%20id%3D%22toc-hId--126073214%22%20id%3D%22toc-hId--126073214%22%3ESQL%3C%2FH1%3E%0A%3CH2%20id%3D%22toc-hId-564486367%22%20id%3D%22toc-hId-564488260%22%20id%3D%22toc-hId-564488260%22%20id%3D%22toc-hId-564488260%22%3EDelta%20Lake%20support%20for%20serverless%20SQL%20is%20generally%20available%3C%2FH2%3E%0A%3CP%3EThe%20Delta%20Lake%20format%20enables%20data%20engineers%20to%20update%20big%20data%20sets%20with%20guaranteed%20ACID%20consistency.%20It%20is%20an%20important%20part%20of%20the%20big%20data%20ecosystem%20that%20many%20enterprises%20rely%20on%20to%20build%20their%20cloud%20analytics%20solutions.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAzure%20Synapse%20has%20had%20preview-level%20support%20for%20serverless%20SQL%20pools%20querying%20the%20Delta%20Lake%20format.%20This%20enables%20BI%20and%20reporting%20tools%20to%20access%20data%20in%20Delta%20Lake%20format%20through%20standard%20T-SQL.%20With%20this%20latest%20update%2C%20the%20support%20is%20now%20Generally%20Available%20and%20can%20be%20used%20in%20production.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_8-1638317702172.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330722iE62A69C12FC7EAEF%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_8-1638317702172.png%22%20alt%3D%22ryanmajidi_8-1638317702172.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20read%20the%20content%20of%20delta%20lake%20folder%2C%20use%20the%20OPENROWSET%20function%20and%20specify%20the%20DELTA%20format%20and%20provide%20the%20location%20of%20the%20delta%20lake%20folder.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-sql%22%3E%3CCODE%3ESELECT%20TOP%2010%20*%0AFROM%20OPENROWSET(%0A%20%20%20%20%20%20%20%20%20BULK%20'https%3A%2F%2Fmystorage.blob.core.windows.net%2Fdelta-lake%2Fcovid%2F'%2C%0A%20%20%20%20%20%20%20%20%20FORMAT%20%3D%20'delta')%20as%20rows%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFind%20more%20information%20in%20the%20article%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fquery-delta-lake-format%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EHow%20to%20query%20Delta%20Lake%20files%20using%20serverless%20SQL%20pools%3C%2FA%3E.%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--1242968096%22%20id%3D%22toc-hId--1242966203%22%20id%3D%22toc-hId--1242966203%22%20id%3D%22toc-hId--1242966203%22%3EQuery%20multiple%20file%20paths%20using%20OPENROWSET%20in%20serverless%20SQL%3C%2FH2%3E%0A%3CP%3EServerless%20SQL%20pools%20in%20Azure%20Synapse%20allow%20ad-hoc%20queries%20through%20the%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fdevelop-openrowset%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EOPENROWSET%3C%2FA%3E%20statement.%20So%20far%2C%20you%E2%80%99ve%20only%20been%20able%20specify%20only%20a%20single%20file%20path%20with%20OPENROWSET.%20With%20this%20month%E2%80%99s%20update%2C%20you%20can%20specify%20multiple%20file%20paths%20in%20the%20%3CSTRONG%3EBULK%3C%2FSTRONG%3E%20parameter%20of%20the%20%3CSTRONG%3EOPENROWSET%20%3C%2FSTRONG%3Estatement.%20To%20make%20it%20even%20easier%2C%20Storage%20Explorer%20in%20Synapse%20Studio%20now%20lets%20you%20select%20multiple%20file%20paths%20by%20right-clicking%20to%20query%20them%20with%20a%20single%20SQL%20script.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWorking%20with%20multiple%20file%20paths%20as%20shown%20above%20will%20generate%20the%20following%20code%20that%20demonstrate%20how%20the%20paths%20are%20used%20with%20the%20BULK%20parameter%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-sql%22%3E%3CCODE%3ESELECT%20TOP%20100%20*%20FROM%0A%20%20%20%20OPENROWSET(%0A%20%20%20%20%20%20%20%20BULK%20(%0A%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D1%2Fdata.parquet'%2C%20%0A%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D1%2Fdata2.parquet'%2C%20%20%20%0A%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D1%2Fdata3.parquet'%2C%20%20%20%0A%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D1%2Fdata4.parquet'%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20FORMAT%20%3D%20'PARQUET'%0A%20%20%20%20)%20AS%20%5Bresult%5D%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22saveenr_0-1638338390585.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330823i4059FB53816598BC%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22saveenr_0-1638338390585.png%22%20alt%3D%22saveenr_0-1638338390585.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EKeep%20in%20mind%20that%2C%20the%20file%20paths%20DO%20NOT%20have%20to%20be%20in%20the%20same%20folder.%20As%20the%20following%20code%20shows%2C%20each%20file%20can%20be%20in%20a%20different%20folder.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-sql%22%3E%3CCODE%3ESELECT%20TOP%20100%20*%20FROM%0A%20%20%20%20OPENROWSET(%0A%20%20%20%20%20%20%20%20BULK%20(%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D1%2Fdata.parquet'%2C%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fmonth%3D2%2Fday%3D10%2Fdata.parquet'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample%2Fyear%3D2021%2Fmonth%3D3%2Fdata.parquet'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'https%3A%2F%2F%3CSTORAGE_ACCOUNT_NAME%3E.dfs.core.windows.net%2Fopendataset%2Fexample2%2Fdata.parquet'%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20FORMAT%20%3D%20'PARQUET'%0A%20%20%20%20)%20AS%20%5Bresult%5D%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FSTORAGE_ACCOUNT_NAME%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fquery-single-csv-file%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3EQuery%20CSV%20files%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1244544737%22%20id%3D%22toc-hId-1244546630%22%20id%3D%22toc-hId-1244546630%22%20id%3D%22toc-hId-1244546630%22%3EServerless%20SQL%20queries%20can%20now%20return%20up%20to%20200GB%20of%20results%3C%2FH2%3E%0A%3CP%3EWe%20have%20increased%20the%20result%20set%20maximum%20size%20for%20Serverless%20SQL%20queries%20to%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fresources-self-help-sql-on-demand%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%23constraints%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eup%20to%20200GB%3C%2FA%3E.%20This%20is%202.5x%20the%20earlier%20limit%20of%2080GB.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1110860013%22%20id%3D%22toc-hId-1110861906%22%20id%3D%22toc-hId-1110861906%22%20id%3D%22toc-hId-1110861906%22%3EHandling%20invalid%20rows%20with%20OPENROWSET%20in%20serverless%20SQL%3C%2FH2%3E%0A%3CP%3EReading%20raw%20data%20in%20the%20data%20lake%20for%20insights%20is%20not%20easy%20when%20querying%20files.%20Often%20raw%20data%20includes%20invalid%20rows%20that%20will%20cause%20your%20queries%20to%20fail.%20You%20can%20now%20use%20OPENROWSET%20to%20reject%20these%20bad%20rows%20and%20place%20them%20in%20a%20separate%20file%20so%20you%20can%20examine%20those%20rows%20later.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638323102701.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330764iDEBC9920044A9C93%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638323102701.png%22%20alt%3D%22ryanmajidi_0-1638323102701.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20the%20OPENROWSET%20example%20below%2C%20the%20ERRORFILE_LOCATION%20and%20ERROR_DATA_SOURCE%20options%20show%20how%20to%20control%20this%20behavior.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-sql%22%3E%3CCODE%3ESELECT%20*%20FROM%20OPENROWSET(%0A%20%20%20%20%20%20%20BULK%20'%2Fpersons.txt'%2C%20format%3D'csv'%0A%20%20%20%20%20%20%20%2C%20DATA_SOURCE%20%3D%20'gen2_hn_pass'%0A%20%20%20%20%20%20%20%2C%20MAXERRORS%20%3D%201%0A%20%20%20%20%20%20%20%2C%20FIRSTROW%20%3D%202%0A%20%20%20%20%20%20%20%2C%20ERRORFILE_LOCATION%20%3D%20'rejectedrows'%0A%20%20%20%20%20%20%20%2C%20ERRORFILE_DATA_SOURCE%20%3D%20'gen2_hn_pass'%0A%20%20%20%20%20%20%20)%0A%20%20%20%20WITH%0A%20%20%20%20%20%20%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%20varchar(100)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20birth_year%20int%0A%20%20%20%20)%20AS%20r%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20look%20for%20%3CSTRONG%3Ereject%20options%3C%2FSTRONG%3E%20in%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fdevelop-openrowset%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EOPENROWSET%3C%2FA%3E%20and%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fsql%2Fdevelop-tables-external-tables%3Ftabs%3Dnative%26amp%3Bwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eexternal%20tables%3C%2FA%3E.%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId--825677169%22%20id%3D%22toc-hId--825675276%22%20id%3D%22toc-hId--825675276%22%20id%3D%22toc-hId--825675276%22%3EApache%20Spark%20for%20Synapse%3C%2FH1%3E%0A%3CH2%20id%3D%22toc-hId-1790918383%22%20id%3D%22toc-hId-1790920276%22%20id%3D%22toc-hId-1790920276%22%20id%3D%22toc-hId-1790920276%22%3EAccelerate%20Spark%20workloads%20with%20NVIDIA%20GPU%20acceleration%3C%2FH2%3E%0A%3CP%3EHardware-accelerated%20pools%20are%20now%20in%20public%20preview%20for%20Spark%20in%20Synapse.%20With%20Hardware-accelerated%20pools%20you%20can%20speed%20up%20big%20data%20with%20NVIDIA%20GPU-accelerated%20Spark%20pools.%20This%20can%20reduce%20the%20time%20necessary%20to%20run%20data%20integration%20pipelines%2C%20score%20ML%20models%2C%20and%20more.%20This%20means%20less%20time%20waiting%20for%20data%20to%20process%20and%20more%20time%20identifying%20insights%20to%20drive%20better%20business%20outcomes.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EGPU-accelerated%20Spark%20pools%20provide%20performance%20improvements%20for%20ETL%20and%20ML%20workloads%20with%20built-in%20support%20for%20NVIDIA%20RAPIDS%20and%20integration%20with%20Microsoft%E2%80%99s%20Hummingbird%20library.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323141629.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330765i81A5DE70532425E9%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323141629.png%22%20alt%3D%22ryanmajidi_1-1638323141629.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fyoutu.be%2FDZEuqhqZ8Tg%3Ft%3D1083%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EGPU-Accelerated%20Apache%20Spark%20Pools%20Ignite%20demo%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics%2Fsave-time-on-apache-spark-workloads-on-azure-synapse-with-nvidia%2Fba-p%2F2924806%22%20target%3D%22_blank%22%3ESave%20time%20on%20Apache%20Spark%20workloads%20on%20Azure%20Synapse%20with%20NVIDIA%20GPU%20acceleration%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fspark%2Fapache-spark-rapids-gpu%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EGPU-Accelerated%20Apache%20Spark%20Pools%20-%20Azure%20Synapse%20Analytics%20%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20id%3D%22toc-hId--16536080%22%20id%3D%22toc-hId--16534187%22%20id%3D%22toc-hId--16534187%22%20id%3D%22toc-hId--16534187%22%3EMount%20remote%20storage%20to%20a%20Synapse%20Spark%20pool%3C%2FH2%3E%0A%3CP%3EMounting%20remote%20storage%20is%20a%20common%20task%20for%20developers%20working%20with%20Spark.%20Previously%2C%20there%20was%20no%20direct%20way%20to%20do%20this%20in%20Synapse.%20Now%20you%20can%20mount%2Funmount%20remote%20storage%20with%20new%20APIs%20in%20the%20%3CSTRONG%3Emssparkutils%3C%2FSTRONG%3E%20package.%20Mount%20and%20attach%20remote%20storage%20(Blob%2C%20ADLS%20Gen2%2C%20Azure%20File%20Share)%20to%20a%20synapse%20spark%20pool%20in%20all%20nodes%2C%20including%20driver%20and%20worker%20nodes.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20Synapse%20mounting%20remote%20storage%20feature%20allows%20you%20to%20seamlessly%20access%20and%20manage%20data%20without%20manually%20entering%20credentials%20every%20time.%20Once%20the%20mount%20runs%20successfully%2C%20you%20can%20navigate%20data%20similar%20to%20local%20file%20system%20access.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EBelow%20is%20an%20in%20example%20of%20how%20to%20mount%20a%20filesystem%20while%20taking%20advantage%20of%20Linked%20Services%20in%20Synapse%20so%20that%20authentication%20details%20are%20not%20in%20the%20mounting%20code.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Emssparkutils.fs.mount(%0A%20%20%20%20%22abfss%3A%2F%2Fmycontainer%40storageacct1.dfs.core.windows.net%22%2C%0A%20%20%20%20%22%2Ftest%22%2C%0A%20%20%20%20%7B%22linkedService%22%3A%22mygen2account%22%7D%0A)%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELearn%20more%20by%20reading%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fspark%2Fsynapse-file-mount-api%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EIntroduction%20to%20file%20mount%20in%20synapse%20-%20Azure%20Synapse%20Analytics%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--1823990543%22%20id%3D%22toc-hId--1823988650%22%20id%3D%22toc-hId--1823988650%22%20id%3D%22toc-hId--1823988650%22%3ENatively%20read%20%26amp%3B%20write%20data%20in%20ADLS%20with%20Pandas%3C%2FH2%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EPandas%20is%20an%20open-source%20Python%20package%20and%20is%20widely%20used%20for%20data%20science%20and%20data%20analysis%20tasks.%20It%20is%20the%20most-used%20Data%20Frame%20API%20in%20Python%20and%20has%20emerged%20as%20a%26nbsp%3Bde%20facto%26nbsp%3Bstandard%20used%20by%20Python%20developers%20and%20data%20scientists.%20The%20Pandas%20APIs%20enables%20data%20processing%20and%20analysis%2C%20starting%20with%20simplifying%20reading%20data%20in%20various%20formats%20such%20as%20CSV%2C%20TSV%2C%20JSON%2C%20Excel%20and%20Parquet%20files%20from%20a%20plethora%20of%20sources.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20month%E2%80%99s%20update%20we%20have%20added%20native%20support%20for%20Azure%20Storage%20to%20Pandas.%20This%20is%20a%20fundamental%20and%20critical%20capability%20for%20any%20Python-based%20data%20science%20or%20data%20processing%20use%20case%20in%20Synapse.%20Now%20easily%20read%20and%20write%20data%20to%2Ffrom%20ADLSgen2%20with%20Pandas.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe%20have%20added%20support%20for%20read%2Fwrite%20using%20Azure%20URL%20formats%20and%20FSSPEC%20URL%20formats%20in%20Azure%20storage.%20It%20works%20well%20with%20Primary%20storge%20(one%20which%20is%20attached%20with%20Synapse%20workspace%20by%20default)%20as%20well%20as%20non-primary%20storage%20(any%20other%20azure%20storage).%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe%20have%20auto-magic%20authentication%20in%20place%20which%20empowers%20users%20to%20use%20Pandas%20for%20primary%20storage%20without%20mentioning%20any%20credentials%20explicitly.%20For%20non-primary%20storage%2C%20we%20support%20two%20auth%20types%20viz.%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EUsing%20linked%20service%20(with%20authentication%20options%20-%20storage%20account%20key%2C%20service%20principal%2C%20manages%20service%20identity%20and%20credentials).%3C%2FLI%3E%0A%3CLI%3EUsing%20storage%20options%20to%20directly%20pass%20client%20ID%20%26amp%3B%20Secret%2C%20SAS%20key%2C%20storage%20account%20key%20and%20connection%20string.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638323220967.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330767i9A4E0C31DABC2502%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638323220967.png%22%20alt%3D%22ryanmajidi_0-1638323220967.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323225175.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330768iF727601EC00CC362%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323225175.png%22%20alt%3D%22ryanmajidi_1-1638323225175.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EBEFORE%20%E2%80%93%20read%20and%20write%20requires%20special%20coding%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%20%23%20To%20read%20data%0Aimport%20fsspec%0Aimport%20pandas%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0Aadls_account_name%20%3D%20''%20%23Provide%20exact%20ADLS%20account%20name%0Aadls_account_key%20%3D%20''%20%23Provide%20exact%20ADLS%20account%20key%0A%0Afsspec_handle%20%3D%20fsspec.open('abfs%3A%2F%2F%3CCONTAINER%3E%2F%3CPATH-TO-FILE%3E'%2C%20account_name%3Dadls_account_name%2C%20account_key%3Dadls_account_key)%0A%0Awith%20fsspec_handle.open()%20as%20f%3A%0A%20%20%20%20%20df%20%3D%20pandas.read_csv(f)%0A%0A%23%20To%20write%20data%0Aimport%20fsspec%0Aimport%20pandas%0A%0Aadls_account_name%20%3D%20''%20%23Provide%20exact%20ADLS%20account%20name%0Aadls_account_key%20%3D%20''%20%23Provide%20exact%20ADLS%20account%20key%0A%0Adata%20%3D%20pandas.DataFrame(%7B'Name'%3A%5B'Tom'%2C%20'nick'%2C%20'krish'%2C%20'jack'%5D%2C%20'Age'%3A%5B20%2C%2021%2C%2019%2C%2018%5D%7D)%0A%0Afsspec_handle%20%3D%20fsspec.open('abfs%3A%2F%2F%3CCONTAINER%3E%2F%3CPATH-TO-FILE%3E'%2C%20account_name%3Dadls_account_name%2C%20%20%20%20account_key%3Dadls_account_key%2C%20mode%3D%22wt%22)%0A%0Awith%20fsspec_handle.open()%20as%20f%3A%0Adata.to_csv(f)%3C%2FPATH-TO-FILE%3E%3C%2FCONTAINER%3E%3C%2FPATH-TO-FILE%3E%3C%2FCONTAINER%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EAFTER%20%E2%80%93%20read%20and%20write%20become%20one-liners%20natural%20idioms%20with%20dataframes%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%23Read%20Operation%0Adf%20%3D%20pandas.read_csv('abfss%3A%2F%2Ffiles%40synapseamlprodstorage.dfs.core.windows.net%2FTestdata.csv'%2C%20storage_options%20%3D%20%7B'linked_service'%20%3A%20'AzureDataLakeStorage'%7D)%0A%0A%23Write%20Operation%0Adata%20%3D%20pandas.DataFrame(%7B'Name'%3A%5B'Azure'%2C%20'Bing'%2C%20'Office'%2C%20'Xbox'%5D%2C%20'Age'%3A%5B20%2C%2021%2C%2019%2C%2018%5D%7D)%0A%0Adata.to_csv('abfss%3A%2F%2Ffiles%40synapseamlprodstorage.dfs.core.windows.net%2Fpandas%2Fwrite%2Ftest_2.csv'%2C%20storage_options%20%3D%20%7B'linked_service'%20%3A%20'AzureDataLakeStorage'%7D)%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fspark%2Ftutorial-use-pandas-spark-pool%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EUse%20Pandas%20to%20read%2Fwrite%20Azure%20Data%20Lake%20Storage%20Gen2%20data%20in%20serverless%20Apache%20Spark%20pool%20in%20Synapse%20Analytics%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-663522290%22%20id%3D%22toc-hId-663524183%22%20id%3D%22toc-hId-663524183%22%20id%3D%22toc-hId-663524183%22%3EDynamic%20allocation%20of%20executors%20for%20Spark%3C%2FH2%3E%0A%3CP%3EDynamic%20allocation%20of%20executors%20for%20Apache%20Spark%20improves%20your%20capacity%20utilization%20efficiency.%20With%20this%20release%2C%20you%20can%20now%20enable%20executors'%20dynamic%20allocation%20for%20Spark%20at%20the%20pool%2C%20Spark%20job%2C%20or%20Notebook%20session-level.%20Dynamic%20allocation%20allows%20you%20to%20customize%20how%20your%20clusters%20scale%20based%20on%20workload.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EEnabling%20dynamic%20allocation%20allows%20the%20job%20to%20scale%20the%20number%20of%20executors%20within%20the%20minimum%20and%20the%20maximum%20number%20of%20executors%20specified.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20can%20enable%20the%20dynamic%20allocation%20of%20executors%20for%20pools%20as%20shown%20below.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638323472781.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330769i826FDB044E7805F8%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638323472781.png%22%20alt%3D%22ryanmajidi_0-1638323472781.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20can%20enable%20the%20dynamic%20allocation%20of%20executors%20for%20notebooks%20%26nbsp%3Bvia%20code.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%25%25configure%20-f%0A%7B%0A%20%20%20%20%20%22conf%22%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22spark.dynamicAllocation.maxExecutors%22%20%3A%20%226%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22spark.dynamicAllocation.enable%22%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%22spark.dynamicAllocation.minExecutors%22%3A%20%222%22%0A%20%20%20%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fspark%2Fapache-spark-autoscale%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAutomatically%20scale%20Azure%20Synapse%20Analytics%20Apache%20Spark%20pools%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%26nbsp%3B%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId--1273014892%22%20id%3D%22toc-hId--1273012999%22%20id%3D%22toc-hId--1273012999%22%20id%3D%22toc-hId--1273012999%22%3EMachine%20Learning%3C%2FH1%3E%0A%3CH2%20id%3D%22toc-hId-1343580660%22%20id%3D%22toc-hId-1343582553%22%20id%3D%22toc-hId-1343582553%22%20id%3D%22toc-hId-1343582553%22%3ESynapseML%20library%3C%2FH2%3E%0A%3CP%3EWith%20this%20update%2C%20we%20have%20released%20%3CSTRONG%3ESynapseML%3C%2FSTRONG%3E%20(previously%20known%20as%20MMLSpark).%20SynapseML%20is%20an%20open-source%20library%20that%20simplifies%20the%20creation%20of%20massively%20scalable%20ML%20pipelines.%20Building%20production-ready%20distributed%20machine%20learning%20(ML)%20pipelines%20can%20be%20challenging%2C%20even%20for%20the%20most%20seasoned%20researcher%20or%20engineer.%20Composing%20tools%20from%20different%20ecosystems%20often%20requires%20considerable%20%E2%80%9Cglue%E2%80%9D%20code%2C%20and%20many%20frameworks%20aren%E2%80%99t%20designed%20with%20thousand-machine%20elastic%20clusters%20in%20mind.%20SynapseML%20unifies%20several%20existing%20ML%20frameworks%20and%20new%20Microsoft%20algorithms%20into%20a%20single%2C%20scalable%20API%20that%E2%80%99s%20usable%20across%20Python%2C%20R%2C%20Scala%2C%20and%20Java.%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_15%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323531223.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330770iC102C5F77D32F5C8%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323531223.png%22%20alt%3D%22ryanmajidi_1-1638323531223.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EDevelopers%20can%20now%20build%20large-scale%20ML%20pipelines%20using%20the%20Microsoft%20Cognitive%20Services%2C%20LightGBM%2C%20ONNX%2C%20and%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fsynapseml-ga%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eother%20selected%20SynapseML%20features%3C%2FA%3E.%20It%20even%20includes%20templates%20to%20help%20users%20quickly%20prototype%20distributed%20ML%20systems%2C%20such%20as%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fart-search%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Evisual%20search%20engines%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fsynapseml-predictive-maintenence%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Epredictive%20maintenance%20pipelines%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fsynapseml-cog-services%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Edocument%20translation%3C%2FA%3E%2C%20and%20more.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%2C%20read%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics%2Fstreamline-collaboration-and-insights-with-simplified-machine%2Fba-p%2F2924707%22%20target%3D%22_blank%22%3EStreamline%20collaboration%20and%20insights%20with%20simplified%20machine%20learning%20on%20Azure%20Synapse%20Analytics%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3E%3CSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fmicrosoft.github.io%2FSynapseML%2Fdocs%2Fabout%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ESynapseML%3C%2FA%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20id%3D%22toc-hId--463873803%22%20id%3D%22toc-hId--463871910%22%20id%3D%22toc-hId--463871910%22%20id%3D%22toc-hId--463871910%22%3EGetting%20started%20with%20state-of-the-art%20pre-built%20intelligent%20models%3C%2FH2%3E%0A%3CP%3ESynapseML%20provides%20simple%20APIs%20for%20%3CSTRONG%3Epre-built%20intelligent%20services%3C%2FSTRONG%3E%2C%20such%20as%20the%20Microsoft%20Cognitive%20Services%2C%20to%20quickly%20solve%20business%20and%20research%20challenges%20on%20large%20datasets.%20SynapseML%20enables%20developers%20to%20embed%20over%2045%20different%20state-of-the-art%20ML%20services%20directly%20into%20their%20systems%20and%20databases.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20the%20latest%20release%20we%20added%20support%20for%20distributed%20%3CA%20href%3D%22https%3A%2F%2Fazure.microsoft.com%2Fservices%2Fform-recognizer%2F%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eform%20recognition%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fcognitive-services%2Fspeech-service%2Fconversation-transcription%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Econversation%20transcription%3C%2FA%3E%2C%20and%20%3CA%20href%3D%22https%3A%2F%2Fazure.microsoft.com%2Fen-us%2Fservices%2Fcognitive-services%2Ftranslator%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Etranslation%3C%2FA%3E.%20These%20ready-to-use%20algorithms%20can%20parse%20a%20wide%20variety%20of%20documents%2C%20transcribe%20multi-speaker%20conversations%20in%20real%20time%2C%20and%20translate%20text%20to%20over%20100%20different%20languages.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20help%20you%20understand%20how%20to%20use%20it%2C%20we%E2%80%99ll%20walk%20through%20an%20example%20of%20using%20form%20recognition.%3C%2FP%3E%0A%3CP%3ELet%E2%80%99s%20start%20with%20a%20form%20that%20saved%20as%20a%20JPG%20file%20in%20your%20data%20lake.%20The%20form%20looks%20like%20this%3A%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_16%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_2-1638323542164.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330771iFF9DEF79264C3D4E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_2-1638323542164.png%22%20alt%3D%22ryanmajidi_2-1638323542164.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20handle%20this%20form%2C%20you%20would%20use%20code%20like%20the%20following%20PySpark%20code%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-python%22%3E%3CCODE%3Efrom%20pyspark.sql.functions%20import%20col%2C%20flatten%2C%20regexp_replace%2C%20explode%2C%20create_map%2C%20lit%0A%0AimageDf%20%3D%20spark.createDataFrame(%5B%0A%20%20(%22%3CREPLACE%20with%3D%22%22%20your%3D%22%22%20file%3D%22%22%20path%3D%22%22%3E%2Flayout.jpg%22%2C)%0A%5D%2C%20%5B%22source%22%2C%5D)%0A%0AanalyzeLayout%20%3D%20(AnalyzeLayout()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.setLinkedService(cognitive_service_name)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.setImageUrlCol(%22source%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.setOutputCol(%22layout%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.setConcurrency(5))%0A%0Adisplay(analyzeLayout%0A%20%20%20%20%20.transform(imageDf)%0A%20%20%20%20%20.withColumn(%22lines%22%2C%20flatten(col(%22layout.analyzeResult.readResults.lines%22)))%0A%20%20%20%20%20.withColumn(%22readLayout%22%2C%20col(%22lines.text%22))%0A%20%20%20%20%20.withColumn(%22tables%22%2C%20flatten(col(%22layout.analyzeResult.pageResults.tables%22)))%0A%20%20%20%20%20.withColumn(%22cells%22%2C%20flatten(col(%22tables.cells%22)))%0A%20%20%20%20%20.withColumn(%22pageLayout%22%2C%20col(%22cells.text%22))%0A%20%20%20%20%20.select(%22source%22%2C%20%22readLayout%22%2C%20%22pageLayout%22))%3C%2FREPLACE%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAnd%20this%20code%20will%20give%20these%20results%3A%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_17%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_3-1638323625398.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330772i161509183AF9B568%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_3-1638323625398.png%22%20alt%3D%22ryanmajidi_3-1638323625398.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fmachine-learning%2Ftutorial-form-recognizer-use-mmlspark%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EForm%20Recognizer%20with%20Applied%20AI%20Service%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-2023639030%22%20id%3D%22toc-hId-2023640923%22%20id%3D%22toc-hId-2023640923%22%20id%3D%22toc-hId-2023640923%22%3EBuilding%20responsible%20AI%20systems%20with%20SynapseML%3C%2FH2%3E%0A%3CP%3EAfter%20building%20a%20model%2C%20it%E2%80%99s%20imperative%20that%20researchers%20and%20engineers%20understand%20its%20limitations%20and%20behavior%20before%20deployment.%20SynapseML%20helps%20developers%20and%20researchers%20build%20responsible%20AI%20systems%20by%20introducing%20new%20tools%20that%20reveal%20%3CEM%3Ewhy%3C%2FEM%3E%20models%20make%20certain%20predictions%20and%20how%20to%20improve%20the%20training%20dataset%20to%20eliminate%20biases.%20SynapseML%20includes%20%3CA%20href%3D%22https%3A%2F%2Fmicrosoft.github.io%2FSynapseML%2Fdocs%2Ffeatures%2Fresponsible_ai%2FModel%2520Interpretation%2520on%2520Spark%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Escalable%20methods%20that%20can%20explain%20the%20behavior%20of%20any%20trained%20machine%20learning%20model%3C%2FA%3E.%20In%20addition%20to%20supervised%20model%20explainability%2C%20SynapseML%20also%20introduces%20several%20new%20capabilities%20for%20unsupervised%20responsible%20AI.%20With%20our%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fsynapseml-data-balance%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Enew%20tools%20for%20understanding%20dataset%20imbalance%3C%2FA%3E%2C%20researchers%20can%20detect%20whether%20sensitive%20dataset%20features%2C%20such%20as%20race%20or%20gender%2C%20are%20over-%20or%20under-represented%20and%20take%20steps%20to%20improve%20model%20fairness.%20Finally%2C%20Azure%20Synapse%20Analytics%20users%20can%20take%20advantage%20of%20the%20%3CA%20href%3D%22https%3A%2F%2Fforms.office.com%2FPages%2FResponsePage.aspx%3Fid%3Dv4j5cvGGr0GRqy180BHbR3nswihwe8JLvwovyYerymVUNU5CMjdOWDZJN1VUVVFXRDdBOE45MlU4Ui4uDZJN1VUVVFXRDdBOE45MlU4Ui4u%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eprivate%20preview%3C%2FA%3E%20of%20a%20distributed%20implementation%20of%20%3CA%20href%3D%22https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DMREiHgHgl0k%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EExplainable%20Boosting%20Machines%3C%2FA%3E%2C%20which%20combines%20the%20modeling%20power%20of%20gradient-boosted%20trees%20with%20the%20interpretability%20of%20linear%20additive%20models.%20Explainable%20Boosting%20Machines%20allow%20data%20scientists%20to%20learn%20high-quality%20nonlinear%20models%20without%20sacrificing%20their%20ability%20to%20understand%20a%20model%E2%80%99s%20predictions.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ESTEP%201%3A%20Import%20feature%20balancer%20transformer%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Efrom%20synapse.ml.exploratory%20import%20FeatureBalanceMeasure%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ESTEP%202%3A%20Load%20dataset%20and%20define%20features%20of%20interest%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Eimport%20pyspark.sql.functions%20as%20F%0A%0Afeatures%20%3D%20%5B%22race%22%2C%20%22sex%22%5D%0Alabel%20%3D%20%22income%22%0A%0Adf%20%3D%20spark.read.parquet(%22wasbs%3A%2F%2Fpublicwasb%40mmlspark.blob.core.windows.net%2FAdultCensusIncome.parquet%22)%0A%0A%23%20Convert%20the%20%22income%22%20column%20from%20%7B%26lt%3B%3D50K%2C%20%26gt%3B50K%7D%20to%20%7B0%2C%201%7D%20to%20represent%20our%20binary%20classification%20label%20column%0Adf%20%3D%20df.withColumn(label%2C%20F.when(F.col(label).contains(%22%26lt%3B%3D50K%22)%2C%20F.lit(0)).otherwise(F.lit(1)))%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ESTEP%203%3A%20Create%20a%20%3CSTRONG%3EFeatureBalanceMeasure%3C%2FSTRONG%3E%20transformer.%20Use%20%3CSTRONG%3EsetSensitiveCols%3C%2FSTRONG%3E%20to%20set%20the%20list%20of%20sensitive%20features.%20Use%20%3CSTRONG%3EsetLabelCol%3C%2FSTRONG%3E%20to%20set%20the%20binary%20label%20column.%20Then%2C%20call%20the%20%3CSTRONG%3Etransform%3C%2FSTRONG%3E%20method%20with%20your%20dataset.%20Finally%2C%20visualize%20the%20resulting%20dataframe%20with%20the%20%3CSTRONG%3Eshow%3C%2FSTRONG%3E%20method%20.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Efeature_balance_measures%20%3D%20(%0A%20%20%20%20FeatureBalanceMeasure()%0A%20%20%20%20.setSensitiveCols(features)%0A%20%20%20%20.setLabelCol(label)%0A%20%20%20%20.transform(df)%0A)%0Afeature_balance_measures.show(truncate%3DFalse)%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-914346508%22%20id%3D%22toc-hId-914348401%22%20id%3D%22toc-hId-914348401%22%20id%3D%22toc-hId-914348401%22%3EPREDICT%20is%20now%20GA%20for%20Synapse%20Dedicated%20SQL%20pools%3C%2FH2%3E%0A%3CP%3EThe%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fsql%2Ft-sql%2Fqueries%2Fpredict-transact-sql%3Fview%3Dazure-sqldw-latest%26amp%3Bwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EPREDICT%3C%2FA%3E%20function%20in%20Azure%20Synapse%20(Dedicated%20SQL%20pool)%20aims%20to%20empower%20data%20professionals%20to%20easily%20deploy%20machine%20learning%20models%20and%20collaborate%20with%20data%20scientists.%20Synapse%20users%20can%20score%20machine%20learning%20models%20using%20the%20familiar%20T-SQL%20language%20without%20the%20need%20to%20move%20data%20outside%20secure%20data%20warehouse%20boundaries.%20PREDICT%20takes%20an%20%3CA%20href%3D%22https%3A%2F%2Fonnx.ai%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EONNX%20(Open%20Neural%20Network%20Exchange)%3C%2FA%3E%26nbsp%3Bmodel%20and%20data%20as%20inputs.%20It%20is%20fully%20integrated%20in%20T-SQL%20language%20and%20it%20can%20be%20called%20multiple%20times%20in%20a%20single%20statement%20or%20be%20a%20part%20of%20data%20modification%20(through%20INSERT%2C%20UPDATE%2C%20DELETE%20or%20MERGE%20statements).%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_18%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638323741166.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330773i654CDBD817A2BB54%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638323741166.png%22%20alt%3D%22ryanmajidi_0-1638323741166.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20try%20it%20out%20and%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fmachine-learning%2Ftutorial-sql-pool-model-scoring-wizard%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EMachine%20learning%20model%20scoring%20wizard%20(preview)%20for%20dedicated%20SQL%20pools%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--893107955%22%20id%3D%22toc-hId--893106062%22%20id%3D%22toc-hId--893106062%22%20id%3D%22toc-hId--893106062%22%3ESimple%20%26amp%3B%20scalable%20scoring%20with%20PREDICT%20and%20MLFlow%20for%20Apache%20Spark%20for%20Synapse%3C%2FH2%3E%0A%3CP%3EWe%20are%20simplifying%20batch%20scoring%20at%20scale%20in%20Azure%20Synapse.%20The%20PREDICT%20keyword%20on%20Spark%2C%20now%20in%20public%20preview%2C%20drastically%20simplifies%20the%20handoff%20between%20an%20ML%20model%20producer%20and%20a%20person%20operationalizing%20the%20model%20for%20batch%20scoring%20(the%20model%20consumer).%20It%20does%20this%20by%20allowing%20you%20to%20point%20to%20MLFlow%20packaged%20and%20registered%20models%20in%20Azure%20Machine%20Learning%20directly%20from%20your%20Synapse%20workspace.%20Users%20can%20easily%20run%20predictions%20at%20large%20scale%20on%20Spark%20on%20Synapse%20using%20a%20variety%20of%20MLFlow%20model%20flavors%20to%20streamline%20and%20simplify%20the%20batch%20scoring%20process.%20PREDICT%20also%20supports%20referencing%20models%20stored%20in%20Azure%20Data%20Lake%20Storage%20Gen2.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20model%20flavors%20supported%20in%20this%20public%20preview%20are%20Sklearn%2C%20Pytorch%2C%20ONNX%20and%20TensorFlow%2C%20and%20we%20continuously%20work%20on%20expanding%20this%20list.%20PyFunc%20models%20can%20also%20be%20used%20with%20PREDICT.%20As%20a%20user%2C%20all%20you%20need%20to%20do%20is%20to%20point%20to%20your%20model%20and%20the%20data%20within%20the%20secured%20boundaries%20of%20Azure%20Synapse.%20Information%20like%20model%20type%20and%20expected%20inputs%20and%20outputs%20are%20simply%20picked%20up%20from%20the%20MLFlow%20packaging%20format%2C%20which%20the%20model%20producer%20captured%20at%20the%20time%20of%20training%20the%20model.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323759662.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330774i53CE19A5C24D6290%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323759662.png%22%20alt%3D%22ryanmajidi_1-1638323759662.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fmachine-learning%2Ftutorial-score-model-predict-spark-pool%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EScore%20machine%20learning%20models%20with%20PREDICT%20in%20serverless%20Apache%20Spark%20pools%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1594404878%22%20id%3D%22toc-hId-1594406771%22%20id%3D%22toc-hId-1594406771%22%20id%3D%22toc-hId-1594406771%22%3ERetail%20AI%20solutions%3C%2FH2%3E%0A%3CP%3EDatabase%20templates%26nbsp%3Bin%20Azure%20Synapse%20are%20industry-specific%20schema%20definitions%20that%20provide%20a%20quick%20method%20of%20creating%20a%20database%20known%20as%20a%20lake%20database.%26nbsp%3BAfter%20the%20data%20is%20loaded%20into%20your%20lake%20database%2C%20you%20can%20take%20advantage%20of%20pre-built%20AI%20and%20ML%20models%20that%20understand%20your%20data%20based%20on%20the%20lake%20database%20template%20schema.%20An%20example%20is%20the%20Retail-Product%20recommendation%20solution%20in%20the%20Knowledge%20Center%20gallery%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638323804038.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330775i915C4FBED1D0B0C3%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638323804038.png%22%20alt%3D%22ryanmajidi_0-1638323804038.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhen%20you%20use%20this%20template%20it%20creates%20a%20notebook%20you%20can%20start%20using%20immediately.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323812018.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330776i53C8BD256B640047%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323812018.png%22%20alt%3D%22ryanmajidi_1-1638323812018.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_2-1638323821233.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330777i4933C0D5D0D1C5DC%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_2-1638323821233.png%22%20alt%3D%22ryanmajidi_2-1638323821233.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EKnowing%20the%20shape%20of%20the%20data%20allows%20us%20to%20provide%20pre-built%20industry%20AI%20solutions.%20The%20AI%20solution%20for%20Retail%20Product%20Recommendation%20provides%20a%20robust%20and%20scalable%20recommendation%20engine%20for%20out-of-the-box%20development%20in%20Synapse.%20No%20additional%20data%20shaping%20is%20needed%2C%20the%20solution%20can%20work%20on%20the%20data%20out%20of%20the%20box.%20%26nbsp%3BThis%20accelerates%20productivity%20of%20existing%20or%20emerging%20data%20scientists%20for%20solving%20a%20specific%20problem%20in%20the%20Retail%20domain.%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20about%20the%20Retail%20AI%20solution%2C%20use%20this%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fmachine-learning%2Fquickstart-industry-ai-solutions%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Equick%20start%20guide%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId--342132304%22%20id%3D%22toc-hId--342130411%22%20id%3D%22toc-hId--342130411%22%20id%3D%22toc-hId--342130411%22%3ESecurity%3C%2FH1%3E%0A%3CH2%20id%3D%22toc-hId--2020504048%22%20id%3D%22toc-hId--2020502155%22%20id%3D%22toc-hId--2020502155%22%20id%3D%22toc-hId--2020502155%22%3EUser-Assigned%20managed%20identities%20now%20supported%20in%20Synapse%20Pipelines%20in%20preview%3C%2FH2%3E%0A%3CP%3EPreviously%2C%20linked%20services%20used%20for%20authentication%20in%20Synapse%20pipelines%20only%20supported%20system-assigned%20managed%20identity.%20Users%20needed%20elevated%20access%20to%20the%20workspace%20system-assigned%20managed%20identity%20to%20execute%20any%20pipeline%20in%20a%20Synapse%20workspace.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ENow%20you%20can%20use%20user-assigned%20managed%20identities%20in%20linked%20services%20for%20authentication%20in%20Synapse%20Pipelines%20and%20Dataflows.%20Unlike%20system-assigned%20managed%20identities%2C%20user-assigned%20managed%20identities%20are%20not%20tied%20to%20the%20lifecycle%20of%20a%20Synapse%20workspace.%20This%20also%20allows%20organizations%20to%20prevent%20granting%20elevated%20access%20to%20the%20workspace%20system-assigned%20managed%20identity%20to%20users%2C%20while%20continuing%20to%20benefit%20from%20the%20use%20of%20managed%20identities.%20Organizations%20can%20also%20prevent%20users%20from%20executing%20certain%20pipelines%20within%20a%20workspace%20by%20using%20different%20user-assigned%20managed%20identities%20or%20a%20combination%20of%20user%20and%20system-assigned%20managed%20identities.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20order%20to%20use%20user-assigned%20managed%20identity%20in%20a%20linked%20service%2C%20you%20must%20first%20create%20a%20credential%20for%20a%20user-assigned%20managed%20identity.%20Then%20create%20or%20edit%20a%20linked%20service%20and%20choose%20User-Assigned%20Managed%20Identity%20(Preview)%20as%20the%20authentication%20method%2C%20and%20select%20the%20newly%20created%20credential%20from%20the%20Credentials%20drop-down.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EStep%201%20%E2%80%93%20create%20a%20credential%20for%20a%20user-assigned%20managed%20identity%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_3-1638323839152.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330778i1117E50263E5AF09%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_3-1638323839152.png%22%20alt%3D%22ryanmajidi_3-1638323839152.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EStep%202%20%E2%80%93%20create%20a%20credential%20for%20a%20user-assigned%20managed%20identity%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_5-1638323847926.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330780iBAB52CCF5B34871C%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_5-1638323847926.png%22%20alt%3D%22ryanmajidi_5-1638323847926.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EStep%203%20%E2%80%93%20create%20a%20linked%20service%20and%20provide%20the%20credential%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_1-1638323969013.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330788i9F3209967FBB7E5D%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_1-1638323969013.png%22%20alt%3D%22ryanmajidi_1-1638323969013.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFor%20more%20about%20using%20User-assigned%20managed%20identities%20(UAMI)%20and%20how%20to%20correctly%20configure%20your%20UAMI%20for%20use%20in%20linked%20services%2C%20see%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Fcredentials%3Fcontext%3D%252Fazure%252Fsynapse-analytics%252Fcontext%252Fcontext%26amp%3Btabs%3Dsynapse-analytics%26amp%3Bwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EUsing%20Credentials%20in%20Azure%20Synapse%3C%2FA%3E.%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-467008785%22%20id%3D%22toc-hId-467010678%22%20id%3D%22toc-hId-467010678%22%20id%3D%22toc-hId-467010678%22%3EBrowse%20ADLS%20Gen2%20folders%20in%20an%20Azure%20Synapse%20Analytics%20workspace%20in%20preview%3C%2FH2%3E%0A%3CP%3EDirectly%20browsing%20an%20ADLS%20Gen%202%20account%20makes%20it%20easy%20to%20start%20analyzing%20data%20in%20the%20lake.%20With%20this%20update%2C%20we%E2%80%99ve%20added%20another%20way%20to%20do%20this.%20You%20can%20now%20browse%20an%20Azure%20Data%20Lake%20Storage%20Gen2%20(ADLS%20Gen2)%20container%20or%20folder%20in%20your%20Azure%20Synapse%20Analytics%20workspace%20by%20connecting%20to%20a%20specific%20container%20or%20folder%20in%20Synapse%20Studio.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThis%20is%20useful%20If%20your%20organization%20does%20not%20grant%20users%20the%20%3CSTRONG%3EStorage%20Blob%20Data%20Contributor%3C%2FSTRONG%3E%20role%20from%20Azure%20RBAC%20on%20the%20storage%20account%2C%20but%20grants%20POSIX-like%20access%20control%20lists%20(ACLs)%20to%20the%20container%20or%20specific%20folders%20to%20users'%20Azure%20AD%20identity.%20In%20this%20case%20you%20can%20use%20this%20preview%20feature%20to%20browse%20the%20ADLS%20Gen2%20container%20or%20folder.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20use%20this%20feature%2C%20first%20connect%20the%20ADLS%20Gen2%20container%20or%20folder%20to%20your%20Synapse%20workspace.%20Right%20click%20on%20Azure%20Data%20Lake%20Storage%20Gen2%20and%20select%20%3CSTRONG%3EConnect%20to%20Azure%20Storage%20(preview)%3C%2FSTRONG%3E.%20Once%20you%20provide%20the%20necessary%20details%20and%20click%20%3CSTRONG%3EConnect%2C%20%3C%2FSTRONG%3Eyou%20will%20be%20able%20to%20browse%20contents%20of%20the%20container%20or%20folder%20by%20clicking%20on%20%3CSTRONG%3EAttached%20Containers%3C%2FSTRONG%3E.%20%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EStep%201%20%E2%80%93%20Connect%20to%20the%20Azure%20Data%20Lake%20Storage%20Gen2%20container%20or%20folder%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_26%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_7-1638323867169.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330782i882FC610D7DF1F3F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_7-1638323867169.png%22%20alt%3D%22ryanmajidi_7-1638323867169.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3BStep%202%20%E2%80%93%20Connect%20to%20the%20Azure%20Data%20Lake%20Storage%20Gen2%20container%20or%20folder%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_8-1638323873735.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330783iEBA4B763BB058E40%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_8-1638323873735.png%22%20alt%3D%22ryanmajidi_8-1638323873735.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3BStep%203%20%E2%80%93%20Browse%20the%20files%20and%20folders%20in%20the%20connected%20storage%20container%20or%20folder.%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_28%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_2-1638323988296.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330789i5371E9F0A9EC6FB1%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_2-1638323988296.png%22%20alt%3D%22ryanmajidi_2-1638323988296.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ERead%20more%20about%20the%20capability%20and%20its%20prerequisites%20at%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fsynapse-analytics%2Fhow-to-access-container-with-access-control-lists%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EBrowse%20ADLS%20Gen2%20folders%20(preview)%20in%20an%20Azure%20Synapse%20Analytics%20workspace%3C%2FA%3E.%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId--1469528397%22%20id%3D%22toc-hId--1469526504%22%20id%3D%22toc-hId--1469526504%22%20id%3D%22toc-hId--1469526504%22%3EData%20Integration%3C%2FH1%3E%0A%3CH2%20id%3D%22toc-hId-1147067155%22%20id%3D%22toc-hId-1147069048%22%20id%3D%22toc-hId-1147069048%22%20id%3D%22toc-hId-1147069048%22%3EPipeline%20Fail%20activity%3C%2FH2%3E%0A%3CP%3EWhen%20orchestrating%20data%20processing%20jobs%20in%20Azure%20Synapse%20pipelines%2C%20you%20might%20occasionally%20want%20to%20throw%20an%20error%20in%20a%20pipeline%20intentionally.%20For%20example%2C%20a%20Lookup%20activity%20might%20return%20no%20matching%20data%2C%20or%20a%20Synapse%20Spark%20Notebook%20activity%20might%20finish%20with%20an%20error.%20Whatever%20the%20reason%20might%20be%2C%20now%20you%20can%20use%20a%20Fail%20activity%20in%20a%20pipeline%20and%20customize%20both%20its%20error%20message%20and%20error%20code.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_11-1638323898732.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330786iC9F25098AF749B4C%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_11-1638323898732.png%22%20alt%3D%22ryanmajidi_11-1638323898732.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EWithin%20your%20pipeline%20logic%2C%20you%20can%20add%20a%20Fail%20activity%20with%20your%20own%20custom%20message%20and%20error%20code%20that%20will%20be%20returned%20to%20the%20pipeline%20monitoring%20backend%20as%20a%20failure.%20Now%2C%20you%20can%20view%20the%20return%20code%20and%20message%20from%20the%20pipeline%20monitoring%20view.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Fcontrol-flow-fail-activity%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3EExecute%20a%20Fail%20activity%20in%20Azure%20Data%20Factory%20and%20Synapse%20Analytics%3C%2FA%3E%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--660387308%22%20id%3D%22toc-hId--660385415%22%20id%3D%22toc-hId--660385415%22%20id%3D%22toc-hId--660385415%22%3EMapping%20Data%20Flow%20gets%20new%20native%20connectors%3C%2FH2%3E%0A%3CP%3EData%20flows%20allow%20data%20transformation%20using%20a%20visual%20designer%20instead%20of%20writing%20code.%20We%E2%80%99ve%20added%20two%20new%20native%20mapping%20data%20flow%20connectors%20for%20Synapse%20Analytics.%20You%20can%20now%20connect%20directly%20to%20your%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Fconnector-amazon-simple-storage-service%3Ftabs%3Ddata-factory%26amp%3Bwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%23mapping-data-flow-properties%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAWS%20S3%20buckets%3C%2FA%3E%26nbsp%3Bfor%20data%20transformations%20and%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Fconnector-azure-data-explorer%3Ftabs%3Ddata-factory%26amp%3Bwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%23mapping-data-flow-properties%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAzure%20Data%20Explorer%3C%2FA%3E%26nbsp%3Bclusters.%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_4%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_5-1638324015996.png%22%20style%3D%22width%3A%20226px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330792iBF2716F09D3FB4FB%2Fimage-dimensions%2F226x218%3Fv%3Dv2%22%20width%3D%22226%22%20height%3D%22218%22%20role%3D%22button%22%20title%3D%22ryanmajidi_5-1638324015996.png%22%20alt%3D%22ryanmajidi_5-1638324015996.png%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_7-1638324027762.png%22%20style%3D%22width%3A%20225px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330794iDEEE560178F76014%2Fimage-dimensions%2F225x212%3Fv%3Dv2%22%20width%3D%22225%22%20height%3D%22212%22%20role%3D%22button%22%20title%3D%22ryanmajidi_7-1638324027762.png%22%20alt%3D%22ryanmajidi_7-1638324027762.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWith%20these%20additional%20connectors%2C%20you%20can%20build%20ETL%20patterns%20at%20Spark%20scale%20in%20a%20code-free%20design%20environment%20without%20ever%20touching%20the%20Spark%20compute.%20Azure%20Integration%20Runtimes%20allow%20you%20to%20define%20the%20Spark%20environment%20and%20provide%20a%20serverless%20Spark%20compute%20for%20your%20data%20transformation%20pipelines.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20screenshot%20below%20shows%20an%20ADX%20connector%20used%20as%20a%20source%20in%20the%20data%20flow%20to%20read%20NYC%20taxi%20data.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_8-1638324046250.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330795i5872093C309DF832%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_8-1638324046250.png%22%20alt%3D%22ryanmajidi_8-1638324046250.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-data-factory%2Fmapping-data-flow-gets-new-native-connectors%2Fba-p%2F2866754%22%20target%3D%22_blank%22%3EMapping%20Data%20Flow%20gets%20new%20native%20connectors%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH1%20id%3D%22toc-hId-1698042806%22%20id%3D%22toc-hId-1698044699%22%20id%3D%22toc-hId-1698044699%22%20id%3D%22toc-hId-1698044699%22%3ESynapse%20Link%3C%2FH1%3E%0A%3CP%3ESynapse%20Link%20enables%20near%20real-time%20analytics%20over%20your%20operational%20data%20with%20a%20simple%20experience%20and%20no%20managed-ETL.%20By%20bringing%20your%20operational%20data%20to%20Synapse%2C%20this%20feature%20enables%20limitless%20cloud%20analytics%20capabilities%20and%20eliminates%20barriers%20to%20doing%20analytics%20with%20operational%20data%20and%20business%20application%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_10-1638324069306.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330797iC6B4A325022A4F20%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_10-1638324069306.png%22%20alt%3D%22ryanmajidi_10-1638324069306.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-717833003%22%20id%3D%22toc-hId-717834896%22%20id%3D%22toc-hId-717834896%22%20id%3D%22toc-hId-717834896%22%3ESynapse%20Link%20for%20Dataverse%3C%2FH2%3E%0A%3CP%3ESynapse%20Link%20for%20Dataverse%20accelerates%20time%20to%20insights%20from%20your%20valuable%20business%20applications%20data%20using%20Azure%20Synapse%20Analytics.%20Previously%20available%20in%20Preview%2C%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fazure-synapse-analytics%2Fignite-2021-announcements-accelerate-time-to-insight-with-azure%2Fba-p%2F2912147%23.YYGOeTDkHqM.twitter%22%20target%3D%22_blank%22%3ESynapse%20Link%20for%20Dataverse%3C%2FA%3E%20is%20now%20Generally%20Available.%3C%2FP%3E%0A%3CDIV%20id%3D%22tinyMceEditorryanmajidi_14%22%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ryanmajidi_0-1638324178180.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330802i46C476BC765730F9%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ryanmajidi_0-1638324178180.png%22%20alt%3D%22ryanmajidi_0-1638324178180.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fpowerapps%2Fmaker%2Fdata-platform%2Fazure-synapse-link-synapse%3Fwt.mc_id%3Dazsynapseblog_nov2021_blog_azureeng%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ECreate%20an%20Azure%20Synapse%20Link%20for%20Dataverse%20with%20your%20Azure%20Synapse%20Workspace%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--1089621460%22%20id%3D%22toc-hId--1089619567%22%20id%3D%22toc-hId--1089619567%22%20id%3D%22toc-hId--1089619567%22%3ECustom%20partitions%20for%20Synapse%20link%20for%20Azure%20Cosmos%20DB%20in%20preview%3C%2FH2%3E%0A%3CP%3ESynapse%20Link%20for%20Azure%20Cosmos%20DB%20uses%20the%20Cosmos%20DB%20Analytical%20Store%20to%20let%20Synapse%20get%20insights%20into%20data%20from%20Cosmos%20DB.%20Getting%20the%20right%20partitioning%20for%20analytical%20data%20is%20critical%20getting%20the%20best%20performance%2C%20but%20so%20far%20there%20has%20been%20no%20way%20to%20control%20the%20partitioning%20used%20by%20the%20Analytical%20Store.%20With%20this%20update%2C%20you%20can%20improve%20query%20execution%20times%20for%20your%20Spark%20queries%2C%20by%20creating%20custom%20partitions%20based%20on%20fields%20frequently%20used%20in%20your%20queries.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20learn%20more%20read%20%3CA%20href%3D%22https%3A%2F%2Fdevblogs.microsoft.com%2Fcosmosdb%2Fcustom-partitioning-azure-synapse-link%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ESupport%20for%20custom%20partitioning%20in%20Azure%20Synapse%20Link%20for%20Azure%20Cosmos%20DB%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EAdditional%20capabilities%20released%20recently%20for%20Synapse%20link%20for%20Cosmos%20DB%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ESynapse%20Link%20for%20serverless%20accounts%3C%2FLI%3E%0A%3CLI%3EFull-fidelity%20schema%20for%20Core%20(SQL)%20API%20accounts.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20id%3D%22toc-hId-1397891373%22%20id%3D%22toc-hId-1397893266%22%20id%3D%22toc-hId-1397893266%22%20id%3D%22toc-hId-1397893266%22%3ESynapse%20Link%20for%20SQL%20Server%3C%2FH2%3E%0A%3CP%3ESynapse%20Link%20is%20all%20about%20accelerating%20time%20to%20insight%20from%20the%20data%20you%20already%20have.%20%3CSTRONG%3ESynapse%20Link%20for%20SQL%20Server%3C%2FSTRONG%3E%20extends%20this%20to%20transactional%20data%20residing%20on-premises.%20You%20can%20now%20apply%20for%20the%20preview%20of%20%3CA%20href%3D%22https%3A%2F%2Fcloudblogs.microsoft.com%2Fsqlserver%2F2021%2F11%2F02%2Fannouncing-sql-server-2022-preview-azure-enabled-with-continued-performance-and-security-innovation%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ESynapse%20Link%20for%20SQL%20Server%2022%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-3020740%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22General.PNG%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330694iB1A6F7EEEDB3C729%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22General.PNG%22%20alt%3D%22General.PNG%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ELearn%20about%20all%20the%20new%20improvements%20and%20features%20in%20November%202021%20update%20for%20Azure%20Synapse%20Analytics.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-3020740%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EUpdates%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-3026849%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Synapse%20Analytics%20November%202021%20Update%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3026849%22%20slang%3D%22en-US%22%3E%3CP%3EThe%20error%20handling%20in%20OPENROWSET%20doesn't%20seem%20to%20work%20when%20PARSER_VERSION%202.0%20is%20specified%20when%20dealing%20with%20delimited%20data%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%22%3CSPAN%3EERRORFILE_LOCATION%20is%20not%20supported%20for%20specified%20file%20format.%3C%2FSPAN%3E%22%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EIs%20this%20supported%20when%20using%20PARSER_VERSION%20%3D%202%3F%26nbsp%3B%20Without%20it%20we%20need%20to%20use%20the%20older%20version%20which%20is%20slower.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Co-Authors
Version history
Last update:
‎Dec 20 2021 03:31 PM
Updated by: