Raw tables
Learn how RawTree stores and exposes JSON paths in a table.
Raw tables
Raw tables accept JSON rows before you define a schema. RawTree stores each
row's undeclared fields in the internal __raw_data JSON column.
Physical columns and JSON paths
Declared physical columns can exist beside paths in __raw_data. A physical
column takes precedence when its name matches a JSON path.
RawTree exposes known JSON leaf paths as logical SQL columns. Query those paths
by name, such as user.id, without reading the parent JSON value.
Use __raw_data.path when you need the JSON value at a path. Use __raw_data
only when you need the complete parsed JSON object.
SELECT * expansion
SELECT * returns declared columns and known JSON leaf paths. It does not
return the parent __raw_data column.
The set of known paths can change as rows arrive. Select named paths in reusable queries to keep the result shape stable.
SELECT event, user.id FROM events LIMIT 10Missing and unknown paths
A known path that is absent from one row returns NULL. A path that does not
exist in the table schema returns an UNKNOWN_IDENTIFIER exception.
Inspect the table or query known fields before you use a new path. The
is_raw setting marks a raw
table. The system.tables.is_raw value identifies a raw table.