Asset normalization
When ingesting assets into the Microsoft Purview Data Map, different sources updating the same data asset may send similar, but slightly different qualified names. While these qualified names represent the same asset, slight differences such as an extra character may cause these assets on the surface to appear different and cause duplicate entries in Microsoft Purview. To avoid storing duplicate entries and causing confusion when consuming the data catalog, Microsoft Purview automatically applies normalization during ingestion to ensure all fully qualified names of the same entity type are in the same format.
For example, you scan in an Azure Blob with the qualified name https://myaccount.file.core.windows.net/myshare/folderA/folderB/my-file.parquet
. This blob is also consumed by an Azure Data Factory pipeline that will then add lineage information to the asset. The ADF (Azure Data Factory) pipeline may be configured to read the file as https://myAccount.file.core.windows.net//myshare/folderA/folderB/my-file.parquet
. While the qualified name is different, this ADF pipeline is consuming the same piece of data. Normalization ensures that all the metadata from both Azure Blob Storage and Azure Data Factory is visible on a single asset, https://myaccount.file.core.windows.net/myshare/folderA/folderB/my-file.parquet
.
Important
The rules listed below are the only kinds of potential duplication Microsoft Purview currently recognizes. If you are experiencing accidental asset duplication, compare the assets fully qualified names to check for capitalization differences or extra characters. Update any ingestion points, for example your ADF pipelines, so that the qualified names match.
Normalization rules
These are the normalization rules that Microsoft Purview automatically applies.
Encode curly brackets
Applies to: All Assets
Before: https://myaccount.file.core.windows.net/myshare/{folderA}/folder{B/
After: https://myaccount.file.core.windows.net/myshare/%7BfolderA%7D/folder%7BB/
Trim section spaces
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Data Factory, Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool, Azure Cosmos DB, Azure Cognitive Search, Azure Data Explorer, Azure Data Share, Amazon S3
Before: https://myaccount.file.core.windows.net/myshare/ folder A/folderB /
After: https://myaccount.file.core.windows.net/myshare/folder A/folderB/
Remove hostname spaces
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool, Azure Cosmos DB, Azure Cognitive Search, Azure Data Explorer, Azure Data Share, Amazon S3
Before: https://myaccount .file. core.win dows. net/myshare/folderA/folderB/
After: https://myaccount.file.core.windows.net/myshare/folderA/folderB/
Remove square brackets
Applies to: Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool
Before: mssql://foo.database.windows.net/[bar]/dbo/[foo bar]
After: mssql://foo.database.windows.net/bar/dbo/foo%20bar
Note
Spaces between two square brackets will be encoded
Lowercase scheme
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool, Azure Cosmos DB, Azure Cognitive Search, Azure Data Explorer, Amazon S3
Before: HTTPS://myaccount.file.core.windows.net/myshare/folderA/folderB/
After: https://myaccount.file.core.windows.net/myshare/folderA/folderB/
Lowercase hostname
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool, Azure Cosmos DB, Azure Cognitive Search, Azure Data Explorer, Amazon S3
Before: https://myAccount.file.Core.Windows.net/myshare/folderA/folderB/
After: https://myaccount.file.core.windows.net/myshare/folderA/folderB/
Lowercase file extension
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3
Before: https://myAccount.file.core.windows.net/myshare/folderA/data.TXT
After: https://myaccount.file.core.windows.net/myshare/folderA/data.txt
Remove duplicate slash
Applies to: Azure Blob, Azure Files, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Data Factory, Azure SQL Database, Azure SQL Managed Instance, Azure SQL pool, Azure Cosmos DB, Azure Cognitive Search, Azure Data Explorer, Azure Data Share, Amazon S3
Before: https://myAccount.file.core.windows.net//myshare/folderA////folderB/
After: https://myaccount.file.core.windows.net/myshare/folderA/folderB/
Convert to ADL scheme
Applies to: Azure Data Lake Storage Gen1
Before: https://mystore.azuredatalakestore.net/folderA/folderB/abc.csv
After: adl://mystore.azuredatalakestore.net/folderA/folderB/abc.csv
Remove Trailing Slash
Remove the trailing slash from higher level assets for Azure Blob, ADLS Gen1, and ADLS Gen2.
Applies to: Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2
Asset types: "azure_blob_container", "azure_blob_service", "azure_storage_account", "azure_datalake_gen2_service", "azure_datalake_gen2_filesystem", "azure_datalake_gen1_account".
Before: https://myaccount.core.windows.net/
After: https://myaccount.core.windows.net
Troubleshooting
If your data isn't being normalized, and you're experiencing accidental asset duplication, compare the assets fully qualified names to check for capitalization differences or additional characters.
The rules listed above are the only types of duplication Microsoft Purview currently recognizes. If your data is falling outside of these rules, update any ingestion points, for example your ADF pipelines, so that the qualified names match.
If your assets meet the rules but aren't being normalized, contact support.
Next steps
Scan in an Azure Blob Storage account into the Microsoft Purview data map.