적용 대상:
데이터브릭
완료 데이터브릭스 런타임 19 이상
경로는 쿼리나 DML 문이 카탈로그 및 스키마 수식자 없이 테이블, 뷰 또는 함수를 참조할 때 Azure Databricks가 검색하는 순서 순서 스키마 목록입니다. DDL 문장의 무제한 주체는 current_catalog.current_schema경로 조회가 아니므로 CREATE TABLE t 현재 스키마에서 생성합니다 t . 경로가 DDL 문장의 쿼리와 영속 뷰에 어떻게 적용되는지는 Table and view resolution을 참조하세요. 루틴 본체에 대해서는 기능 및 절차 해결을 참조하세요.
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
PATH 구성 매개변수로 확장되는 키워드로, 이는 새 세션이 상속하는 작업 공간 기본값입니다. 매개변수가 오버라이드되지 않았다면 확장은 입니다
system.session, system.builtin, system.ai, CURRENT_SCHEMA.SYSTEM_PATH
시스템 제공 스키마로 확장되는 키워드:
system.builtin, system.ai.CURRENT_SCHEMA
사용 시 현재 카탈로그와 현재 스키마
current_catalog()로 해결되는 가상 스키마 참조(.current_schema()). 이 확장팩은 세션 중과 USE CATALOGUSE SCHEMA 세션 중에 이루어진 변경 사항을 반영합니다.PATH
현재 세션 경로로 확장되는 키워드입니다. 내용을 다시 설명하지 않고 경로를 확장하는 데 사용하세요.
-
두 부분으로 나뉜 이름(
catalog.schema)이 필요합니다. 두 부분 이상의 이름도 허용됩니다. 한 부분으로 나오는 이름이 INVALID_SQL_PATH_SCHEMA_REFERENCE을 끌어올립니다.카탈로그와 스키마는 실행
SET PATH시점에 반드시 존재할 필요는 없습니다. 이름 해석은 누락된 항목을 건너뛰고 다음 경로 요소로 이어집니다.
Description
다음 규칙들은 어떤 경로 요소가 SET PATH 수락되고, 결과된 경로가 이름 해상도에 어떤 영향을 미치는지를 결정합니다.
- 중복: 중복 경로 요소는 허용되지 않습니다. 키워드 확장 후에는 중복 DUPLICATE_SQL_PATH_ENTRY가 올라갑니다.
-
시스템 스키마:
system.builtinsystem.ai그리고 내장된 스칼라, 테이블, AI 기능을 보유합니다.system.session임시 변수, 임시 함수, 임시 뷰와 같은 세션 범위 객체를 보유합니다. 경로에서 벗어나는 것은system.builtin일반적으로 권장되지 않습니다. -
누락된 스키마: 자격 없는 이름은 경로 상의 스키마에 대해서만 해결됩니다. 만약 를 누락
CURRENT_SCHEMA한다면, 현재 스키마에서 영속 객체를 조건화하세요. 예를 들어 이 함수들을system.builtinsystem.ai생략하거나 만약 만약 를 만드면,system.builtin.abs예를 들어 입니다. 만약 를 누락system.session하면 조건이 없는 임시 뷰, 임시 함수, 세션 변수를 찾을 수 없습니다. -
뷰와 루틴: 영구 뷰, SQL 사용자 정의 함수,
SQL SECURITY DEFINER프로시저는 해당CREATE경로에서 경로를 캡처하고, 해당 본체 내 미제한 이름을 해당 경로에 대해 해석하며, 호출자의 세션 경로에 대해 해석합니다.SQL SECURITY DEFINER프로시저는 캡처된 경로에서 제외system.session됩니다.SQL SECURITY INVOKER프로시저는 발신자의 라이브 경로를 사용합니다. 캡처된 경로를 참조하세요. -
경로 검사:
SET PATH;경로 출력은 안 됩니다. current_path 사용하세요.
Examples
다음 문장들은 순서대로 실행하세요. 왜냐하면 이후의 문장들은 이전 문장들이 설정한 경로를 기반으로 발전하기 때문입니다.
-- Restore the workspace default.
> SET PATH = DEFAULT_PATH;
> SELECT current_path();
system.session,system.builtin,system.ai,main.default
-- Restrict the PATH to only the system-provided schemas.
> SET PATH = SYSTEM_PATH;
> SELECT current_path();
system.builtin,system.ai
-- Append a schema to the existing PATH without restating it.
> SET PATH = PATH, libraries.pgsql;
> SELECT current_path();
system.builtin,system.ai,libraries.pgsql
-- Put the current schema ahead of the system schemas so that user-defined
-- functions shadow built-in functions of the same name.
> SET PATH = CURRENT_SCHEMA, PATH;
> SELECT current_path();
main.default,system.builtin,system.ai,libraries.pgsql
다음 문장들은 실패하며 경로를 변경하지 않습니다.
-- A single-part schema name is rejected.
> SET PATH = my_schema;
[INVALID_SQL_PATH_SCHEMA_REFERENCE]
-- A duplicate path element raises an error after expansion.
> SET PATH = SYSTEM_PATH, system.builtin;
[DUPLICATE_SQL_PATH_ENTRY]