创建资源集模式规则

大规模数据处理系统通常将单个表作为多个文件存储在存储中。 此概念使用资源集在 Microsoft Purview 中表示。 资源集是数据目录中的单个对象,表示存储中的大量资产。 若要了解详细信息,请参阅 了解资源集

扫描存储帐户时,Microsoft Purview 使用一组定义的模式来确定一组资产是否为资源集。 在某些情况下,Microsoft Purview 的资源组分组可能无法准确反映数据资产。 资源集模式规则允许你自定义或覆盖 Microsoft Purview 检测哪些资产被分组为资源集的方式以及这些资产在目录中的显示方式。

以下源类型当前支持模式规则:

  • Azure Data Lake Storage Gen2
  • Azure Blob 存储
  • Azure 文件存储
  • Amazon S3

必须启用高级资源集功能集才能创建资源集模式规则。 若要了解详细信息,请参阅 了解高级资源集

如何创建资源集模式规则

按照以下步骤创建新的资源集模式规则:

  1. 转到数据映射。 从“源管理”标题下的菜单中选择“ 模式规则 ”。 选择“ + 新建” 以创建新规则集。

    创建新的资源集模式规则

  2. 输入资源集模式规则的范围。 选择存储帐户类型和要创建规则集的存储帐户的名称。 每组规则都相对于文件夹路径字段中指定的 文件夹路径 范围应用。

    创建资源集模式规则配置

  3. 若要输入配置范围的规则,请选择“ + 新建规则”。

  4. 在以下字段中输入 以创建规则:

    1. 规则名称: 配置规则的名称。 此字段对规则适用的资产没有影响。

    2. 限定名称: 一个限定路径,它使用文本、动态替换器和静态替换器的组合来匹配资产与配置规则。 此路径相对于配置规则的范围。 有关如何指定限定名称的详细说明,请参阅下面的 语法 部分。

    3. 显示名称: 资产的显示名称。 此字段是可选的。 使用纯文本和静态替换程序自定义资产在目录中的显示方式。 有关更详细的说明,请参阅下面的 语法 部分。

    4. 不要分组为资源集: 如果启用,匹配的资源不会分组到资源集中。

      创建新的配置规则。

  5. 通过选择“ 添加”保存规则。

注意

创建模式规则后,所有新扫描将在引入期间应用该规则。 数据目录中的现有资产将通过后台进程进行更新,此过程最多可能需要几个小时。

模式规则语法

