[ PROMPT_NODE_24240 ]
R2 SQL 配置说明
[ SKILL_DOCUMENTATION ]
# R2 SQL 配置
R2 SQL 查询的设置与配置。
## 先决条件
- 已启用数据目录的 R2 存储桶
- 具有 R2 权限的 API 令牌
- 已安装 Wrangler CLI(用于 CLI 查询)
## 启用 R2 数据目录
R2 SQL 查询 R2 数据目录中的 Apache Iceberg 表。必须先在存储桶上启用目录。
### 通过 Wrangler CLI
bash
npx wrangler r2 bucket catalog enable
输出包括:
- **仓库名称** - 通常与存储桶名称相同
- **目录 URI** - 目录操作的 REST 端点
输出示例:
Catalog enabled successfully
Warehouse: my-bucket
Catalog URI: https://abc123.r2.cloudflarestorage.com/iceberg/my-bucket
### 通过仪表板
1. 导航至 **R2 对象存储** → 选择您的存储桶
2. 点击 **设置** 选项卡
3. 滚动至 **R2 数据目录** 部分
4. 点击 **启用**
5. 记录 **目录 URI** 和 **仓库** 名称
**重要:** 启用目录会在存储桶中创建元数据目录,但不会修改现有对象。
## 创建 API 令牌
R2 SQL 需要具有 R2 权限的 API 令牌。
### 所需权限
**R2 管理员读写**(包含 R2 SQL 读取权限)
### 通过仪表板
1. 导航至 **R2 对象存储**
2. 点击 **管理 API 令牌**(右上角)
3. 点击 **创建 API 令牌**
4. 选择 **管理员读写** 权限
5. 点击 **创建 API 令牌**
6. **复制令牌值** - 仅显示一次
### 权限范围
| 权限 | 授予访问权限 |
|------------|------------------|
| R2 管理员读写 | R2 存储操作 + R2 SQL 查询 + 数据目录操作 |
| R2 SQL 读取 | 仅 SQL 查询(无存储写入) |
**注意:** R2 SQL 读取权限尚未在仪表板中提供 - 请使用管理员读写权限。
## 配置环境
### Wrangler CLI
设置环境变量供 Wrangler 使用:
bash
export WRANGLER_R2_SQL_AUTH_TOKEN=
或在项目目录中创建 `.env` 文件:
WRANGLER_R2_SQL_AUTH_TOKEN=
Wrangler 在运行命令时会自动加载 `.env` 文件。
### HTTP API
对于编程访问(非 Wrangler),在 Authorization 标头中传递令牌:
bash
curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/sql/query
-H "Authorization: Bearer "
-H "Content-Type: application/json"
-d '{
"warehouse": "my-bucket",
"query": "SELECT * FROM default.my_table LIMIT 10"
}'
**注意:** HTTP API 端点 URL 可能会有所不同 - 请参阅 [patterns.md](patterns.md#ht