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


Работа с внешними таблицами

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

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

Примечание.

В этой статье рассматриваются внешние таблицы каталога Unity. Внешние таблицы в устаревшем хранилище метаданных Hive отличаются поведению. См . статью "Объекты базы данных" в устаревшем хранилище метаданных Hive.

Работа с внешними таблицами

Azure Databricks управляет только метаданными для внешних таблиц и не использует расположение хранилища, связанное с содержащей схемой. Регистрация таблицы в каталоге Unity — это просто указатель на файлы данных. При удалении внешней таблицы файлы данных не удаляются.

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

Для внешних таблиц могут использоваться следующие форматы файлов:

  • РАЗНИЦА
  • CSV
  • JSON
  • AVRO;
  • PARQUET;
  • ORC
  • ТЕКСТ

Создание внешней таблицы

Чтобы создать внешнюю таблицу, можно использовать команды SQL или операции записи кадра данных.

Подготовка к работе

Чтобы создать внешнюю таблицу, необходимо выполнить следующие требования к разрешениям:

  • CREATE EXTERNAL TABLE Привилегия во внешнем расположении, которое предоставляет доступ к LOCATION доступу к внешней таблице.
  • Разрешение USE SCHEMA для родительской схемы таблицы.
  • Разрешение USE CATALOG родительского каталога таблицы.
  • Разрешение CREATE TABLE для родительской схемы таблицы.

Дополнительные сведения о настройке внешних расположений см. в статье "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks".

Примеры команд SQL

Используйте один из следующих примеров команд в записной книжке или редакторе запросов SQL для создания внешней таблицы.

В следующих примерах замените значения-заполнители:

  • <catalog>: имя каталога, который будет содержать таблицу.
  • <schema>: имя схемы, которая будет содержать таблицу.
  • <table-name>: имя таблицы.
  • <column-specification>: имя и тип данных для каждого столбца.
  • <bucket-path>: Путь к контейнеру облачного хранилища, в котором будет создана таблица.
  • <table-directory>: каталог, в котором будет создана таблица. Используйте уникальный каталог для каждой таблицы.
CREATE TABLE <catalog>.<schema>.<table-name>
(
  <column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';

Дополнительные сведения о параметрах создания таблиц см. в статье CREATE TABLE.

Операции записи кадра данных

Многие пользователи создают внешние таблицы из результатов запроса или операций записи кадра данных. В следующих статьях демонстрируется несколько шаблонов, которые можно использовать для создания внешней таблицы в Azure Databricks:

Удаление внешней таблицы

Чтобы удалить таблицу, необходимо быть ее владельцем. Чтобы удалить внешнюю таблицу, выполните следующую команду SQL:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

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

Пример записной книжки: создание внешних таблиц

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

Создание внешней таблицы и управление ими в записной книжке каталога Unity

Получить записную книжку