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

与数据无关的引入引擎

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

与数据无关的引入引擎方案通常专注于能够让非技术用户(非数据工程师)将数据资产发布到数据湖以进行进一步处理。 要实现此方案,你必须具有启用以下功能的入职功能:

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

你可以看到这些功能如何交互:

数据注册功能和交互示意图

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

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

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

图 2:自动引入过程。

数据资产注册

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

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

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

数据资产注册示意图。

图 3:数据资产注册。

预配工作流/元数据捕获

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

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

注册工作流程示意图

图 4:注册工作流程。

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

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

显示如何引入新数据集的示意图(自动化)

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

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

  • 注册源详细信息,包括生产环境和数据工厂环境。
  • 捕获数据形状、格式和质量约束。
  • 数据应用程序团队应指明数据是否敏感(个人数据)。此分类推动创建数据湖文件夹以获取原始、丰富和精选数据的过程。 源名称命名原始数据和扩充数据,数据产品命名策展数据。
  • 创建服务主体和安全组以引入数据集并授予对其的访问权限。
  • 在数据登陆区域数据工厂元存储中创建引入作业。
  • API 将数据定义插入 Azure Purview 中。
  • 经数据源验证和操作团队批准后,将详细信息发布到数据工厂元存储。

引入计划

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

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

数据资产引入计划示意图

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

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

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

如何引入新数据源的图表

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

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

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

如果你需要行级或列级加密,你的自定义解决方案应将数据放入数据湖中,然后将数据直接引入到 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 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> 是当前存在于 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 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

后续步骤