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 comment 'this is primary key'," +
" product VARCHAR(32)," +
" amount INT," +
" ts TIMESTAMP(3) comment 'notice: watermark'," +
" ptime AS PROCTIME() comment 'this is a computed column'," +
" PRIMARY KEY(`user`) NOT ENFORCED," +
" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" +
") with (...)");
// print the schema
tableEnv.executeSql("DESCRIBE Orders").print();
// print the schema
tableEnv.executeSql("DESC Orders").print();
Scala
val tableEnv = TableEnvironment.create(...)
// register a table named "Orders"
tableEnv.executeSql(
"CREATE TABLE Orders (" +
" `user` BIGINT NOT NULl comment 'this is primary key'," +
" product VARCHAR(32)," +
" amount INT," +
" ts TIMESTAMP(3) comment 'notice: watermark'," +
" ptime AS PROCTIME() comment 'this is a computed column'," +
" PRIMARY KEY(`user`) NOT ENFORCED," +
" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" +
") with (...)")
// print the schema
tableEnv.executeSql("DESCRIBE Orders").print()
// print the schema
tableEnv.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 comment 'this is primary key',"
" product VARCHAR(32),"
" amount INT,"
" ts TIMESTAMP(3) comment 'notice: watermark',"
" ptime AS PROCTIME() comment 'this is a computed column',"
" PRIMARY KEY(`user`) NOT ENFORCED,"
" WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS"
") with (...)");
# print the schema
table_env.execute_sql("DESCRIBE Orders").print()
# print the schema
table_env.execute_sql("DESC Orders").print()
SQL CLI
Flink SQL> CREATE TABLE Orders (
> `user` BIGINT NOT NULl comment 'this is primary key',
> product VARCHAR(32),
> amount INT,
> ts TIMESTAMP(3) comment 'notice: watermark',
> ptime AS PROCTIME() comment 'this is a computed column',
> 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 | extras | watermark | comment |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
| user | BIGINT | FALSE | PRI(user) | | | this is primary key |
| product | VARCHAR(32) | TRUE | | | | |
| amount | INT | TRUE | | | | |
| ts | TIMESTAMP(3) *ROWTIME* | TRUE | | | `ts` - INTERVAL '1' SECOND | notice: watermark |
| ptime | TIMESTAMP_LTZ(3) *PROCTIME* | FALSE | | AS PROCTIME() | | this is a computed column |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
5 rows in set
Scala
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
| name | type | null | key | extras | watermark | comment |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
| user | BIGINT | FALSE | PRI(user) | | | this is primary key |
| product | VARCHAR(32) | TRUE | | | | |
| amount | INT | TRUE | | | | |
| ts | TIMESTAMP(3) *ROWTIME* | TRUE | | | `ts` - INTERVAL '1' SECOND | notice: watermark |
| ptime | TIMESTAMP_LTZ(3) *PROCTIME* | FALSE | | AS PROCTIME() | | this is a computed column |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
5 rows in set
Python
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
| name | type | null | key | extras | watermark | comment |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
| user | BIGINT | FALSE | PRI(user) | | | this is primary key |
| product | VARCHAR(32) | TRUE | | | | |
| amount | INT | TRUE | | | | |
| ts | TIMESTAMP(3) *ROWTIME* | TRUE | | | `ts` - INTERVAL '1' SECOND | notice: watermark |
| ptime | TIMESTAMP_LTZ(3) *PROCTIME* | FALSE | | AS PROCTIME() | | this is a computed column |
+---------+-----------------------------+-------+-----------+---------------+----------------------------+---------------------------+
5 rows in set
SQL CLI
root
|-- user: BIGINT NOT NULL COMMENT 'this is primary key'
|-- product: VARCHAR(32)
|-- amount: INT
|-- ts: TIMESTAMP(3) *ROWTIME* COMMENT 'notice: watermark'
|-- ptime: TIMESTAMP(3) NOT NULL *PROCTIME* AS PROCTIME() COMMENT 'this is a computed column'
|-- WATERMARK FOR ts AS `ts` - INTERVAL '1' SECOND
|-- CONSTRAINT PK_3599338 PRIMARY KEY (user)
Syntax
{ DESCRIBE | DESC } [catalog_name.][db_name.]table_name