本文介绍如何在 Unity Catalog 中创建存储凭据以连接到 Cloudflare R2。 Cloudflare R2 对象存储不会产生流出费用。 通过复制或迁移共享到 R2 的数据,可以在云和区域之间共享数据,而不会产生流出费用。
存储凭据包含提供对云存储的访问权限的长期云凭据。 在 Unity 目录中创建 外部位置 以控制对外部存储的访问时,可以引用存储凭据以及云存储路径。
有关存储凭据和外部位置的详细信息,请参阅 使用 Unity 目录连接到云对象存储。
有关 Unity 目录支持的其他云存储选项的信息,请参阅 Unity 目录支持的云存储选项。
注意
如果要使用 Unity 目录来管理对外部服务(而不是云存储)的访问,请参阅 “创建服务凭据”。
要求
为 Unity Catalog 启用的 Databricks 工作区。
Databricks Runtime 14.3 或更高版本,或 SQL 仓库 2024.15 或更高版本。
如果遇到错误消息
No FileSystem for scheme "r2",则计算可能位于不受支持的版本上。Cloudflare 帐户。 请参阅 https://dash.cloudflare.com/sign-up。
Cloudflare R2 管理员角色。 请参阅 Cloudflare 角色文档。
附加到工作区的 Unity Catalog 元存储的
CREATE STORAGE CREDENTIAL权限。 默认情况下,帐户管理员和元存储管理员具有此权限。
配置 R2 存储桶
创建 Cloudflare R2 存储桶。
你可以使用 Cloudflare 仪表板或 Cloudflare Wrangler 工具。
请参阅 Cloudflare R2“入门”文档 或 Wrangler 文档。
创建 R2 API 令牌并将其应用到存储桶。
请设置以下令牌属性:
权限:对象读取和写入。
此权限将授予读取和写入访问权限,这在使用 R2 存储作为复制目标时是必需的,如使用 Cloudflare R2 副本或将存储迁移到 R2 中所述。
如果要强制实施从 Azure Databricks 到 R2 存储桶的只读访问,可以改为创建一个仅授予只读访问权限的令牌。 但是,这可能是不必要的,因为你可以将存储凭据标记为只读,这样便会忽略此权限授予的任何写入访问权限。
(可选)TTL:要与数据接收者共享存储桶数据的时长。
(可选)客户端 IP 地址筛选:如有要将网络访问限制在指定接收者 IP 地址范围内,请选择此选项。 如果启用此选项,则必须指定接收者的 IP 地址,并且必须将工作区区域的 Databricks 控制平面 NAT IP 地址加入允许列表。
复制 R2 API 令牌值:
- 访问密钥 ID
- 机密访问密钥
重要
令牌值仅显示一次。
在 R2 主页上,转到“帐户详细信息”并复制 R2 帐户 ID。
创建存储凭据
在 Azure Databricks 中,登录到工作区。
单击
目录。
在“快速访问”页中单击“外部数据 >””按钮,转到“凭证”选项卡,然后选择“创建凭证”。
选择“存储凭证”。
选择“Cloudflare API 令牌”作为“凭据类型”。
输入凭据的名称,以及你在配置 R2 存储桶时复制的以下值:
- 帐户 ID
- 访问密钥 ID
- 机密访问密钥
(可选)如果希望用户对使用此存储凭据的外部位置具有只读访问权限,请在“高级”选项中选择“只读”。
如果要使用存储凭据访问用作复制目标的 R2 存储,请不要选择此选项,如使用 Cloudflare R2 副本或将存储迁移到 R2 中所述。
有关详细信息,请参阅将存储凭据标记为只读。
单击 “创建” 。
在“已创建存储凭据”对话框,复制“外部 ID”。
(可选)将存储凭据绑定到特定工作区。
默认情况下,任何附加到元存储的工作区上的特权用户都可以使用存储凭据。 如果只想允许从特定工作区进行访问,请转到“工作区”选项卡并分配工作区。 请参阅(可选)将存储凭据分配到特定工作区。