DESCRIBE Statements
DESCRIBE statements are used to describe the schema of a table or a view.
Run a DESCRIBE statement
Java
DESCRIBE statements can be executed with the executeSql() method of the TableEnvironment. The executeSql() method returns the schema of given table for a successful DESCRIBE operation, otherwise will throw an exception.
The following examples show how to run a DESCRIBE statement in TableEnvironment.
Scala
DESCRIBE statements can be executed with the executeSql() method of the TableEnvironment. The executeSql() method returns the schema of given table for a successful DESCRIBE operation, otherwise will throw an exception.
The following examples show how to run a DESCRIBE statement in TableEnvironment.
Python
DESCRIBE statements can be executed with the execute_sql() method of the TableEnvironment. The execute_sql() method returns the schema of given table for a successful DESCRIBE operation, otherwise will throw an exception.
The following examples show how to run a DESCRIBE statement in TableEnvironment.
SQL CLI
DESCRIBE statements can be executed in SQL CLI.
The following examples show how to run a DESCRIBE statement in SQL CLI.
Java
TableEnvironment tableEnv = TableEnvironment.create(...);// register a table named "Orders"tableEnv.executeSql("CREATE TABLE Orders (" +" `user` BIGINT NOT NULl," +" product VARCHAR(32)," +" amount INT," +" ts TIMESTAMP(3)," +" ptime AS PROCTIME()," +" PRIMARY KEY(`user`) NOT ENFORCED," +" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" +") with (...)");// print the schematableEnv.executeSql("DESCRIBE Orders").print();// print the schematableEnv.executeSql("DESC Orders").print();
Scala
val tableEnv = TableEnvironment.create(...)// register a table named "Orders"tableEnv.executeSql("CREATE TABLE Orders (" +" `user` BIGINT NOT NULl," +" product VARCHAR(32)," +" amount INT," +" ts TIMESTAMP(3)," +" ptime AS PROCTIME()," +" PRIMARY KEY(`user`) NOT ENFORCED," +" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" +") with (...)")// print the schematableEnv.executeSql("DESCRIBE Orders").print()// print the schematableEnv.executeSql("DESC Orders").print()
Python
table_env = TableEnvironment.create(...)# register a table named "Orders"table_env.execute_sql( \"CREATE TABLE Orders ("" `user` BIGINT NOT NULl,"" product VARCHAR(32),"" amount INT,"" ts TIMESTAMP(3),"" ptime AS PROCTIME(),"" PRIMARY KEY(`user`) NOT ENFORCED,"" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS"") with (...)");# print the schematable_env.execute_sql("DESCRIBE Orders").print()# print the schematable_env.execute_sql("DESC Orders").print()
SQL CLI
Flink SQL> CREATE TABLE Orders (> `user` BIGINT NOT NULl,> product VARCHAR(32),> amount INT,> ts TIMESTAMP(3),> ptime AS PROCTIME(),> PRIMARY KEY(`user`) NOT ENFORCED,> WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS> ) with (> ...> );[INFO] Table has been created.Flink SQL> DESCRIBE Orders;Flink SQL> DESC Orders;
The result of the above example is:
Java
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| name | type | null | key | computed column | watermark |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| user | BIGINT | false | PRI(user) | | || product | VARCHAR(32) | true | | | || amount | INT | true | | | || ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND || ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+5 rows in set
Scala
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| name | type | null | key | computed column | watermark |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| user | BIGINT | false | PRI(user) | | || product | VARCHAR(32) | true | | | || amount | INT | true | | | || ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND || ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+5 rows in set
Python
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| name | type | null | key | computed column | watermark |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+| user | BIGINT | false | PRI(user) | | || product | VARCHAR(32) | true | | | || amount | INT | true | | | || ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND || ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | |+---------+----------------------------------+-------+-----------+-----------------+----------------------------+5 rows in set
SQL CLI
root|-- user: BIGINT NOT NULL|-- product: VARCHAR(32)|-- amount: INT|-- ts: TIMESTAMP(3) *ROWTIME*|-- ptime: TIMESTAMP(3) NOT NULL *PROCTIME* AS PROCTIME()|-- WATERMARK FOR ts AS `ts` - INTERVAL '1' SECOND|-- CONSTRAINT PK_3599338 PRIMARY KEY (user)
Syntax
{ DESCRIBE | DESC } [catalog_name.][db_name.]table_name