- ✅ Supported — includes capabilities that work under documented conditions or that StarTree enables on request; conditions are noted per row
- ⚠️ Preview — early access, not yet generally available
- ❌ Not supported by StarTree
- — Not applicable: the source, service, or format does not offer this capability, so there is nothing for StarTree to support
Catalogs and sources
Every catalog source is reached through a single connector, the Iceberg REST protocol (catalogType=iceberg-rest), with a serviceType selecting the catalog-specific adapter. Raw-file sources list Parquet files directly from object storage without a catalog.
Notes:
- For Nessie, address a branch or ref by setting
catalog.iceberg-rest.prefix(for examplemain); unset means the server default branch. - Azure Blob Storage and ADLS are not supported as sources.
CREATE TABLEover SQL DDL is available as a preview for Iceberg REST sources (serviceTypesrest,glue,s3tables); contact StarTree to enable it.
Table and file formats
Data files: Parquet only, for every source. CSV, JSON, Avro, and ORC data files are not supported. Recommended file size is 128 MB to 512 MB; see Operational Guidance.
Row-level deletes (Iceberg)
How each Iceberg delete mechanism is handled:Authentication and authorization
Iceberg REST sources authenticate on two independent surfaces: the catalog surface (the REST API that serves table metadata, keys undercatalog.iceberg-rest.auth.rest.*) and the storage surface (reading Parquet data files from object storage, keys under catalog.iceberg-rest.auth.storage.*). Raw S3 and GCS sources have a single combined surface (catalog.s3.* / catalog.gcs-interop.*).
Catalog (REST) surface
¹ SigV4 signing is required by the service; the signing credentials can come from static keys, an assumed IAM role, or the cluster node role.
- The dashes reflect the services themselves: AWS Glue and S3 Tables Iceberg REST endpoints accept only SigV4-signed requests, while Unity Catalog and spec-compliant REST catalogs use token or OAuth2 auth and do not speak SigV4.
- Glue:
catalog.iceberg-rest.auth.rest.servicemust be set toglueexplicitly. It defaults tos3tables, which makes Glue reject the SigV4 signature. - Assumed IAM role on the catalog surface: set
catalog.iceberg-rest.auth.rest.roleArn(plus.externalIdif the trust policy requires it).catalog.iceberg-rest.auth.rest.regionis required whenever a catalog-sideroleArnis set; when a role is configured, static keys on that surface are ignored. The role is assumed from the cluster’s ambient identity (IRSA / instance profile). Available on the controller-executor sync path only. - OAuth2 uses the RFC 6749 client-credentials grant:
oauthTokenUri,oauthClientId,oauthClientSecret, and optionaloauthScopes. Tokens are cached and refreshed automatically. - Raw S3 and GCS sources have no catalog surface.
Storage (data file) surface
- Assumed IAM role (storage):
auth.storage.regionis required whenever a storageroleArnis set — the sync fails fast without it. Static storage keys are ignored once a role is configured, and the STSAssumeRolecall authenticates with the cluster’s ambient AWS identity (node role / IRSA), which the role’s trust policy must trust. - Unity vends short-lived S3 credentials per table load by default. Only
catalog.iceberg-rest.auth.storage.regionis needed, and it is required even with vended credentials. Static keys or an assumed role can be configured but are ignored whenever vending succeeds. - GCS accepts HMAC keys only. There is no IAM-role or workload-identity option. With
keyType=SECRET, theaccessKey/secretKeyvalues are Secret Manager secret names, resolved usingsecretmanagertype=GCS,gcpprojectid, andgcpkeypath. Every GCS connection must also setdisable.integrity.protections="true"andendpoint=https://storage.googleapis.com. - Cluster node role means omitting all credential keys so the AWS SDK default chain (instance profile, IRSA) is used.
Configuration keys by method
Minimum permissions per source
Feature support
Each supported source has its own column. AWS Glue, S3 Tables, Unity Catalog, and generic Iceberg REST catalogs (the column that also covers Apache Polaris, Snowflake Open Catalog, and Snowflake Horizon) all connect through the sameiceberg-rest connector, so they share the snapshot-driven capabilities; the Data Lake sources list files directly and have no snapshot machinery.
Writing to the lake (Data Export Task)
External Tables never write to their source. The write path in the other direction is the Data Export Task, a minion task that exports completed REALTIME segments to the lake as Parquet. It is the complement of External Table sync, used for cold-tier archival, feeding downstream Iceberg catalogs, and cross-system sharing. It requires a minion tier and is enabled on demand by StarTree.Export destinations
Export authentication
Export facts worth knowing:
- Source: REALTIME tables only.
sourceTableNamemust carry the_REALTIMEsuffix; External (OFFLINE) tables cannot be exported. - Output format: Parquet only, with
SNAPPY(default),GZIP,ZSTD, orUNCOMPRESSEDcompression. - Iceberg commits are batched: staged files are committed as one Iceberg snapshot per batch (
iceberg.commitThreshold, default 250 files), keeping snapshot churn low on high-throughput tables.
See Data Type Mapping for how source types map to Pinot types, Operational Guidance for sizing advice and capacity guardrails, and Troubleshooting for diagnosis guides.

