Query
Use query to run read-only SQL over Iceberg tables created by ELT pipelines and over the shared observability pipelines (otel-logs, otel-metrics, otel-traces).
Status: Preview — ExecuteStatement, ListTables, and DescribeTable are callable. StopQuery is not implemented and is not callable. Your tenant_id comes from the authenticated JWT. Observability queries always filter to that tenant.
Before you start
- Get a Skippr Cloud access token from Auth.
- Ensure your ABAC policy allows
query:ExecuteStatement(orquery:Invoke). - Use region
eu-central-1.
Concepts
- CloudQuery is the JSON door. You do not connect to Flight SQL yourself.
- Datalake tables exist only as ELT pipeline outputs. Query cannot create tables.
- Observability SQL uses the same three pipelines for every tenant, including
system. Isolation is the bronzetenant_idcolumn.
Run a statement
bash
export CLOUD_BEARER_TOKEN='<access_token>'
curl -sS https://query.eu-central-1.cloud.skippr.io/ \
-H "Authorization: Bearer ${CLOUD_BEARER_TOKEN}" \
-H 'Content-Type: application/json' \
-H 'X-Cloud-Target: CloudQuery.ExecuteStatement' \
-d '{"sql": "SELECT * FROM otel_logs_tail('\''app'\'', 0, 9999999999999999999)"}'The service binds tenant_id from your JWT. A query that names a different tenant is rejected.
Access
- Hostname:
query.eu-central-1.cloud.skippr.io(alsoapi.cloud.skippr.iowithX-Cloud-Target: CloudQuery.*) - Auth: Bearer JWT or SigV4 service
query - Region:
eu-central-1
