Lakehouse 定义

本文提供使用 LakehouseDefinitionV1 格式的 Lakehouse 项的定义结构细目。 有关详细信息,请参阅: 如何使用 Microsoft Fabric Rest API 创建 lakehouse

支持的格式

Lakehouse 项支持格式 LakehouseDefinitionV1 。 如果未指定任何格式,则默认为 LakehouseDefinitionV1

定义部件

定义部件路径 类型 必选 Description
lakehouse.metadata.json LakehouseMetadata (JSON) 描述 Lakehouse 属性
shortcuts.metadata.json Shortcut[] (JSON) 描述与湖屋关联的一湖快捷方式
data-access-roles.json DataAccessRole[] (JSON) 描述与 Lakehouse 关联的数据访问角色。 仅当通过 AlmSettings启用此部分时才受尊重。 此项默认禁用。
alm.settings.json AlmSettings (JSON) 介绍与 Lakehouse 关联的 ALM 设置
.platform PlatformDetails (JSON) 描述项的常见详细信息

LakehouseMetadata

描述 Lakehouse 元数据。

Name 类型 必选 Description
defaultSchema String 执行的当前状态。

Shortcut

Name 类型 必选 Description
姓名 String 快捷方式的名称。
路径 String 一个字符串,表示在其中创建快捷方式的填充路径,包括“文件”或“表”。
目标 目标 一个包含目标数据源的对象,必须完全指定一个受支持的目标。

目标

一个包含目标数据源的对象,必须指定一个受支持的目标,如下表所述。

Name 类型 必选 Description
adlsGen2 AdlsGen2 包含目标 ADLS Gen2 数据源的属性的对象。
amazonS3 AmazonS3 包含目标 Amazon S3 数据源的属性的对象。
dataverse Dataverse 包含目标 Dataverse 数据源的属性的对象。
googleCloudStorage GoogleCloudStorage 包含目标 Google Cloud Storage 数据源的属性的对象。
oneLake OneLake 包含目标 OneLake 数据源的属性的对象。
s3Compatible S3Compatible 包含目标 S3 兼容数据源的属性的对象。
类型 类型 类型对象包含目标快捷方式帐户类型等属性。 可能会随着时间的推移添加其他类型。

类型(枚举)

类型对象包含目标快捷方式帐户类型等属性。 可能会随着时间的推移添加其他类型。

价值 Description
OneLake OneLake
AmazonS3 AmazonS3
AdlsGen2 AdlsGen2
GoogleCloudStorage GoogleCloudStorage
S3Compatible S3Compatible
Dataverse Dataverse

OneLake

包含目标 OneLake 数据源的属性的对象。

Name 类型 必选 Description
项目编号 string (uuid) OneLake 中目标的 ID。 目标可以是 Lakehouse、KQLDatabase 或 Warehouse 的项。 若要自引用正在创建/更新的当前 Lakehouse,请使用空的 GUID。 在创建/更新期间,空 GUID 映射到当前 Lakehouse。
路径 字符串 一个字符串,表示项中目标文件夹的完整路径。 此路径应相对于 OneLake 目录结构的根目录。 例如:“Tables/myTablesFolder/someTableSubFolder”。
workspaceId string (uuid) 目标工作区的 ID。 若要引用当前工作区,请使用空 GUID。 创建/更新期间,空 GUID 将映射到当前工作区。

AdlsGen2

包含目标 ADLS Gen2 数据源的属性的对象。

Name 类型 必选 Description
connectionId string (uuid) 一个字符串,表示与快捷方式绑定的连接。 connectionId 是用于在快捷方式与目标数据源之间建立连接的唯一标识符。 若要查找此连接 ID,请先创建一个云连接,以在连接到 ADLS 数据位置时由快捷方式使用。 打开云连接的“设置”视图并复制连接 ID;这是 GUID。
位置 string (uri) 指定目标 ADLS 容器的位置。 URI 的格式必须为 https://[account-name].dfs.core.windows.net,其中 [account-name] 是目标 ADLS 帐户的名称。
子路径 字符串 指定目标文件夹所在的 ADLS 帐户中的容器和子文件夹。 必须是格式 [container]/[subfolder],其中 [container] 是保存文件和文件夹的容器的名称;[子文件夹] 是容器中子文件夹的名称(可选)。 例如:/mycontainer/mysubfolder

AmazonS3

包含目标 Amazon S3 数据源的属性的对象。

