Skip to main content
This feature requires StarTree release 0.16.0 or later, and must be enabled on demand — contact StarTree support to activate it.
As an alternative to the REST onboarding flow (/connections/browse/tables/preview/schemas/tables), you can create an External Table directly with a single SQL statement:
This is submitted as SQL DDL via POST /sql/ddl and is equivalent to running the full preview → schema → table REST flow — the controller infers the Pinot schema from the source table and pre-validates it against the catalog before creating the table.

Option reference

Recognized option names are case-insensitive. Unrecognized options pass through verbatim — with their original case preserved — into the generated table’s task config, so you can set advanced ExternalTableSyncTask keys (see Best Practices & Configs) directly in the WITH clause. Type those keys in their exact camelCase spelling (e.g. 'storeNestedSchema.enabled' = 'true'): the task config lookup is case-sensitive, and pass-through keys are also read at CREATE-time schema inference.
Any option not listed above is passed through unchanged to the External Table task config — for example executor = 'controller' to explicitly select the watcher-based sync path used by the observability endpoints.

Example: Unity Catalog with OAuth2

Limitations

  • The generated schema and table config aren’t visible for review before creation, unlike the REST flow’s /tables/preview step — use the REST flow instead when you need to inspect or tweak the inferred schema first.
  • As with the REST flow, the table is created immediately but data only appears once the controller’s watcher completes the first sync — see Observability to track progress.