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>>
응답(표준 카탈로그):
속성
이름 표준 카탈로그 이름
유형 표준 카탈로그
설명 표준 카탈로그 설명
생성자 표준 카탈로그를 생성한 주체
생성 날짜 생성 일자 및 시간
업데이트 수행자 표준 카탈로그를 최종 업데이트한 주체
업데이트 날짜 최종 업데이트 일자 및 시간
응답(외부 카탈로그):
속성
이름 외부 카탈로그 이름
유형 외부 카탈로그
소스 유형 외부 카탈로그의 소스(예: 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 <<schema_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>>

OR

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는 현재 델타 레이크 3.2.0에서 Spark 3.5를 지원합니다. DML query에 대한 자세한 내용은 다음을 참조하십시오.