數據無從驗證擷取引擎
本文說明如何使用 PowerApps、Azure Logic Apps 和 Azure Data Factory 內元數據驅動複製工作的組合,實作與數據無關的擷取引擎案例。
與數據無關的擷取引擎案例通常著重於讓非技術性(非數據工程師)用戶將數據資產發佈至 Data Lake,以便進一步處理。 若要實作此案例,您必須具備啟用下列功能的上線功能:
- 數據資產註冊
- 工作流程布建和元數據擷取
- 擷取排程
您可以看到這些功能如何互動:
圖 1:數據註冊功能互動。
下圖顯示如何使用 Azure 服務的組合來實作此程式:
圖 2:自動化擷取程式。
數據資產註冊
若要提供用來驅動自動化擷取的元數據,您需要數據資產註冊。 您擷取的資訊包含:
- 技術資訊: 數據資產名稱、來源系統、類型、格式和頻率。
- 治理信息: 擁有者、管家、可見度(用於探索目的)和敏感度。
PowerApps 可用來擷取描述每個數據資產的元數據。 使用模型驅動應用程式來輸入保存至自定義 Dataverse 資料表的資訊。 在 Dataverse 內建立或更新元數據時,它會觸發自動雲端流程,以叫用進一步的處理步驟。
圖 3:數據資產註冊。
布建工作流程/元數據擷取
在布建工作流程階段中,您會驗證並保存註冊階段中收集的數據至中繼存放區。 技術和商務驗證步驟都會執行,包括:
- 輸入數據摘要驗證
- 核准工作流程觸發
- 觸發元數據持續性至元數據存放區的邏輯處理
- 活動稽核
圖 4:註冊工作流程。
一旦核准擷取要求,工作流程會使用 Azure Purview REST API 將來源插入 Azure Purview。
上線數據產品的詳細工作流程
圖 5:擷取新數據集的方式(自動化)。
圖 5 顯示自動化新資料來源擷取的詳細註冊程式:
- 來源詳細數據會註冊,包括生產與數據處理站環境。
- 擷取數據圖形、格式和品質條件約束。
- 數據應用程式小組應該指出數據是否敏感 (個人資料) 此分類會驅動數據湖資料夾建立以內嵌未經處理、擴充和策劃數據的程式。 來源會命名未經處理和擴充的數據,以及數據產品名稱策劃的數據。
- 系統會建立服務主體和安全組來擷取和授與數據集的存取權。
- 擷取作業會在數據登陸區域 Data Factory 中繼存放區中建立。
- API 會將數據定義插入 Azure Purview。
- 根據作業小組的數據源驗證和核准,詳細數據會發佈至 Data Factory 中繼存放區。
擷取排程
在 Azure Data Factory 中,元數據驅動複製工作提供功能,可讓協調流程管線由儲存在 Azure SQL 資料庫 中控制數據表中的數據列所驅動。 您可以使用複製資料工具預先建立元資料驅動管線。
建立管線之後,您的布建工作流程會將專案新增至控制數據表,以支援從數據資產註冊元數據識別的來源擷取。 包含控制數據表中繼存放區的 Azure Data Factory 管線和 Azure SQL 資料庫 可以存在於每個數據登陸區域內,以建立新的數據源,並將其內嵌至數據登陸區域。
圖 6:數據資產擷取的排程。
內嵌新數據源的詳細工作流程
下圖顯示如何在 Data Factory SQL 資料庫 中繼存放區中提取已註冊的數據源,以及如何先擷取數據:
Data Factory 擷取主要管線會從 Data Factory SQL 資料庫 中繼存放區讀取設定,然後以正確的參數反覆執行。 數據會從來源移至 Azure Data Lake 中的原始層,幾乎沒有變更。 數據圖形會根據您的 Data Factory 中繼存放區進行驗證。 檔格式會轉換成 Apache Parquet 或 Avro 格式,然後複製到擴充層。
正在擷取的數據會連線到 Azure Databricks 數據科學和工程工作區,並在數據登陸區域 Apache Hive 中繼存放區內建立數據定義。
如果您需要使用 Azure Synapse 無伺服器 SQL 集區來公開數據,您的自定義解決方案應該會在 Lake 中的數據上建立檢視。
如果您需要數據列層級或數據行層級加密,您的自定義解決方案應該將數據登陸在 Data Lake 中,然後將數據直接內嵌到 SQL 集區中的內部數據表,並在 SQL 集區計算上設定適當的安全性。
擷取的元數據
使用自動化數據擷取時,您可以查詢相關聯的元數據,並建立儀錶板來:
- 追蹤作業和最新數據載入時間戳,以取得與其功能相關的數據產品。
- 追蹤可用的數據產品。
- 擴大數據磁碟區。
- 取得有關作業失敗的即時更新。
工作元數據可用來追蹤:
- 作業、作業步驟及其相依性。
- 作業效能和效能歷程記錄。
- 數據量成長。
- 作業失敗。
- 來源元數據變更。
- 相依於數據產品的商務功能。
使用 Azure Purview REST API 來探索數據
Azure Purview REST API 應該用來在初始擷取期間註冊數據。 您可以在擷取數據后不久,使用 API 將數據提交至資料目錄。
如需詳細資訊,請參閱 如何使用 Azure Purview REST API。
註冊資料來源
使用下列 API 呼叫來註冊新的資料來源:
PUT https://{accountName}.scan.purview.azure.com/datasources/{dataSourceName}
資料來源的 URI 參數:
名稱 | 必要 | 類型 | 描述 |
---|---|---|---|
accountName |
True | String | Azure Purview 帳戶的名稱 |
dataSourceName |
True | String | 數據源的名稱 |
使用 Azure Purview REST API 進行註冊
下列範例示範如何使用 Azure Purview REST API 向承載註冊數據源:
註冊 Azure Data Lake 儲存體 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 資料庫 數據源:
{
"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>
是存在於 Azure Purview 帳戶中的目前集合。
建立掃描
瞭解如何在設定和執行掃描之前,先建立 認證來驗證 Azure Purview 中的來源。
使用下列 API 呼叫來掃描資料來源:
PUT https://{accountName}.scan.purview.azure.com/datasources/{dataSourceName}/scans/{newScanName}/
掃描的 URI 參數:
名稱 | 必要 | 類型 | 描述 |
---|---|---|---|
accountName |
True | String | Azure Purview 帳戶的名稱 |
dataSourceName |
True | String | 數據源的名稱 |
newScanName |
True | String | 新掃描的名稱 |
使用 Azure Purview REST API 掃描
下列範例示範如何使用 Azure Purview REST API 來掃描具有承載的數據源:
掃描 Azure Data Lake 儲存體 Gen2 數據源:
{
"name":"<scan-name>",
"kind":"AdlsGen2Msi",
"properties":
{
"scanRulesetType":"System",
"scanRulesetName":"AdlsGen2"
}
}
掃描 SQL 資料庫 資料來源:
{
"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