SQL 文法

Oracle AI Data Platform Workbench 使用者可以使用 SQL 自動執行 DDL 工作負載。

目錄 SQL 文法

目錄物件支援列出的 DDL 工作負載 SQL 文法。

Oracle AI Data Platform Workbench 支援所有標準 Spark SQL 資料類型。如需詳細資訊,請參閱 Apache Spark 文件 - 支援的資料類型

表 45-1 標準與外部目錄 SQL 文法

操作 Grammar - 文法
建立目錄

目錄

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 } [ , ... ] )

OPTIONS 將會有連線詳細資訊

外部目錄 - 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:用於篩選敘述句結果的正規表示式樣式。

回應:
目錄 Type
<<catalog_name>> 目錄 | 外部目錄
<<catalog_name>> 目錄 | 外部目錄
<<catalog_name>> 目錄 | 外部目錄

錯誤

<<SQL Command>> failed due to <<reason>>
描述型錄
DESC CATALOG <<catalog_name>>
DESCRIBE CATALOG <<catalog_name>>
回應 (標準目錄):
屬性 數值
名稱 標準型錄名稱
Type 標準型錄
描述 標準型錄描述
建立者 建立標準型錄的主要項目
建立日期 建立日期與時間
更新者 上次更新標準型錄的主要項目
更新日期 上次更新的日期和時間
回應 (外部目錄):
屬性 數值
名稱 外部目錄名稱
Type 外部目錄
來源類型 外部目錄來源 (例如 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 文件 - 支援的資料類型

表格 45-2 綱要 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 文件 - 支援的資料類型

表 45-3 體積 SQL 文法

操作 Grammar - 文法
建立磁碟區
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 文件 - 支援的資料類型

操作 Grammar - 文法
建立表格
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 目前支援 Spark 3.5 與 Delta Lake 3.2.0。如需有關 DML 查詢的詳細資訊,請參閱: