← R2 SQL / r2-sql
Dotazování dat
Dotaz Apache Iceberg ↗ tabulky spravované R2 Data Catalog. Dotazy R2 SQL lze provádět prostřednictvím Wrangler nebo HTTP API.
Zjistěte název svého warehouse
Chcete-li dotazovat data pomocí R2 SQL, potřebujete název warehouse přiřazený k vašemu catalog. Chcete-li jej získat, můžete spustit r2 bucket catalog get příkaz:
npx wrangler r2 bucket catalog get <BUCKET_NAME>Alternativně to najdete v dashboardu po přechodu do Objektové úložiště R2 stránce, vyberte bucket, přepněte na Nastavení kartu a přejděte na R2 Data Catalog, a hledání Název warehouse.
Dotazování přes Wrangler
Nejprve nainstalujte npm ↗. Poté nainstalujte Wrangler, CLI vývojářské platformy.
Pro spouštění dotazů potřebuje Wrangler token API s oprávněními pro přístup k R2 Data Catalog, R2 storage a R2 SQL. r2 sql query příkaz hledá token v proměnné WRANGLER_R2_SQL_AUTH_TOKEN proměnná prostředí.
Nastavení prostředí:
export WRANGLER_R2_SQL_AUTH_TOKEN=YOUR_API_TOKENNebo vytvořte .env soubor pomocí:
WRANGLER_R2_SQL_AUTH_TOKEN=YOUR_API_TOKENKde YOUR_API_TOKEN je token, který jste vytvořili pomocí požadovaná oprávnění. Další informace o nastavení proměnných prostředí najdete v Systémové proměnné prostředí Wrangler.
Pro spuštění SQL dotazu spusťte r2 sql query příkaz:
npx wrangler r2 sql query <WAREHOUSE> "SELECT * FROM namespace.table_name limit 10;"Úplný seznam podporovaných příkazů SQL najdete v Referenční dokumentace R2 SQL.
Dotazování přes API
Níže je uveden příklad použití R2 SQL prostřednictvím REST endpointu:
curl -X POST \
"https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/r2-sql/query/{BUCKET_NAME}" \
-H "Authorization: Bearer ${WRANGLER_R2_SQL_AUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"query": "SELECT * FROM namespace.table_name limit 10;"
}'API požaduje API token s příslušnými oprávněními v hlavičce Authorization. Viz Ověřování kde najdete podrobnosti o vytvoření tokenu.
Úplný seznam podporovaných příkazů SQL najdete v Referenční dokumentace R2 SQL.
Ověřování
Chcete-li dotazovat data pomocí R2 SQL, musíte poskytnout Cloudflare API token s oprávněními R2 SQL, R2 Data Catalog a R2 storage. R2 SQL tato oprávnění potřebuje pro přístup k metadatům katalogu a čtení podkladových datových souborů uložených v R2.
Vytvořte token API v dashboardu
Vytvořte Token R2 API s následujícími oprávněními:
- Přístup k R2 Data Catalog (pouze pro čtení)
- Přístup k úložišti R2 (Admin, čtení/zápis)
- Přístup k R2 SQL (pouze pro čtení)
Tuto hodnotu tokenu použijte pro WRANGLER_R2_SQL_AUTH_TOKEN proměnnou prostředí při dotazování pomocí Wrangler, nebo v hlavičce Authorization při použití REST API.
Vytvořte token API prostřednictvím API
Chcete-li programově vytvořit API token pro použití s R2 SQL, musíte zadat skupiny oprávnění R2 SQL, R2 Data Catalog a R2 storage ve svém Access Policy.
Příklad zásady přístupu
[
{
"id": "f267e341f3dd4697bd3b9f71dd96247f",
"effect": "allow",
"resources": {
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*",
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*"
},
"permission_groups": [
{
"id": "f45430d92e2b4a6cb9f94f2594c141b8",
"name": "Workers R2 SQL Read"
},
{
"id": "d229766a2f7f4d299f20eaa8c9b1fde9",
"name": "Workers R2 Data Catalog Write"
},
{
"id": "bf7481a1826f439697cb59a20b22293e",
"name": "Workers R2 Storage Write"
}
]
}
]Další informace o tom, jak vytvářet API tokeny pro R2 SQL pomocí API, včetně požadovaných skupin oprávnění a příkladů použití, najdete v Vytvoření tokenů API podle dokumentace k API.