이름

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks 런타임

Azure Databricks에서 다양한 종류의 개체를 식별합니다.

Unity 카탈로그의 모든 개체 이름에는 다음과 같은 제한 사항이 적용됩니다.

  • 개체 이름은 255자를 초과할 수 없습니다.
  • 다음 특수 문자는 허용되지 않습니다.
    • 기간(.)
    • 공백( )
    • 슬래시(/)
    • 모든 ASCII 컨트롤 문자(00-1F 16진수)
    • DELETE 문자(7F 16진수)
  • Unity 카탈로그는 모든 개체 이름을 소문자로 저장합니다.
  • SQL에서 UC 이름을 참조하는 경우 백틱을 사용하여 하이픈(-)과 같은 특수 문자가 포함된 이름을 이스케이프해야 합니다.

참고 항목

열 이름은 특수 문자를 사용할 수 있지만 특수 문자를 사용하는 경우 모든 SQL 문에서 백틱을 사용하여 이름을 이스케이프해야 합니다. Unity 카탈로그는 열 이름 대/소문자를 유지하지만 Unity 카탈로그 테이블에 대한 쿼리는 대/소문자를 구분하지 않습니다.

연결 이름

외세의 연결을 식별합니다. 외세의 연결은 외세의 시스템에 대한 링크 역할을 하며, PostgreSQL 그런 다음 카탈로그, 스키마 및 테이블을 참조하는 데 사용할 수 있습니다.

구문

connection_identifier

매개 변수

  • connection_identifier: 연결을 고유하게 식별하는 식별자입니다.

예제

> CREATE CONNECTION my_postgresql ...;

카탈로그 이름

카탈로그를 식별합니다. 카탈로그는 스키마로 더 세분화할 수 있는 개체 그룹을 제공합니다.

구문

catalog_identifier

매개 변수

예제

> USE CATALOG hive_metastore;

> CREATE CATALOG mycatalog;

-- Creating a catalog with a special character requires back ticks
> CREATE CATALOG `cat-a-log`;

-- Creating a catalog with non ASCII characters requires back ticks
> USE `目录`;

-- space (' '), '/', and '.' are not allowed in catalog names, even with back ticks.
> CREATE CATALOG `cat a log`;
ERROR

스키마 이름

스키마를 식별합니다. 스키마는 카탈로그의 개체 그룹을 제공합니다.

구문

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

매개 변수

생성된 hive_metastore 스키마는 영숫자 ASCII 문자와 밑줄(INVALID_SCHEMA_OR_RELATION_NAME)만 포함할 수 있습니다.

예제

> USE SCHEMA default;

> CREATE SCHEMA my_sc;

-- In Hive Metastore, schema names must only consist of ASCII letters, digits and '_'
> CREATE SCHEMA hive_metastore.`a-b`;
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- In Unity Catalog only space (' '), '/', and '.' are not allowed
> CREATE SCHEMA main.`a-b`;

> CREATE SCHEMA `a b`;
Error

-- Use back-ticks to reference or create schemas in Unity Catalog with non-ASCII characters
> CREATE SCHEMA `数据库架构`;

데이터베이스 이름

스키마 이름의 동의어입니다.

SCHEMADATABASE는 동일하게 사용할 수 있지만 SCHEMA를 사용하는 것이 좋습니다.

테이블 이름

테이블 개체를 식별합니다. 테이블은 스키마 이름으로 정규화되거나 간단한 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

{ [ schema_name . ] table_identifier [ temporal_spec ] |
  IDENTIFIER clause [ temporal_spec ] |
  { file_format | `file_format` } . `path_to_table` [ temporal_spec ] [ credential_spec ] }

