SQL 语法

Oracle AI Data Platform Workbench 用户可以使用 SQL 自动执行 DDL 工作负载。

目录 SQL 语法

目录对象支持列出的 DDL 工作负载 SQL 语法。

Oracle AI Data Platform Workbench 支持所有标准 Spark SQL 数据类型。有关更多信息,请参见Apache Spark Documentation - Supported Data Types

表 46-1 标准和外部目录 SQL 语法

操作 语法
创建目录

目录

CREATE CATALOG [ IF NOT EXISTS ] <<catalog_name>> [ PROPERTIES (DESCRIPTION = description ) ] OPTIONS ( { option_name = option_value } [ , ... ] )

外部目录

CREATE EXTERNAL CATALOG [ IF NOT EXISTS ] <<catalog_name>> [PROPERTIES ( DESCRIPTION description ) ]OPTIONS ( { option_name = option_value } [ , ... ] )

选项将具有连接详细信息

外部目录 - Oracle Autonomous AI Lakehouse 示例

wt = base64 encoded wallet contents
create_sql="create external catalog if not exists
catalog_adw options
 ('wallet.content' = '{wt}', 'type' = 'ORACLE_ADW',
'user.name' = 'ADMIN',
 'tns' = 'adw23ai_high', 'password' =
 'xxxxx','wallet.password' = 'xxxxx')"

回应

Catalog <<catalog_name>> created successfully

错误

<<SQL Command>> failed due to <<reason>>
更改目录

更改目录名称

ALTER CATALOG old_catalog_name RENAME new_catalog_name;

更改目录说明

ALTER CATALOG <catalog-name> set properties (DESCRIPTION=<property-value>)

更改目录选项(连接)

ALTER CATALOG <catalog-name> set options (option_name = option_value)

回应

Catalog <<catalog_name>> updated successfully

错误

<<SQL Command>> failed due to <<reason>>
删除录
DROP CATALOG [ IF EXISTS ] catalog_name

默认情况下,在 DROP 目录期间,所有子对象也会被删除

回应

Catalog <<catalog_name>> dropped successfully

错误

<<SQL Command>> failed due to <<reason>>
列表目录
SHOW CATALOGS [ [ LIKE ] [ regex_pattern ] [ TYPE = EXTERNAL CATALOG | CATALOG ]

regex_pattern:用于过滤语句结果的正则表达式模式。

响应:
目录 类型
<<catalog_name>> 目录 | 外部目录
<<catalog_name>> 目录 | 外部目录
<<catalog_name>> 目录 | 外部目录

错误

<<SQL Command>> failed due to <<reason>>
描述目录
DESC CATALOG <<catalog_name>>
DESCRIBE CATALOG <<catalog_name>>
响应(标准目录):
属性
名称 标准目录名称
类型 标准目录
说明 标准目录说明
创建者 创建标准目录的主用户
创建时间 创建的日期和时间
更新者 上次更新标准目录的主用户
更新时间 上次更新的日期和时间
响应(外部目录):
属性
名称 外部目录名称
类型 外部目录
源类型 外部目录的来源(例如 Oracle Autonomous AI Lakehouse)
说明 外部目录说明
创建者 创建外部目录的主用户
创建时间 创建的日期和时间
更新者 上次更新外部目录的主用户
更新时间 上次更新的日期和时间
连接详细资料 连接 .json 文件

错误:

<<SQL Command>> failed due to <<reason>>
刷新目录
REFRESH [EXTERNAL] CATALOG <<catalog_name>>
响应:
Refresh Initiated

方案 SQL 语法

方案支持列出的 DDL 工作负载 SQL 语法。

Oracle AI Data Platform Workbench 支持所有标准 Spark SQL 数据类型。有关更多信息,请参见Apache Spark Documentation - Supported Data Types

表 46-2“Schema SQL Grammar”列表

操作 语法
创建方案
CREATE SCHEMA [IF NOT EXISTS] catalog_name.schema_name

回应

<<SQL Command>> was successfully executed

错误

Error: <<SQL Command>> failed due to <<reason>>
更改方案
更改方案说明
ALTER SCHEMA <schema-name> set dbproperties (DESCRIPTION=<property-value>)
回应
<<SQL Command>> was successfully executed
错误
Error: <<SQL Command>> failed due to <<reason>>
删除方案
DROP SCHEMA [ IF EXISTS ] <<schema_name>>

默认情况下,在 DROP 方案期间,所有子对象也会被删除

列出模式
SHOW SCHEMAS [ { FROM | IN } catalog_name ] [ [ LIKE ] regex_pattern ]
示例:
  • SHOW SCHEMAS FROM defaultcatalog1 LIKE 'd*'
  • SHOW SCHEMAS IN defaultcatalog1 LIKE 'd*'
响应:
  方案
1 << 方案 _1>>
2 << 方案 _2>>
2 << 方案 _3>>

错误

Error: <<SQL Command>> failed due to <<reason>>
描述方案(获取详细信息)

DESCRIBE SCHEMA <<catalog_name>>.<<schema_name>>

DESCRIBE SCHEMA <<schema_name>>

DESCRIBE SCHEMA <<schema_name>> in Catalog <<catalog_name>>

属性
目录名 目录名
方案 方案名
说明 方案说明
创建者 创建了目录的用户
创建时间 创建的日期和时间
更新者 上次更新目录的用户
更新时间 上次更新的日期和时间
位置 目录中的位置
删除方案 drop schema [ IF EXISTS ] <<schema_name>> cascade
刷新方案
REFRESH SCHEMA IN [EXTERNAL] CATALOG <<catalog_name.schema_name>>
响应:
Refresh Initiated

卷 SQL 语法

卷对象支持列出的 DDL 工作负载 SQL 语法。

Oracle AI Data Platform Workbench 支持所有标准 Spark SQL 数据类型。有关更多信息,请参见Apache Spark Documentation - Supported Data Types

表 46-3 卷 SQL 语法

操作 语法
创建卷
CREATE [ EXTERNAL ] VOLUME [IF NOT EXISTS ] <<catalog_name.schema_name.volume_name>> [ LOCATION location_path ] [ PROPERTIES (DESCRIPTION = description ) ]
更改卷属性
ALTER VOLUME <<volume_name>> { RENAME TO <<new_volume_name>> | [ set properties (DESCRIPTION = description) ] }
删除卷
DROP VOLUME [ IF EXISTS ] <<volume_name>>

或者

DROP VOLUME <<catalog_name>>.<<schema_name>>.<<volume_name>>

默认情况下,在 DROP 卷期间,所有子对象也会被删除

列出卷
SHOW VOLUMES [ { FROM | IN } catalog_name.schema_name ] [ [ LIKE ] regex_pattern } ] 
描述卷
DESCRIBE VOLUME volume_name
属性
目录名 目录名
方案名 方案名
卷名 卷名
说明 卷的自定义说明
位置 目录中的位置
卷类型 卷的类型

