创建用于连接到 Cloudflare R2 的存储凭据
本文介绍如何在 Unity Catalog 中创建存储凭据以连接到 Cloudflare R2。 Cloudflare R2 对象存储不会产生流出费用。 通过复制或迁移共享到 R2 的数据,可以在云和区域之间共享数据,而不会产生流出费用。
注意
Unity Catalog 支持 Azure Databricks 的两个云存储选项:Azure Data Lake Storage Gen2 容器和 Cloudflare R2 存储桶。 Cloudflare R2 主要用于你希望避免产生云提供商数据流出费用的 Delta Sharing 用例。 Azure Data Lake Storage Gen2 适用于大多数其他用例。 请参阅监视和管理 Delta Sharing 流出成本(面向提供者)以及创建用于连接到 Azure Data Lake Storage Gen2 的存储凭据。
若要将 R2 存储桶用作 Unity Catalog 管理的数据的存储位置,必须创建可授权访问 R2 存储桶的存储凭据,并创建引用该存储凭据和存储桶路径的外部位置:
- 存储凭据 - 封装提供对云存储的访问权限的长期云凭据。
- 外部位置 - 包含对存储凭据和云存储路径的引用。
本文将重点介绍如何创建存储凭据。
有关详细信息,请参阅使用 Unity Catalog 管理对云存储的访问。
要求
为 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”。
(可选)将存储凭据绑定到特定工作区。
默认情况下,任何附加到元存储的工作区上的特权用户都可以使用存储凭据。 如果只想允许从特定工作区进行访问,请转到“工作区”选项卡并分配工作区。 请参阅(可选)将存储凭据分配到特定工作区。