本文提供使用 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) |
假 |
描述项的常见详细信息 |
描述 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 对象:Path 和 Action。 |
权限范围
定义一组属性,用于确定对资源的访问权限的范围和级别。
| 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 设置控制的对象类型的列表。 每个条目都包含一个 name和 state可选 subObjectTypes项。 |
对象类型
可跟踪 ALM作的对象类型。
| Name |
类型 |
必选 |
Description |
| 姓名 |
String |
是 |
对象类型名称。 当前支持的对象类型为 Shortcuts: DataAccessRoles.
Shortcuts 默认启用, DataAccessRoles 默认情况下处于禁用状态。 |
| 状态 |
String |
是 |
对象类型(Enabled 或 Disabled)的启用状态。 |
| subObjectTypes |
Object[] |
假 |
子对象类型的可选列表及其本身 name 和 state。 仅支持 Shortcuts |
SubObjectType
可跟踪 ALM作的子对象类型。 支持 Shortcuts 对象类型。
| Name |
类型 |
必选 |
Description |
| 姓名 |
String |
是 |
子对象类型名称(例如: Shortcuts.OneLake) 。 有关支持值的完整列表,请参阅示例。 |
| 状态 |
String |
是 |
子对象类型(Enabled 或 Disabled)的启用状态。 |
{
"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"
}
]
}