Name 类型 必选 Description
connectionId string (uuid) 一个字符串,表示与快捷方式绑定的连接。 connectionId 是用于在快捷方式与目标数据源之间建立连接的唯一标识符。 若要查找此连接 ID,请先创建一个云连接,以在连接到 Amazon S3 数据位置时由快捷方式使用。 打开云连接的“设置”视图并复制连接 ID;这是 GUID。
位置 string (uri) 指向 S3 中目标存储桶的 HTTP URL。 URL 的格式应为 https://[bucket-name].s3。[region-code].amazonaws.com,其中“bucket-name”是要指向的 S3 存储桶的名称,“region-code”是存储桶所在的区域的代码。 例如:https://my-s3-bucket.s3.us-west-2.amazonaws.com
子路径 字符串 指定 S3 存储桶中的目标文件夹或子文件夹。

Dataverse

包含目标 Dataverse 数据源的属性的对象。

Name 类型 必选 Description
connectionId string (uuid) 一个字符串,表示与快捷方式绑定的连接。 connectionId 是用于在快捷方式与目标数据源之间建立连接的唯一标识符。 若要查找此连接 ID,请先创建一个云连接,以在连接到 Dataverse 数据位置时由快捷方式使用。 打开云连接的“设置”视图并复制连接 ID;这是 GUID。
deltaLakeFolder 字符串 指定存储目标数据的 DeltaLake 文件夹路径。
environmentDomain string (uri) 指示 Dataverse 目标环境的域名的 URI。 URI 的格式应为 https://[orgname].crm[xx].dynamics.com,其中 [orgname] 表示 Dataverse 组织的名称。
tableName 字符串 指定 Dataverse 中目标表的名称。

S3Compatible

包含目标 S3 兼容数据源的属性的对象。

Name 类型 必选 Description
Bucket 字符串 指定 S3 兼容位置中的目标存储桶。
connectionId string (uuid) 一个字符串,表示与快捷方式绑定的连接。 connectionId 是用于在快捷方式与目标数据源之间建立连接的唯一标识符。
位置 string (uri) S3 兼容终结点的 HTTP URL。 此终结点必须能够接收 ListBuckets S3 API 调用。 URL 必须采用非存储桶特定格式;此处不应指定存储桶。 例如:https://s3endpoint.contoso.com
子路径 字符串 指定 S3 兼容存储桶中的目标文件夹或子文件夹。 例如:/folder

DataAccessRole

Name 类型 Description
decisionRules DecisionRule[] 构成数据访问角色的权限规则数组。
id string (uuid) 数据访问角色的唯一 ID。
成员 Members 成员对象,该对象包含角色的成员作为不同成员类型的数组。
姓名 字符串 数据访问角色的名称。

DecisionRule

指定与请求的作匹配的规则。 包含效果(允许)和权限,用于确定用户或实体是否有权对资源执行特定作。

Name 类型 Description
约束 限制条件 作为此角色的一部分应用于表的任何约束,例如行级或列级安全性。
效果 影响 角色对访问数据资源的影响。 目前唯一支持的值是 Permit
权限 PermissionScope[] permission 属性是一个数组,指定所请求作的范围和访问级别。 数组必须正好包含两个 PermissionScope 对象:PathAction

权限范围

定义一组属性,用于确定对资源的访问权限的范围和级别。

Name 类型 Description
属性名称 属性名称 指定正在评估访问权限的属性的名称(路径或作)。
attributeValueIncludedIn 字符串[] 指定 attributeName 的值列表,以定义对资源的作用域和访问级别。

限制条件

作为此角色的一部分应用于表的任何约束,例如行级或列级安全性。

Name 类型 Description
columns ColumnConstraint[] 应用于数据访问角色中的一个或多个表的列约束数组。
RowConstraint[] 应用于数据访问角色中的一个或多个表的行约束数组。

ColumnConstraint

指示一个约束,该约束确定用户对表中的列的权限和可见性。

Name 类型 Description
columnAction ColumnAction[] 应用于 columnNames 的作数组。 允许的值为 Read
columnEffect ColumnEffect 赋予 columnNames 的效果。 唯一允许的值是 Permit
columnNames 字符串[] 区分大小写的列名的数组。 用于 * 指示表中的所有列。
tablePath 字符串 一个相对文件路径,指定列约束应用于的表(例如 /Tables/{optionalSchema}/{tableName})。

RowConstraint

指示一个约束,该约束确定用户可以查看的表中的行。 使用 RowConstraints 定义的角色使用 T-SQL 来定义筛选表中数据的谓词。

Name 类型 Description
tablePath 字符串 指定行约束适用的表的相对文件路径。
value 字符串 一个 T-SQL 表达式,用于计算角色成员可以看到哪些行。

Members

成员对象,该对象包含角色的成员作为不同成员类型的数组。

除了 FabricItemMembers,Onelake 安全性还支持添加 MicrosoftEntraMembers 列表。 在 lakehouse 项定义 API 和 Lakehouse CICD 中不受支持,如果指定,将忽略它。

Name 类型 Description
fabricItemMembers FabricItemMember[] 在 Microsoft Fabric 中具有特定权限集的成员列表。

FabricItemMember

