Syntax
Description
This command provides details about the objects used by a CREATE_RELATION
, INSERT INTO
, or CREATE AS SELECT
statement.
The statement is described only if the current role has the USAGE
privilege on the Database , Schema , Store , and Relation used in the statement.
Arguments
statement
Any of the executable statements including CREATE STREAM , CREATE CHANGELOG , CREATE STREAM AS SELECT , CREATE CHANGELOG AS SELECT , CREATE MATERIALIZED VIEW AS , CREATE TABLE AS SELECT .
Response Columnstype
: Provides the type of the statement being described.
info
: A key-value list of objects used within the statement and specific information about them:
ddl
/sink
: A new relation the statement creates to write to — or, respectively, an existing relation to which the statement writes new records.
Provides fqn
, type
, db_name
, schema_name
, name
, and store_name
. A fqn
is in the format of org.db.schema.relation
.
Sources
: List of relations the statement uses for reading records.
Provides fqn
, type
, db_name
, schema_name
, name
, and store_name
.
Examples
Describe a stream DDL statement
In this example, a CREATE STREAM
statement returns a ddl
field for the pageviews
stream that would be created if the statement was executed:
Copy demodb.public/demostore# DESCRIBE CREATE STREAM pageviews (viewtime BIGINT, userid VARCHAR, pageid VARCHAR ) WITH ( 'value.format' = 'json' , 'topic.partitions' = '5' , 'topic.replicas' = '5' );
+---------------+------------------------------------------+
| Type | Info |
+ ===============+==========================================+
| CREATE_STREAM | { "ddl" : { " fqn ":" d39511ce-c918-4637-9524-1 |
| | 63183452274.demodb.public.pageviews "," ty |
| | pe ":" STREAM "," db_name ":" demodb "," schema_ |
| | name ":" public "," name ":" pageviews "," store |
| | _name ":" demostore "}} |
+---------------+------------------------------------------+
Describe a CCAS filter statement
In this example, pageviewscl
Changelog is filtered and writes its result into pageviewscl_6
changelog:
Copy demodb.public/demostore# DESCRIBE CREATE CHANGELOG PAGEVIEWSCL_6 AS SELECT userid, pageid FROM PAGEVIEWSCL WHERE userid = 'User_6' ;
+---------------------+------------------------------------------+
| Type | Info |
+ =====================+==========================================+
| CREATE_CHANGELOG_AS | { "ddl" : { " fqn ":" d39511ce-c918-4637-9524-1 |
| | 63183452274.demodb.public.pageviewscl_6 " |
| | ," type ":" CHANGELOG "," db_name ":" demodb "," |
| | schema_name ":" public "," name ":" pageviewsc |
| | l_6 "," store_name ":" demostore "}," sources " |
| | :[{" fqn ":" d39511ce-c918-4637-9524-163183 |
| | 452274.demodb.public.pageviewscl "," type " |
| | :" CHANGELOG "," db_name ":" demodb "," schema_ |
| | name ":" public "," name ":" pageviewscl "," sto |
| | re_name ":" demostore "}]} |
+---------------------+------------------------------------------+
Describe a CSAS JOIN statement
In this example, the described statement joins the pageviews
Stream and users1Changelog
changelog before filtering and writing its results into the temporaljoin
stream:
Copy demodb.public/demostore# DESCRIBE CREATE STREAM temporaljoin AS SELECT p.userid AS pvuid, u.userid, u.gender, p.pageid, u.interests[1] AS top_interest FROM pageviews p JOIN "users1Changelog" u ON u.userid = p.userid WHERE p.userid != 'User_5' ;
+------------------+------------------------------------------+
| Type | Info |
+ ==================+==========================================+
| CREATE_STREAM_AS | { "ddl" : { " fqn ":" d39511ce-c918-4637-9524-1 |
| | 63183452274.demodb.public.temporaljoin ", |
| | " type ":" STREAM "," db_name ":" demodb "," sche |
| | ma_name ":" public "," name ":" temporaljoin ", |
| | " store_name ":" demostore "}," sources ":[{" f |
| | qn ":" d39511ce-c918-4637-9524-16318345227 |
| | 4.demodb.public.pageviews "," type ":" STREA |
| | M "," db_name ":" demodb "," schema_name ":" pub |
| | lic "," name ":" pageviews "," store_name ":" de |
| | mostore "},{" fqn ":" d39511ce-c918-4637-952 |
| | 4-163183452274.demodb.public.users1Chang |
| | elog "," type ":" CHANGELOG "," db_name ":" demo |
| | db "," schema_name ":" public "," name ":" users |
| | 1Changelog "," store_name ":" demostore "}]} |
+------------------+------------------------------------------+
Describe an INSERT INTO statement
The example below shows that the statement filters the pageviews
stream and writes its results into the existing relation called pageviews_6
of type stream
:
Copy demodb.public/demostore# DESCRIBE INSERT INTO PAGEVIEWS_6 SELECT userid, pageid FROM PAGEVIEWS WHERE userid = 'User_6' ;
+-------------+------------------------------------------+
| Type | Info |
+ =============+==========================================+
| INSERT_INTO | { "sink" : { " fqn ":" d39511ce-c918-4637-9524- |
| | 163183452274.demodb.public.pageviews_6 ", |
| | " type ":" STREAM "," db_name ":" demodb "," sche |
| | ma_name ":" public "," name ":" pageviews_6 "," |
| | store_name ":" demostore "}," sources ":[{" fq |
| | n ":" d39511ce-c918-4637-9524-163183452274 |
| | .demodb.public.pageviews "," type ":" STREAM |
| | "," db_name ":" demodb "," schema_name ":" publ |
| | ic "," name ":" pageviews "," store_name ":" dem |
| | ostore "}]} |
+-------------+------------------------------------------+