DESCRIBE 语句
DESCRIBE 语句用于描述表或视图的 schema。
执行 DESCRIBE 语句
Java
可以使用 TableEnvironment
的 executeSql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,executeSql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。
Scala
可以使用 TableEnvironment
的 executeSql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,executeSql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。
Python
可以使用 TableEnvironment
的 execute_sql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,execute_sql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。
SQL CLI
DESCRIBE 语句可以在 SQL CLI 中执行。
以下示例展示了如何在 SQL CLI 中执行一条 DESCRIBE 语句。
Java
TableEnvironment tableEnv = TableEnvironment.create(...);
// 注册名为 “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 (...)");
// 打印 schema
tableEnv.executeSql("DESCRIBE Orders").print();
// 打印 schema
tableEnv.executeSql("DESC Orders").print();
Scala
val tableEnv = TableEnvironment.create(...)
// 注册名为 “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 (...)")
// 打印 schema
tableEnv.executeSql("DESCRIBE Orders").print()
// 打印 schema
tableEnv.executeSql("DESC Orders").print()
Python
table_env = TableEnvironment.create(...)
# 注册名为 “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 (...)");
# 打印 schema
table_env.execute_sql("DESCRIBE Orders").print()
# 打印 schema
table_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;
上述示例的结果是:
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)
语法
{ DESCRIBE | DESC } [catalog_name.][db_name.]table_name