Поделиться через


Имена

Область применения: флажок Databricks SQL флажок Databricks Runtime

Определяет различные виды объектов в Azure Databricks.

Следующие ограничения применяются ко всем именам объектов в каталоге Unity:

  • Имена объектов не могут превышать 255 символов.
  • Не допускаются следующие специальные символы:
    • Период (.)
    • Пробел ( )
    • Прямая косая черта (/)
    • Все символы управления ASCII (00-1F шестнадцатеричное число)
    • Символ DELETE (шестнадцатеричное значение 7F)
  • Каталог Unity сохраняет все имена объектов в нижнем регистре.
  • При ссылке на имена UC в SQL необходимо использовать обратные знаки для escape-имен, содержащих специальные символы, такие как дефисы (-).

Примечание.

Имена столбцов могут использовать специальные символы, но имя должно быть экранировано с обратными знаками во всех инструкциях SQL, если используются специальные символы. Каталог Unity сохраняет регистр имени столбца, но запросы к таблицам каталога Unity не учитывает регистр.

Имя подключения

Определяет внешнее подключение. Внешнее подключение служит ссылкой на внешнюю систему, например PostgreSQL и может использоваться для ссылки на каталоги, схемы и таблицы.

Синтаксис

connection_identifier

Параметры

  • connection_identifier: идентификатор, который однозначно идентифицирует соединение.

Примеры

> CREATE CONNECTION my_postgresql ...;

Имя каталога

Определяет каталог. Каталог предоставляет группирование объектов, которые можно разделить на схемы.

Синтаксис

catalog_identifier

Параметры

  • 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 }

Параметры

  • catalog_name: имя в существующем каталоге.
  • schema_identifier: идентификатор, который уникально определяет схему.
  • Предложение IDENTIFIER: сопоставление константы STRING с именем схемы.

Схемы, созданные в 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 `数据库架构`;

Имя базы данных

Синоним для имени схемы.

Хотя использование SCHEMA и DATABASE является взаимозаменяемым, предпочтительно использовать 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: при использовании ссылается на версию или таблицу Delta в указанный момент времени.

    Временную спецификацию можно использовать только в контексте запроса или MERGE USING.

    • @ timestamp_encoding: положительный литерал bigint, который кодирует метку времени в формате yyyyMMddHHmmssSSS.
    • @V version: положительный целочисленный литерал, который определяет версию таблицы Delta.
    • timestamp_expression: простое выражение, результатом которого является TIMESTAMP. timestamp_expressiom должно быть константным выражением, но может содержать current_date() или current_timestamp().
    • version: положительный целочисленный или строковый литерал, который определяет версию таблицы Delta.
  • credential_spec

    Вы можете использовать соответствующие учетные данные для получения доступа к path_to_table, который не встроен во внешнее расположение.

    • credential_name

      Имя учетных данных, которые используются для доступа к месту хранения.

Таблицы, созданные в hive_metastore ней, могут содержать только буквенно-цифровые символы ASCII и символы подчеркивания (INVALID_SCHEMA_OR_RELATION_NAME).

Если имя не задано и не ссылается на известный псевдоним таблицы, Azure Databricks сначала пытается разрешить таблицу в текущей схеме.

Если имя квалифицировано с помощью схемы, Azure Databricks пытается разрешить таблицу в текущем каталоге.

Дополнительные сведения о разрешении имен см. в разделе "Таблица и разрешение представлений".

Azure Databricks вызывает ошибку, если используется temporal_spec для таблицы, которая не находится в формате Delta Lake.

Примеры

-- 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. Этот псевдостолбец структуры типа присутствует в каждой таблице и может использоваться для получения сведений метаданных о записях в таблице.

Предупреждение

Если схема таблицы содержит столбец с именем _metadata, запросы возвращают столбец из источника данных, а не метаданные файла. Псевдоколонтитум _metadata не будет доступен.

Имена столбцов в таблицах Delta Lake без свойства сопоставления столбцов ('delta.columnMapping.mode' = 'name') не должны содержать символы ' ' (пробел), ',', , ';''{', '}', . '('')' '\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 Lake без свойства сопоставления столбцов ('delta.columnMapping.mode' = 'name') не должны содержать символы ' ' (пробел), ',', , ';''{', '}', , . ')''(' '\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 (SQL UDF). Функция может быть определяемой при использовании идентификатора функции или неопределяемой при использовании простого идентификатора.

Синтаксис

[ function_identifier . ] parameter_identifier

Параметры

  • 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 [, ...] ) ]

Параметры

  • table_identifier: идентификатор, который определяет имя таблицы.
  • column_identifierN: необязательный идентификатор, который определяет имя столбца.

Если вы предоставляете идентификаторы столбцов, их количество должно совпадать с количеством столбцов в сопоставленном отношении.

Если идентификаторы столбцов не указаны, их имена наследуются от помеченного отношения.

Примеры

-- 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 [, ...] )

Параметры

  • 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

Имя поставщика

Определяет поставщика разностного общего доступа.

Синтаксис

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