數據無從驗證擷取引擎
本文說明如何使用 PowerApps、Azure Logic Apps 和 Azure Data Factory 中由元數據驅動的複製任務組合,實現資料不可知的擷取引擎情境。
與數據無關的擷取引擎案例通常著重於讓非技術性(非數據工程師)用戶將數據資產發佈至 Data Lake,以便進一步處理。 若要實作此案例,您必須具備能支援以下功能的導入能力:
- 數據資產註冊
- 工作流程布建和元數據擷取
- 數據匯入排程
您可以看到這些功能如何互動:
圖 1:數據註冊功能互動。
下圖顯示如何使用 Azure 服務的組合來實作此程式:
圖 2:自動化資料匯入流程。
數據資產註冊
若要提供用來驅動自動化擷取的元數據,您需要數據資產註冊。 您擷取的資訊包含:
- 技術資訊: 數據資產名稱、來源系統、類型、格式和頻率。
- 治理資訊: 擁有者、管家、可見度(用於探索目的)和敏感度。
PowerApps 可用來擷取描述每個數據資產的元數據。 使用模型驅動應用程式來輸入保存至自定義 Dataverse 資料表的資訊。 在 Dataverse 內建立或更新元數據時,它會觸發自動雲端流程,以叫用進一步的處理步驟。
圖 3:數據資產註冊。
布建工作流程/元數據擷取
在布建工作流程階段中,您會驗證並保存註冊階段中收集的數據至中繼存放區。 技術和商務驗證步驟都會執行,包括:
- 輸入數據流驗證
- 核准工作流程觸發
- 觸發元數據持續性至元數據存放區的邏輯處理
- 活動稽核
圖 4:註冊工作流程。
擷取要求獲得核准後,工作流程會使用 Microsoft Purview REST API 將來源插入 Microsoft Purview。
上線數據產品的詳細工作流程
圖 5:新數據集的擷取方式(自動化)。
圖 5 顯示自動化新資料來源擷取的詳細註冊程式:
- 來源詳細數據會註冊,包括生產與數據處理站環境。
- 捕捉數據形狀、格式和品質限制。
- 資料應用團隊應該指示資料是否 敏感性(個人資料) 此分類將推動建立資料湖資料夾的過程,以內嵌原始、豐富及策劃的資料。 來源命名原始數據和豐富數據,數據產品稱為精選數據。
- 系統會建立服務主體和安全群組以匯入數據集並提供存取權限。
- 資料導入作業會在資料著陸區 Data Factory 中繼資料儲存庫中建立。
- 一個 API 會將資料定義插入 Microsoft Purview。
- 根據作業小組的數據源驗證和核准,詳細數據會發佈至 Data Factory 中繼存放區。
資料導入排程
在 Azure Data Factory 中,元數據驅動複製工作 提供功能,讓協調流程管線可由儲存在 Azure SQL Database 中控制數據表中的數據列所驅動。 您可以使用複製資料工具預先建立元資料驅動管線。
建立資料管道之後,您的供應工作流程會將記錄新增至控制數據表,以支援從由數據資產註冊元數據識別的來源進行擷取。 Azure Data Factory 管線和包含控制數據表中繼存放區的 Azure SQL Database 可以存在於每個數據登陸區域內,以建立新的數據源,並將其內嵌至數據登陸區域。
圖 6:數據資產擷取的排程。
內嵌新數據源的詳細工作流程
下圖顯示如何在 Data Factory SQL Database 中繼存放區中提取已註冊的數據源,以及如何先擷取數據:
Data Factory 匯入主管線會從 Data Factory SQL Database 中樞資料存放庫讀取設定,然後以正確的參數依序執行。 數據會從來源移至 Azure Data Lake 中的原始層,幾乎沒有變更。 數據圖形會根據您的 Data Factory 中繼存放區進行驗證。 檔格式會轉換成 Apache Parquet 或 Avro 格式,然後複製到擴充層。
正在匯入的數據會連線到 Azure Databricks 數據科學和工程工作區,並在數據登陸區域的 Apache Hive Metastore 中建立數據定義。
如果您需要使用 Azure Synapse 無伺服器 SQL 集區來公開數據,您的自定義解決方案應該會在 Lake 中的數據上建立檢視。
如果您需要數據列層級或數據行層級加密,您的自定義解決方案應該將數據登陸在 Data Lake 中,然後將數據直接內嵌到 SQL 集區中的內部數據表,並在 SQL 集區計算上設定適當的安全性。
擷取的元數據
使用自動化數據擷取時,您可以查詢相關聯的元數據,並建立儀錶板來:
- 追蹤與其功能相關的數據產品的工作和最新的數據載入時間戳記。
- 追蹤可用的數據產品。
- 增加數據量
- 取得有關作業失敗的即時更新。
工作元數據可用來追蹤:
- 作業、作業步驟及其相依性。
- 作業效能和效能歷程記錄。
- 數據量成長。
- 作業失敗。
- 來源元數據變更。
- 相依於數據產品的商務功能。
使用 Microsoft Purview REST API 來探索數據
Microsoft Purview REST API 應該用來在初始擷取期間註冊數據。 在數據導入後即刻,您可以使用 API 將數據提交至資料目錄。
如需詳細資訊,請參閱 如何使用 Microsoft Purview REST API。
註冊數據源
使用下列 API 呼叫來註冊新的資料來源:
PUT https://{accountName}.scan.purview.azure.com/datasources/{dataSourceName}
數據源 URI 參數:
名字 | 必填 | 類型 | 描述 |
---|---|---|---|
accountName |
真的 | 字串 | Microsoft Purview 帳戶的名稱 |
dataSourceName |
真 | 字串 | 數據源的名稱 |
使用 Microsoft Purview REST API 進行註冊
下列範例示範如何使用 Microsoft Purview REST API 向承載註冊數據源:
註冊 Azure Data Lake Storage Gen2 數據源:
{
"kind":"AdlsGen2",
"name":"<source-name> (for example, My-AzureDataLakeStorage)",
"properties":{
"endpoint":"<endpoint> (for example, https://adls-account.dfs.core.windows.net/)",
"subscriptionId":"<azure-subscription-guid>",
"resourceGroup":"<resource-group>",
"location":"<region>",
"parentCollection":{
"type":"DataSourceReference",
"referenceName":"<collection-name>"
}
}
}
註冊 SQL Database 數據源:
{
"kind":"<source-kind> (for example, AdlsGen2)",
"name":"<source-name> (for example, My-AzureSQLDatabase)",
"properties":{
"serverEndpoint":"<server-endpoint> (for example, sqlservername.database.windows.net)",
"subscriptionId":"<azure-subscription-guid>",
"resourceGroup":"<resource-group>",
"location":"<region>",
"parentCollection":{
"type":"DataSourceReference",
"referenceName":"<collection-name>"
}
}
}
注意
<collection-name>
是存在於Microsoft Purview 帳戶中的目前集合。
建立掃描
瞭解如何在設定和執行掃描之前,先建立認證,以在 Microsoft Purview 中驗證來源。
使用下列 API 呼叫來掃描資料來源:
PUT https://{accountName}.scan.purview.azure.com/datasources/{dataSourceName}/scans/{newScanName}/
掃描的 URI 參數:
名字 | 必填 | 類型 | 描述 |
---|---|---|---|
accountName |
是 | 字串 | Microsoft Purview 帳戶的名稱 |
dataSourceName |
真 | 字串 | 數據源的名稱 |
newScanName |
真 | 字串 | 新掃描的名稱 |
使用 Microsoft Purview REST API 進行掃描
下列範例示範如何使用 Microsoft Purview REST API 來掃描具有承載的數據源:
掃描 Azure Data Lake Storage Gen2 數據源:
{
"name":"<scan-name>",
"kind":"AdlsGen2Msi",
"properties":
{
"scanRulesetType":"System",
"scanRulesetName":"AdlsGen2"
}
}
掃描 SQL Database 數據源:
{
"name":"<scan-name>",
"kind":"AzureSqlDatabaseMsi",
"properties":
{
"scanRulesetType":"System",
"scanRulesetName":"AzureSqlDatabase",
"databaseName": "<database-name>",
"serverEndpoint": "<server-endpoint> (for example, sqlservername.database.windows.net)"
}
}
使用下列 API 呼叫來掃描數據源:
POST https://{accountName}.scan.purview.azure.com/datasources/{dataSourceName}/scans/{newScanName}/run