SQL 文法

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

目錄 SQL 文法

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

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

表 46-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 支援所有標準 Spark SQL 資料類型。如需詳細資訊,請參閱 Apache Spark 文件 - 支援的資料類型。

表格 46-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 支援所有標準 Spark SQL 資料類型。如需詳細資訊,請參閱 Apache Spark 文件 - 支援的資料類型。

表格 46-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 支援所有標準 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 命令檔,對資料執行選取、插入及刪除查詢。

AI Data Platform 目前支援 Spark 3.5 與 Delta Lake 3.2.0。如需有關 DML 查詢的詳細資訊,請參閱: