SQL 语法

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

目录 SQL 语法

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

Oracle AI Data Platform 支持所有标准 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 支持所有标准 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 支持所有标准 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 支持所有标准 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 脚本运行对数据的选择、插入和删除查询。

AI 数据平台目前支持带 Delta Lake 3.2.0 的 Spark 3.5。有关 DML 查询的更多信息,请参见: