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>)

カタログ・オプションの変更(conn)

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:文の結果をフィルタ処理するために使用される正規表現パターン。

応答:
カタログ 入力してください
<<カタログ名>> カタログ|外部カタログ
<<カタログ名>> カタログ|外部カタログ
<<カタログ名>> カタログ|外部カタログ

エラー

<<SQL Command>> failed due to <<reason>>
カタログの説明
DESC CATALOG <<catalog_name>>
DESCRIBE CATALOG <<catalog_name>>
レスポンス(標準カタログ):
属性 Value
名前 標準カタログ名
入力してください 標準カタログ
説明 標準カタログ摘要
作成者 標準カタログを作成したプリンシパル
作成日 作成日時
更新者 標準カタログを最後に更新したプリンシパル
更新日 最終更新日時
レスポンス(外部カタログ):
属性 Value
名前 外部カタログ名
入力してください 外部カタログ
ソース・タイプ 外部カタログのソース(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スキーマSQL文法のリスト

操作 グラマー
スキーマの作成
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>>

属性 Value
カタログ名 カタログ名
スキーマ スキーマ名
説明 スキーマの説明
作成者 カタログを作成したユーザー
作成日 作成日時
更新者 カタログを最後に更新したユーザー
更新日 最終更新日時
場所 カタログ内の場所
スキーマの削除 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
属性 Value
カタログ名 カタログ名
スキーマ名 スキーマ名
ボリューム名 ボリューム名
説明 ボリュームのユーザー定義摘要
場所 カタログ内の場所
ボリューム・タイプ ボリュームのタイプ

エラー:

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問合せの詳細は、次を参照してください。