你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

与数据无关的引入引擎

本文介绍如何使用 PowerApps、Azure 逻辑应用和 Azure 数据工厂中元数据驱动的复制任务的组合来实现与数据无关的引入引擎方案。

与数据无关的引入引擎方案通常侧重于让非技术(非数据工程师)用户将数据资产发布到 Data Lake 以便进一步处理。 要实现此场景,你必须具有启用以下功能的载入功能:

  • 数据资产注册
  • 工作流预配和元数据捕获
  • 引入计划

可以看到这些功能的交互方式:

数据注册功能和交互关系图

图 1:数据注册功能交互。

下图显示了如何使用 Azure 服务的组合实现此过程:

与数据无关的引擎的引入过程示意图

图 2:自动引入过程。

数据资产注册

若要提供用于驱动自动引入的元数据,需要数据资产注册。 捕获的信息包含:

  • 技术信息: 数据资产名称、源系统、类型、格式和频率。
  • 治理信息: 所有者、管理者、可见性(用于搜索目的)和敏感度。

PowerApps 用于捕获描述每个数据资产的元数据。 使用模型驱动的应用输入将持久保存到自定义 Dataverse 表中的信息。 在 Dataverse 中创建或更新元数据时,它会触发调用进一步处理步骤的自动化云流。

数据资产注册的示意图。

图 3:数据资产注册。

预配工作流/元数据捕获

在预配工作流阶段,将注册阶段收集的数据验证并保存到元存储。 执行技术和业务验证步骤,包括:

  • 输入数据馈送验证
  • 审批工作流触发
  • 触发用于将元数据持久保存到元数据存储的逻辑处理
  • 活动审计

注册工作流关系图

图 4:注册工作流。

在批准引入请求后,工作流使用 Microsoft Purview REST API 将源插入到 Microsoft Purview 中。

用于载入数据产品的详细工作流

显示新数据集引入方式(自动化) 的 关系图

图 5:如何引入新数据集(自动化)。

图 5 显示了自动引入新数据源的详细注册过程:

  • 注册源详细信息,包括生产环境和数据工厂环境。
  • 数据的形状、格式和质量约束已被记录。
  • 数据应用团队应指出数据是否属于敏感数据(个人数据)。该分类驱动了创建数据湖文件夹以导入原始、补充和精选数据的整个过程。 源名称命名原始数据和扩充数据,数据产品名称整理数据。
  • 创建服务主体和安全组以引入数据集并授予对其的访问权限。
  • 在数据登陆区域数据工厂元存储中创建引入作业。
  • 一个 API 将数据定义插入到 Microsoft Purview。
  • 数据源经过验证并且获得运营团队的批准后,详细信息将发布到数据工厂的元存储。

引入计划

在 Azure 数据工厂中,元数据驱动的复制任务提供的功能使编排管道能够由存储在 Azure SQL 数据库中的控制表中的行驱动。 可以使用复制数据工具预先创建元数据驱动的管道。

创建管道后,你的预配工作流会将条目添加到控制表,以支持从数据资产注册元数据标识的源中进行引入。 Azure 数据工厂管道和包含控制表元存储的 Azure SQL 数据库都可以存在于每个数据登陆区域中,以创建新的数据源并将它们引入数据登陆区域。

数据资产引入的调度关系图

图 6:数据资产引入计划。

引入新数据源的详细工作流

下图显示了如何在数据工厂 SQL 数据库元存储中拉取已注册的数据源,以及如何首次引入数据:

说明如何引入新数据源

数据工厂引入主管道读取数据工厂 SQL 数据库元存储中的配置,然后使用正确的参数以迭代方式运行。 数据从源到 Azure Data Lake 中的原始层,几乎没有变化。 数据形状根据你的数据工厂元存储进行验证。 文件格式将转换为 Apache Parquet 或 Avro 格式,然后将其复制到扩充层。

引入的数据会连接到 Azure Databricks 数据科学和工程工作区,并在数据登陆区域 Apache Hive 元存储中创建数据定义。

如果需要使用 Azure Synapse 无服务器 SQL 池来公开数据,自定义解决方案应基于湖中的数据创建视图。

如果需要行级或列级加密,自定义解决方案应将数据放入 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 True 字符串 Microsoft Purview 帐户的名称
dataSourceName True 字符串 数据源的名称

使用 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 数据库数据源:

{
  "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 True 字符串 Microsoft Purview 帐户的名称
dataSourceName True 字符串 数据源的名称
newScanName True 字符串 新扫描的名称

使用 Microsoft Purview REST API 进行扫描

以下示例演示如何使用 Microsoft Purview REST API 扫描包含有效负载的数据源:

扫描 Azure Data Lake Storage 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

后续步骤