Apache Trino
Below is an example of using Apache Trino ↗ to connect to R2 Data Catalog. For more information on connecting to R2 Data Catalog with Trino, refer to Trino documentation ↗.
- Sign up for a Cloudflare account ↗.
- Create an R2 bucket and enable the data catalog.
- Create an R2 API token, key, and secret with both R2 and data catalog permissions.
- Install Docker ↗ to run the Trino container.
Create a local directory for the catalog configuration and change directories to it
mkdir -p trino-catalog && cd trino-catalog/
Create a configuration file called r2.properties
for your R2 Data Catalog connection:
# r2.propertiesconnector.name=iceberg
# R2 Configurationfs.native-s3.enabled=trues3.region=autos3.aws-access-key=<Your R2 access key>s3.aws-secret-key=<Your R2 secret>s3.endpoint=<Your R2 endpoint>s3.path-style-access=true
# R2 Data Catalog Configurationiceberg.catalog.type=resticeberg.rest-catalog.uri=<Your R2 Data Catalog URI>iceberg.rest-catalog.warehouse=<Your R2 Data Catalog warehouse>iceberg.rest-catalog.security=OAUTH2iceberg.rest-catalog.oauth2.token=<Your R2 authentication token>
-
Start Trino with the R2 catalog configuration:
Terminal window # Create a local directory for the catalog configurationmkdir -p trino-catalog# Place your r2.properties file in the catalog directorycp r2.properties trino-catalog/# Run Trino with the catalog configurationdocker run -d \--name trino-r2 \-p 8080:8080 \-v $(pwd)/trino-catalog:/etc/trino/catalog \trinodb/trino:latest -
Connect to Trino and query your R2 Data Catalog:
Terminal window # Connect to the Trino CLIdocker exec -it trino-r2 trino -
In the Trino CLI, run the following commands:
-- Show all schemas in the R2 catalogSHOW SCHEMAS IN r2;-- Show all schemas in the R2 catalogCREATE SCHEMA r2.example_schema-- Create a table with some values in itCREATE TABLE r2.example_schema.yearly_clicks (year,clicks)WITH (partitioning = ARRAY['year'])AS VALUES(2021, 10000),(2022, 20000);-- Show tables in a specific schemaSHOW TABLES IN r2.example_schema;-- Query your Iceberg tableSELECT * FROM r2.example_schema.yearly_clicks;
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark
-