创建资源集模式规则时,请使用以下语法指定应用哪些资产规则。

) 单个括号 (动态替换器

单个括号用作模式规则中的 动态替换器 。 使用格式 {<replacerName:<replacerType>}在限定名称中指定动态替换器。 如果匹配,动态替换器将用作分组条件,指示应将资产表示为资源集。 如果将资产分组到资源集中,则资源集限定路径将包含 {replacerName} 指定替换器的位置。

例如,如果两个资产 folder1/file-1.csvfolder2/file-2.csv 匹配到规则 {folder:string}/file-{NUM:int}.csv,则资源集将是单个实体 {folder}/file-{NUM}.csv

特殊情况:未分组到资源集中时的动态替换程序

如果为模式规则启用了 “不分组为资源集 ”,则替换器名称为可选字段。 {:<replacerType>} 是有效的语法。 例如, file-{:int}.csv 将成功匹配 file-1.csvfile-2.csv 并创建两个不同的资产,而不是资源集。

静态替换 (双括号)

双括号用作模式规则的限定名称中的 静态替换器 。 使用格式 {{<replacerName>:<replacerType>}}在限定名称中指定静态替换器。 如果匹配,每组唯一静态替换器值将创建不同的资源集分组。

例如,如果两个资产 folder1/file-1.csvfolder2/file-2.csv 匹配到规则 {{folder:string}}/file-{NUM:int}.csv,则会创建 folder1/file-{NUM}.csv 两个资源集 和 folder2/file-{NUM}.csv

静态替换器可用于指定与模式规则匹配的资产的显示名称。 在 {{<replacerName>}} 规则的显示名称中使用 将在资产名称中使用匹配的值。

可用的替换类型

下面是可在静态和动态替换器中使用的可用类型:

类型 结构
string 一系列包含一个或多个 Unicode 字符,包括分隔符(如空格)。
int 一系列包含 1 个或更多 0-9 个 ASCII 字符,可以是 0 前缀 (例如 0001) 。
guid RFC 4122 中定义的 UUID 的一系列 32 或 8-4-4-4-4-12 字符串表示形式。
date 一系列包含 6 或 8 个 0-9 个 ASCII 字符的可选分隔符:yyyymmdd、yyyy-mm-dd、yymmdd、yy-mm-dd,在 RFC 3339 中指定。
time 一系列包含 4 或 6 个 0-9 个 ASCII 字符的可选分隔符: 在 RFC 3339 中指定的 HHmm、HH:mm:mm、HHmmss、HH:mm:ss。
时间 戳 一系列包含 12 或 14 个 0-9 个 ASCII 字符的可选分隔符:yyyy-mm-ddTHH:mm、yyyymmddhhmm、yyyyy-mm-ddTHH:mm:ss、yyyyymmddHHHmmss
boolean 可以包含“true”或“false”,不区分大小写。
number 一系列 0 或更多 0-9 个 ASCII 字符,它可以是 0 前缀 (例如,0001) 后跟一个点“.”,以及一系列 1 个或更多 0-9 个 ASCII 字符,它可以是 0 个后缀 (例如.100)
十六进制 集合 0-1 和 A-F 中的一个或多个 ASCII 字符系列,该值可以是 0 前缀
区域设置 RFC 5646 中指定的语法匹配的字符串。

应用资源集模式规则的顺序

下面是应用模式规则的操作顺序:

  1. 如果资产与两个规则匹配,则更具体的范围将优先。 例如,范围 container/folder 中的规则将先于范围 container中的规则。

  2. 特定范围内的规则顺序。 这可以在 UX 中编辑。

  3. 如果资产与任何指定规则不匹配,则应用默认资源集启发式。

示例

示例 1

SAP 数据提取为完整负载和增量负载

输入

文件:

  • https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_01.txt
  • https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_02.txt
  • https://myazureblob.blob.core.windows.net/bar/customer/delta/2020/01/15/saptable_customer_20200101_20200102_01.txt
  • https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_01.txt
  • https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_02.txt

模式规则

范围:https://myazureblob.blob.core.windows.net/bar/

显示名称: “外部客户”

限定名称:customer/{extract:string}/{year:int}/{month:int}/{day:int}/saptable_customer_{date_from:date}_{date_to:time}_{sequence:int}.txt

资源集: true

输出

一个资源集资产

显示名称: 外部客户

限定名称:https://myazureblob.blob.core.windows.net/bar/customer/{extract}/{year}/{month}/{day}/saptable_customer_{date_from}_{date_to}_{sequence}.txt

示例 2

avro 格式的 IoT 数据

输入

文件:

  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro

模式规则

范围:https://myazureblob.blob.core.windows.net/bar/

规则 1

显示名称: “machine-89”

限定名称:raw/machinename-89/{date:date}/{time:time}-{id:int}.avro

资源集: true

规则 2

显示名称: “machine-90”

限定名称:raw/machinename-90/{date:date}/{time:time}-{id:int}.avro

资源集: true

输出

两个资源集

资源集 1

显示名称: machine-89

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/{date}/{time}-{id}.avro

资源集 2

显示名称: machine-90

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/{date}/{time}-{id}.avro

示例 3

avro 格式的 IoT 数据

输入

文件:

  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
  • https://myazureblob.blob.core.windows.netbar/raw/machinename-89/02-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro

模式规则

范围:https://myazureblob.blob.core.windows.net/bar/

显示名称: “Machine-{{machineid}}”

限定名称:raw/machinename-{{machineid:int}}/{date:date}/{time:time}-{id:int}.avro

资源集: true

输出

资源集 1

显示名称: machine-89

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/{date}/{time}-{id}.avro

资源集 2

显示名称: machine-90

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/{date}/{time}-{id}.avro

示例 4

不要分组到资源集中

输入

文件:

  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
  • https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro

模式规则

范围:https://myazureblob.blob.core.windows.net/bar/

显示名称:Machine-{{machineid}}

限定名称:raw/machinename-{{machineid:int}}/{{:date}}/{{:time}}-{{:int}}.avro

资源集: false

输出

四个单独的资产

资产 1

显示名称: machine-89

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro

资产 2

显示名称: machine-89

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro

资产 3

显示名称: machine-89

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro

资产 4

显示名称: machine-90

限定名称:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro

后续步骤

首先 注册和扫描 Azure Data Lake Gen2 存储帐户