3. 创建第一个Azure数据共享
在理解了数据共享的提供方—使用方模型之后,接下来要完成的是第一个可用的共享。本节以“销售团队向分析团队共享每日订单明细”为教学场景,演示从 Azure Storage 账户或 Azure Data Lake Storage Gen2(以下简称 ADLS Gen2)创建共享、添加数据集并设置权限的完整过程。示例中的账户名、容器名、路径和权限均为合理假设,用于说明操作逻辑,不代表任何真实环境的实测结果。
一、先确认共享的源与目标
Azure 数据共享的源必须是受支持的存储类型。当前主要支持两类:一是启用分层命名空间的 ADLS Gen2 账户,二是普通 Blob 存储账户(含 BlockBlob)。两者在共享时的差异在于:ADLS Gen2 支持目录级共享和更细的路径控制,普通 Blob 账户通常以容器或文件夹为共享边界。因此,在创建共享前应先确认:
- 存储账户是否已启用“分层命名空间”(即 ADLS Gen2);
- 要共享的是整个容器、某个文件夹,还是单个文件;
- 使用方是同一租户内的团队,还是外部租户或外部组织;
- 共享后使用方是只读,还是需要可写。
在本例中,源为 ADLS Gen2 账户 stsalesprod01,容器 sales,共享路径为 sales/orders/daily/,使用方为分析团队,权限为只读。
二、从存储账户或 ADLS Gen2 创建共享
创建共享的入口在存储账户的“数据共享”边栏中。操作顺序如下:
- 在 Azure 门户中打开源存储账户
stsalesprod01,选择“数据共享” → “+ 创建共享”。 - 在“共享名称”中填写一个可识别的名称,例如
share-sales-daily-orders。名称只用于管理,不影响使用方访问路径。 - 选择“共享类型”。若账户已启用分层命名空间,可选择“ADLS Gen2”;否则选择“Blob”。本例选择 ADLS Gen2。
- 在“数据集”区域点击“+ 添加数据集”,选择容器
sales,再选择文件夹orders/daily。若只共享单个文件,也可直接定位到具体文件。 - 设置“共享权限”。提供方侧可授予“读取”或“读取 + 写入”。本例选择“读取”。
- 确认“使用方”范围:同一租户内可直接指定订阅或租户;跨租户则需填写使用方的租户 ID 或邀请邮箱。
- 点击“创建共享”。创建完成后,共享处于“已发送”或“待接受”状态,等待使用方接受。
需要特别注意的是,共享创建后并不会自动把数据复制到使用方。数据仍保留在提供方的存储账户中,使用方通过共享挂载点以只读方式访问。因此,提供方对源数据的任何更新都会实时反映到使用方侧,这也是数据共享与数据复制最本质的区别。
三、添加数据集与权限设置的关键细节
添加数据集时,路径的粒度决定了使用方能看到的范围。若共享 sales/orders/daily/,使用方只能看到该目录及其子目录,无法访问 sales/orders/monthly/ 或容器内其他目录。这种“最小可见范围”是数据共享安全性的基础。
权限方面,提供方可以设置“读取”或“读取 + 写入”。选择“读取 + 写入”时,使用方可以在共享目录内写入新文件或修改已有文件,但无法删除共享本身或更改共享定义。若使用方需要写入,建议在共享目录内单独划分一个 incoming/ 子目录,避免与提供方原始数据混写。
此外,ADLS Gen2 共享支持“快照”选项。若希望使用方看到某一时刻的稳定数据,可在创建共享时启用快照,这样即使源数据后续发生变化,使用方仍能访问快照版本。快照会占用额外存储空间,需根据数据量和保留周期评估成本。
四、共享创建后的状态与验证
共享创建完成后,提供方可以在“数据共享” → “已发送的共享”中看到该共享的状态。常见状态包括:
- 待接受:使用方尚未接受邀请;
- 已接受:使用方已接受,可以挂载;
- 已拒绝:使用方拒绝,提供方需重新发起或调整权限;
- 已过期:共享超过有效期,需重新激活或重建。
验证时,提供方可以请使用方在 Azure 门户的“数据共享” → “已接收的共享”中查看该共享,并尝试将其挂载到 Databricks、Synapse 或 Azure Storage Explorer。若挂载成功且能列出 orders/daily/ 下的文件,说明共享链路已打通。若挂载失败,优先检查使用方是否已接受邀请、网络是否允许访问存储账户、以及使用方身份是否被正确授权。
五、常见问题与排查思路
第一次创建共享时,最容易遇到三类问题。第一类是“使用方看不到共享”,通常是因为邀请尚未被接受,或使用方租户未正确配置。第二类是“挂载后无法列出文件”,常见原因是共享路径写错、使用方身份未被授权,或存储账户防火墙阻止了访问。第三类是“权限不足”,例如使用方尝试写入但共享只授予了读取权限。
排查时建议按“共享状态 → 路径 → 权限 → 网络”的顺序逐层检查。先确认共享状态为“已接受”,再核对共享路径是否与源目录完全一致,然后检查权限是否包含所需操作,最后确认存储账户的网络规则是否允许使用方所在网络访问。若使用方在外部租户,还需确认跨租户邀请是否已正确发送并接受。
六、可复用的创建检查清单
| 检查项 | 示例值 | 判断标准 |
|---|---|---|
| 源存储类型 | ADLS Gen2 | 已启用分层命名空间 |
| 共享路径 | sales/orders/daily/ | 路径存在且包含目标数据 |
| 共享名称 | share-sales-daily-orders | 可识别、不与现有共享重名 |
| 权限 | 读取 | 使用方仅需读取时选择读取 |
| 使用方范围 | 分析团队租户 | 同租户或跨租户邀请已发送 |
| 共享状态 | 已接受 | 使用方已接受邀请 |
| 挂载验证 | Storage Explorer | 可列出 orders/daily/ 下文件 |
完成以上步骤后,第一个 Azure 数据共享即已建立。此时提供方可以在“已发送的共享”中持续监控状态,使用方则可以在自己的环境中通过挂载点读取数据。后续若需要调整路径或权限,提供方可以直接修改共享定义,使用方无需重新接受邀请即可看到变化。掌握这一基本流程后,就可以进一步处理多数据集共享、跨租户协作和共享监控等更复杂的场景。