Name 类型 Description
itemAccess ItemAccess[] 一个列表,用于指定要自动包含在角色成员中的 Fabric 用户的访问权限。
源路径 字符串 具有指定项访问权限的 Fabric 项的路径(格式: {workspaceId}/{itemId}) 。 这始终引用相同的湖屋,仅支持空 GUID (00000000-0000-0000-0000-0000000000000/00000000000000000000000000)

枚举

属性名称

价值 Description
路径 属性名称路径
Action 属性名称作

ColumnAction

价值 Description
读取 ColumnAction 值读取

ColumnEffect

价值 Description
允许 ColumnEffect 类型 Permit

影响

价值 Description
允许 效果类型 Permit

ALMSettings

介绍 Lakehouse 部署管道和 git作的对象类型设置。 这可用于启用或禁用对象类型的 git 集成。

Name 类型 必选 Description
版本 String ALM 设置版本(仅支持的版本为“1.0.1”)。
objectTypes Object[] ALM 设置控制的对象类型的列表。 每个条目都包含一个 namestate可选 subObjectTypes项。

对象类型

可跟踪 ALM作的对象类型。

Name 类型 必选 Description
姓名 String 对象类型名称。 当前支持的对象类型为 ShortcutsDataAccessRoles. Shortcuts 默认启用, DataAccessRoles 默认情况下处于禁用状态。
状态 String 对象类型(EnabledDisabled)的启用状态。
subObjectTypes Object[] 子对象类型的可选列表及其本身 namestate。 仅支持 Shortcuts

SubObjectType

可跟踪 ALM作的子对象类型。 支持 Shortcuts 对象类型。

Name 类型 必选 Description
姓名 String 子对象类型名称(例如: Shortcuts.OneLake) 。 有关支持值的完整列表,请参阅示例。
状态 String 子对象类型(EnabledDisabled)的启用状态。

LakehouseMetadata 示例

{
  "defaultSchema": "dbo"
}

快捷方式示例

[
  {
      "name": "TestShortcut",
      "path": "/Tables/dbo",
      "target": {
        "type": "OneLake",
        "oneLake": {
          "path": "Tables/dbo/publicholidays",
          "itemId": "00000000-0000-0000-0000-000000000000",
          "workspaceId": "00000000-0000-0000-0000-000000000000"
      }
    }
  }
]

DataAccessRoles 示例

[
    {
        "name": "dimensionrulerename",
        "kind": "Policy",
        "decisionRules": [
          {
            "effect": "Permit",
            "permission": [
              {
                "attributeName": "Path",
                "attributeValueIncludedIn": [
                  "/Tables/dbo/dimension_city",
                  "/Tables/dbo/dimension_customer",
                  "/Tables/dbo/dimension_date",
                  "/Tables/dbo/dimension_employee",
                  "/Tables/dbo/dimension_stock_item",
                  "/Tables/bronze"
                ]
              },
              {
                "attributeName": "Action",
                "attributeValueIncludedIn": [
                  "Read"
                ]
              }
            ],
            "constraints": {}
          }
        ],
        "members": {
          "fabricItemMembers": [],
            "microsoftEntraMembers": [
            {
              "tenantId": "1e85000e-ee35-4112-bd46-2f00b3d94154",
              "objectId": "5f3efd37-a6d2-432f-99fa-6adc2848a40a"
            }
          ]
        }
      },
      {
        "name": "DefaultReader",
        "kind": "Policy",
        "decisionRules": [
          {
            "effect": "Permit",
            "permission": [
              {
                "attributeName": "Action",
                "attributeValueIncludedIn": [
                  "Read"
                ]
              },
              {
                "attributeName": "Path",
                "attributeValueIncludedIn": [
                  "*"
                ]
              }
            ]
          }
        ],
        "members": {
          "fabricItemMembers": [
            {
              "itemAccess": [
                "ReadAll"
              ],
              "sourcePath": "00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000"
            }
          ]
        }
      }
    ]

ALMSettings 示例

{
  "version": "1.0.1",
  "objectTypes": [
    {
      "name": "Shortcuts",
      "state": "Enabled",
      "subObjectTypes": [
        {
          "name": "Shortcuts.OneLake",
          "state": "Enabled"
        },
        {
          "name": "Shortcuts.AdlsGen2",
          "state": "Enabled"
        },
        {
          "name": "Shortcuts.Dataverse",
          "state": "Enabled"
        },
        {
          "name": "Shortcuts.AmazonS3",
          "state": "Enabled"
        },
        {
          "name": "Shortcuts.S3Compatible",
          "state": "Enabled"
        },
        {
          "name": "Shortcuts.GoogleCloudStorage",
          "state": "Enabled"
        }
      ]
    },
    {
      "name": "DataAccessRoles",
      "state": "Enabled"
    }
  ]
}