temporal_spec
{
  @ timestamp_encoding |
  @V version |
  [ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
  [ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}

credential_spec
  WITH ( CREDENTIAL credential_name )

매개 변수

  • schema_name: 테이블을 포함하는 정규화되거나 정규화되지 않은 스키마 이름입니다.

  • table_identifier: 테이블 또는 table_alias 이름을 지정하는 식별자입니다.

  • file_format: json, csv, avro, parquet, orc, binaryFile, text, delta 중 하나(대/소문자를 구분하지 않음).

  • path_to_table: 파일 시스템의 테이블 위치입니다. 이 구문을 사용하려면 ANY_FILE 권한이 있어야 합니다.

  • IDENTIFIER 절: 테이블 이름에 대한 상수 STRING 매핑입니다.

  • temporal_spec: 사용된 경우 지정된 시점 또는 버전의 델타 테이블을 참조합니다.

    쿼리 또는 MERGE USING의 컨텍스트 내에서만 임시 사양을 사용할 수 있습니다.

    • @ timestamp_encoding: 타임스탬프를 yyyyMMddHHmmssSSS 형식으로 인코딩하는 양의 Bigint 리터럴입니다.
    • @V 버전: 델타 테이블의 버전을 식별하는 양의 정수 리터럴입니다.
    • timestamp_expression: TIMESTAMP로 계산되는 간단한 식입니다. timestamp_expressiom는 상수 식이어야 하지만 current_date() 또는 current_timestamp()를 포함할 수 있습니다.
    • 버전: 델타 테이블의 버전을 식별하는 정수 리터럴 또는 문자열 리터럴입니다.
  • credential_spec

    해당 자격 증명을 사용하여 외부 위치에 포함되지 않은 path_to_table에 액세스할 수 있습니다.

    • credential_name

      스토리지 위치에 액세스하는 데 사용되는 자격 증명 이름입니다.

생성된 hive_metastore 테이블에는 영숫자 ASCII 문자와 밑줄(INVALID_SCHEMA_OR_RELATION_NAME)만 포함될 수 있습니다.

이름이 정규화되지 않고 알려진 테이블 별칭을 참조하지 않는 경우 Azure Databricks는 먼저 현재 스키마에서 테이블을 확인하려고 시도합니다.

이름이 스키마로 정규화된 경우 Azure Databricks는 현재 카탈로그에서 테이블을 확인하려고 시도합니다.

이름 확인에 대한 자세한 내용은 테이블 및 뷰 확인을 참조하세요.

Delta Lake 형식이 아닌 테이블에 대해 temporal_spec를 사용하는 경우 Azure Databricks에서 오류가 발생합니다.

예제

-- A back quoted table name
> SELECT * FROM `Employees`;

-- A table name without back quotes
> SELECT * FROM employees;

-- A schema qualified table name
> SELECT * FROM hr.employees;

-- A schema qualified table name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified table name
> SELECT * FROM hive_metastore.default.tab;

-- A reference to an information schema table.
> SELECT * FROM system.information_schema.columns;

-- Referencing a path as a table requires back ticks
> SELECT * FROM delta.`somedir/delta_table`;

> SELECT * FROM `csv`.`spreadsheets/data.csv`;

> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH (CREDENTIAL some_credential)

-- Tables in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE TABLE hive_metastore.default.t1(c1 INT);

> CREATE TABLE hive_metastore.default.`表一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE TABLE main.`瑞赛奇`.`表一`(c1 INT);

보기 이름

보기를 식별합니다. 보기는 스키마 이름으로 정규화되거나 간단한 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

매개 변수

  • schema_name: 뷰를 포함하는 스키마의 정규화 또는 정규화되지 않은 이름입니다.
  • view_identifier: CTE의 뷰 이름 또는 뷰 식별자를 지정하는 식별자입니다.
  • IDENTIFIER 절: 뷰 이름에 대한 상수 STRING 매핑입니다.

생성된 뷰에는 hive_metastore 영숫자 ASCII 문자와 밑줄(INVALID_SCHEMA_OR_RELATION_NAME)만 포함될 수 있습니다.

예제

-- A back quoted view name
> SELECT * FROM `Employees`;

-- A view name without back quotes
> SELECT * FROM employees;

-- A schema qualified view name
> SELECT * FROM hr.employees;

-- A schema qualified view name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified view name
> SELECT * FROM hive_metastore.default.tab;

-- Views in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE VIEW hive_metastore.default.v1(c1) AS SELECT 1;

> CREATE VIEW hive_metastore.default.`数据库视图一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE VIEW main.`瑞赛奇`.`数据库视图一`(c1) AS SELECT 1;

열 이름

테이블 또는 뷰 내의 열을 식별합니다. 열은 테이블 또는 뷰 이름으로 정규화되거나 간단한 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

{ [ { table_name | view_name } . ] column_identifier |
  IDENTIFIER clause }

매개 변수

  • table_name: 열을 포함하는 테이블의 정규화 또는 정규화되지 않은 테이블 이름입니다.
  • view_name: 열을 포함하는 뷰의 정규화 또는 정규화되지 않은 보기 이름입니다.
  • column_identifier: 열의 이름을 지정하는 식별자입니다.
  • IDENTIFIER 절: 열 이름에 대한 상수 STRING 매핑입니다.

식별된 열은 테이블 또는 뷰 내에 있어야 합니다.

Azure Databricks는 특별한 _metadata 열을 지원합니다. 형식 구조체의 이 의사 열은 모든 테이블의 일부이며 테이블의 행에 대한 메타데이터 정보를 검색하는 데 사용할 수 있습니다.

Warning

테이블 스키마에 명명 _metadata된 열이 포함된 경우 쿼리는 파일 메타데이터가 아닌 데이터 원본의 열을 반환합니다. _metadata 의사 열에 액세스할 수 없습니다.

열 매핑 속성()이 없는 Delta Lake 테이블의 열 이름에는 문자('delta.columnMapping.mode' = 'name'space), ',', , '{'';', '}', '('')'.' ' '\n', '\t''='.

테이블의 AVRO 열 이름은 ASCII가 아닌 문자로 시작하거나 유니코드 문자로 시작하고 '_' 뒤에 유니코드 문자와 숫자를 조합 '_'해야 합니다.

예제

-- An unqualified column name
> SELECT c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- A qualified column name
> SELECT T.c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- Using _metadata to retrieve information about rows retrieved from T.
> CREATE TABLE T(c1 INT);
> INSERT INTO T VALUES(1);
> SELECT T._metadata.file_size;
  574

-- A delimited column name
> CREATE TABLE T(`sütun1`);

필드 이름

구조체 내의 필드를 식별합니다. 필드를 포함하는 구조체까지의 경로로 필드를 정규화해야 합니다.

구문

{ expr { . field_identifier [. ...] } |
  IDENTIFIER clause }

매개 변수

  • expr: STRUCT 형식의 식입니다.
  • field_identifier: 필드의 이름을 지정하는 식별자입니다.
  • IDENTIFIER 절: 필드 이름에 대한 상수 STRING 매핑입니다.

루트 구조체의 경로를 따라 필드 식별자를 지정하여 깊이 중첩된 필드를 참조할 수 있습니다.

열 매핑 속성('delta.columnMapping.mode' = 'name')이 없는 Delta Lake 테이블의 필드 이름에는 문자 ' ' (space), ',', , ';''{', '}', . ')''(' '\n', '\t''='.

테이블의 AVRO 필드 이름은 ASCII가 아닌 문자로 시작하거나 유니코드 문자로 시작하고 '_' 뒤에 유니코드 문자와 숫자를 조합 '_'해야 합니다.

예제

> SELECT addr.address.name
    FROM VALUES (named_struct('address', named_struct('number', 5, 'name', 'Main St'),
                              'city', 'Springfield')) as t(addr);
  Main St

-- Delimited field names with non ASCII letters
> CREATE TABLE T(c1 struct<`атрибут1` INT, `атрибут2`>);
> SELECT c1.`атрибут1` FROM T;

변수 이름

임시(세션) 변수를 식별합니다. 변수는 스키마 이름(system.session또는session)으로 정규화되거나 단순 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

매개 변수

  • schema_name: system.session 또는 session 모든 임시 변수를 포함합니다.
  • variable_identifier: 변수의 이름을 지정하는 식별자입니다.

예제


-- Declaring a session variable with a qualified name.
> DECLARE session.myvar = 5;

-- Setting a session variable with an unqualified name.
> SET VAR myvar = 6

-- Declaring a session variable with a fully qualified name an non-ASCII characters.
> DECLARE system.session.`圆周率` = 3.14;

함수 이름

함수를 식별합니다. 함수는 스키마 이름으로 정규화되거나 간단한 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

매개 변수

  • schema_name: 함수를 포함하는 정규화되거나 정규화되지 않은 스키마 이름입니다.
  • function_identifier: 함수 이름을 지정하는 식별자입니다.
  • IDENTIFIER 절: 함수 이름에 대한 상수 STRING 매핑입니다.

생성된 hive_metastore 함수는 영숫자 ASCII 문자와 밑줄만 포함할 수 있습니다.

예제

-- Creating a SQL function with a qualified name
> CREATE FUNCTION math.myplus(x INT, y INT) RETURN x + y;

-- Invoking a function with an unqualified name
> SELECT myplus()

-- Creating a SQL function with non-ASCII characters;
> CREATE FUNCTION `圆周率`() RETURN 3.14;

매개 변수 이름

SQL UDF(SQL 사용자 정의 함수)의 본문에서 매개 변수를 식별합니다. 함수는 함수 식별자를 사용하여 정규화하거나 간단한 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

[ function_identifier . ] parameter_identifier

매개 변수

예제

-- Create a function with undelimited parameters and reference them as qualified and nonqualified.
> CREATE FUNCTION area(x INT, y INT) RETURNS INT
  RETURN area.x + y;

-- Create a function with non-ASCII character parameters
> CREATE FUNCTION full_name(`prénom` STRING, `nom` STRING) RETURNS STRING
  RETURN `prénom` + ' ' + `nom`;

테이블 별칭

테이블 참조, 쿼리, 테이블 함수 또는 다른 형태의 관계로 레이블을 지정합니다.

구문

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

매개 변수

열 식별자를 제공하는 경우 해당 번호는 일치하는 관계의 열 수와 일치해야 합니다.

열 식별자를 제공하지 않으면 레이블이 지정된 관계에서 해당 이름이 상속됩니다.

예제

-- Defining a table alias with column list
> SELECT a, b FROM VALUES (1, 2) AS t(a, b);
 a  b
 1  2

-- Defining a table alias without column list
> DELETE FROM emp AS e WHERE e.c1 = 5;

-- Defining a table alias with non ASCII characters
> SELECT * FROM employee AS `직원`;

열 별칭

참조를 위해 SELECT 목록의 결과에 레이블을 지정합니다.

식이 테이블 반환 생성기 함수인 경우 별칭은 생성된 열 목록에 레이블을 지정합니다.

구문

[AS] column_identifier
[AS] ( column_identifier [, ...] )

매개 변수

열 별칭은 선택 목록에서 고유할 필요는 없지만 고유성은 별칭을 이름으로 참조해야 합니다.

예제

-- An undelimited alias
> SELECT 1 AS a;
 a
 1

> SELECT 1 a, 2 b;
 a b
 1 2

-- A delimited alias with non-ASCII characters
> SELECT 3.14 AS `圆周率`;
 a
 1

-- Referencing a passed column alias
> SELECT a + a FROM (SELECT 1 AS a);
 a
 2

자격 증명 이름

외부 위치에서 스토리지에 액세스하기 위한 자격 증명을 식별합니다.

구문

credential_identifier

매개 변수

  • credential_identifier: 자격 증명을 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

위치 이름

외부 스토리지 위치를 식별합니다.

구문

location_identifier

매개 변수

  • location_identifier: 위치를 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

`s3-json-data`

s3_json_data

공유 이름

공급자가 공유하는 데이터에 액세스하기 위한 공유를 식별합니다.

구문

share_identifier

매개 변수

  • share_identifier: 공유를 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

`public info`

`public-info`

public_info

공급자 이름

Delta Sharing 공급자를 식별합니다.

구문

provider_identifier

매개 변수

  • provider_identifier

    공급자를 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

`Good Corp`

`Good-corp`

Good_Corp

수신자 이름

공유 수신자를 식별합니다.

구문

recipient_identifier

매개 변수

  • recipient_identifier: 수신자를 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

`Good Corp`

`Good-corp`

Good_Corp

볼륨 이름

Unity 카탈로그 볼륨을 식별합니다. 볼륨은 스키마 이름으로 정규화되거나 단순 식별자를 사용하여 정규화되지 않을 수 있습니다.

구문

[ schema_name .] volume_identifier

매개 변수

  • schema_name: 볼륨을 포함하는 정규화되거나 정규화되지 않은 스키마 이름입니다.
  • volume_identifier: 스키마 내에서 볼륨을 고유하게 식별하는 정규화되지 않은 식별자입니다.

예제

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume