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


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

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

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

Примечание.

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

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

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

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

Внешний tables может использовать следующие форматы файлов:

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

Создайте внешнюю table

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

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

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

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

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

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

Используйте один из следующих примеров команд в ноутбуке или в редакторе SQL-запросов для создания внешнего объекта table.

В следующих примерах замените заполнитель values:

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

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

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

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

Бросить внешнюю table

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

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

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

Пример записной книжки : создание внешнего tables

В приведённом примере записной книжки можно создать catalog, schemaи внешние table, а также управлять их разрешениями.

Создайте и управляйте внешней table в записной книжке Unity Catalog

Get записная книжка