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


CREATE CATALOG

применяется:установлен флажок Databricks SQL установлен флажок Databricks Runtime 10.4 LTS и выше установлен флажок только в каталоге Unity

Создает каталог с указанным именем. Если каталог с тем же именем уже существует, создается исключение.

При создании каталога FOREIGN он будет заполнен всеми схемами и их таблицами, видимыми для пользователя проверки подлинности.

Синтаксис

CREATE CATALOG [ IF NOT EXISTS ] catalog_name
    [ USING SHARE provider_name . share_name |
      MANAGED LOCATION location_path |
      COMMENT comment |
      OPTIONS ( { option_name = option_value } [ , ... ] ) ] [...]

CREATE FOREIGN CATALOG [ IF NOT EXISTS ] catalog_name
    USING CONNECTION connection_name
    [ COMMENT comment ]
    OPTIONS ( { option_name = option_value } [ , ... ] )

Параметры

  • FOREIGN

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

    Указывает, что каталог импортируется из CONNECTION.

  • IF NOT EXISTS

    Создает каталог с заданным именем, если он не существует. Если каталог с тем же именем уже существует, ничего не произойдет.

  • catalog_name

    Имя создаваемого каталога.

  • ИСПОЛЬЗОВАНИЕ PROVIDER_NAME SHARE share_name.

    При необходимости указывает, что каталог основан на разделе Delta Sharing.

    • provider_name

      Имя поставщика функции разностного общего доступа, который предоставил общую папку.

    • share_name

      Имя хранилища, указанное поставщиком provider_name.

  • Управляемое расположение location_path

    При необходимости указывает путь к управляемому расположению хранилища для каталога, отличного от расположения корневого хранилища хранилища метаданных. Этот путь должен быть определен в конфигурации внешнего расположения, и у вас должна CREATE MANAGED STORAGE быть привилегия в конфигурации внешнего расположения. Можно использовать путь, определенный в конфигурации внешнего расположения или подпате (другими словами, 'abfss://container@storageaccount.dfs.core.windows.net/finance' или 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Поддерживается в Databricks SQL или в кластерах под управлением Databricks Runtime 11.3 LTS и более поздних версий.

    См. также Работа с управляемыми таблицами и Создание хранилища метаданных каталога Unity.

  • ИСПОЛЬЗОВАНИЕ CONNECTION_NAME ПОДКЛЮЧЕНИЯ

    Указывает подключение, в котором находится исходный каталог.

  • комментарий

    Необязательный литерал STRING. Описание каталога.

  • OPTIONS

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

    • option_name

      Ключ параметра. Ключ может состоять из одного или нескольких идентификаторов, разделенных точкой или STRING литералом.

      Ключи параметров должны быть уникальными и чувствительны к регистру.

    • option_value

      Значение параметра. Значение должно быть выражением BOOLEAN, STRINGINTEGERили DECIMAL константой. Это значение также может быть вызовом SECRET функции SQL. Например, это valuepassword может быть secret('secrets.r.us', 'postgresPassword') вместо ввода литерального пароля.

Примеры

-- Create catalog `customer_cat`. This throws exception if catalog with name customer_cat
-- already exists.
> CREATE CATALOG customer_cat;

-- Create catalog `customer_cat` only if catalog with same name doesn't exist.
> CREATE CATALOG IF NOT EXISTS customer_cat;

-- Create catalog `customer_cat` only if catalog with same name doesn't exist, with a comment.
> CREATE CATALOG IF NOT EXISTS customer_cat COMMENT 'This is customer catalog';

-- Create a catalog from a Delta Sharing share.
> CREATE CATALOG customer_cat USING SHARE cdc.vaccinedata;

-- Create a catalog with a different managed storage location than the metastore's.
> CREATE CATALOG customer_cat MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/finance';

-- Create a foreign catalog linked to postgresdb at postgresql_connection
> CREATE FOREIGN CATALOG postgresql_catalog
     USING CONNECTION postgresql_connection
     OPTIONS (database 'postgresdb');