错误:

Error: <<SQL Command>> failed due to <<reason>>

表 SQL 语法

表对象支持列出的 DDL 工作负载 SQL 语法。

Oracle AI Data Platform Workbench 支持所有标准 Spark SQL 数据类型。有关更多信息,请参见Apache Spark Documentation - Supported Data Types

操作 语法
创建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <catalog_name>.<schema-name>.<table-name>
[ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ]
USING [HIVE|DELTA, CSV, TXT, ORC, JDBC, PARQUET, etc.]
[ options ( <key1>=<val1>[, ...]) ]
[ PARTITIONED BY (<par-column-name>[, ...]) ]
[ CLUSTERED BY ( <clus-column-name>[, ...])
    [ SORTED BY ( <sort-column-name> [ asc | desc ][, ...]) ]
    INTO <num_buckets> buckets]
[ LOCATION '<path>']
[TBLPROPERTIES ( DESCRIPTION = 'some-description', '<property-name>'='<property-value>'[, ...]) ]

响应:

<<SQL Command>> was successfully executed

错误:

Error: <<SQL Command>> failed due to <<reason>>
创建托管表
创建托管表
CREATE TABLE <catalog>.<schema>.<table-name> [ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ] USING <format>;

响应:

<<SQL Command>> was successfully executed
错误:
Error: <<SQL Command>> failed due to <<reason>>
创建包含数据的托管表
create datatable <<catalog_name>>.<<schema_name>>.<<table_name>> [ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ] tblproperties ('lakehouse_storage_format'='PARQUET') using parquet with select ( <column1-name>], ... ) from parquet.'oci://bucket@namespace/folder/'

响应:

<<SQL Command>> was successfully executed
错误:
Error: <<SQL Command>> failed due to <<reason>>
创建具有统一支持的表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <catalog_name>.<schema-name>.<table-name>
[ ( <column1-name> <column1-type> [comment <column1-comment>], ... ) ]
[TBLPROPERTIES ('delta.universalFormat.enabledFormats' = 'iceberg') ]
变更表
ALTER TABLE table_old_name RENAME TO table_new_name
ALTER TABLE table_name ADD COLUMNS ( col_spec [ , ... ])
ALTER TABLE table_name DROP { COLUMN | COLUMNS } [ ( ] col_name [ , ... ] [ ) ]
ALTER TABLE table_name RENAME COLUMN col_name TO col_name
ALTER TABLE table_name ADD [IF NOT EXISTS] ( partition_spec [partition_spec ... ] )
ALTER TABLE table_name DROP [ IF EXISTS ] partition_spec [PURGE]
ALTER TABLE table_name set tblproperties (description ='some-description')
删除表
DROP TABLE [ IF EXISTS ] table_name [ PURGE ]

答复

<<SQL Command>> was successfully executed

错误

Error: <<SQL Command>> failed due to <<reason>>
列出方案中的表
SHOW TABLES in catalog_name.schema_name [ LIKE <regex_pattern> ]

regex_pattern:用于过滤语句结果的正则表达式模式。

响应:
<<namesake>>,tableName,isTemporary

错误:

<<SQL Command>> failed due to <<reason>>
描述表
DESCRIBE TABLE [ FORMAT ] catalog_name.schema_name.table_name [ PARTITION (<partition_col_name> = <partition_col_val>, ...) ] [ catalog_name.schema_name.table_name.column_name ]

格式:如果将 EXTENDED 指定为格式,则会返回附加元数据信息(如父数据库、所有者和访问时间)。

DESCRIBE TABLE catalog.schema.table 响应:

col_name,data_type,comment
DESCRIBE TABLE catalog.schema.table column 响应:
info_name,info_value
刷新表格
REFRESH TABLE IN EXTERNAL CATALOG <<catalog_name.schema_name.table_name>>
响应:
Refresh Initiated

DML 查询

您可以使用 Oracle AI Data Platform 记事本、SL、Python 和 Spark 脚本运行对数据的选择、插入和删除查询。

Oracle AI Data Platform Workbench 当前支持使用 Delta Lake 3.2.0 的 Spark 3.5。有关 DML 查询的更多信息,请参见: