Работа с внешними таблицами
Внешние таблицы хранят данные в каталоге в облачном хранилище объектов в вашем облачном клиенте. При определении внешней таблицы необходимо указать расположение хранилища.
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.
Операции записи кадра данных
Многие пользователи создают внешние таблицы из результатов запроса или операций записи DataFrame. В следующих статьях демонстрируется несколько шаблонов, которые можно использовать для создания внешней таблицы в Azure Databricks:
Удаление внешней таблицы
Чтобы удалить таблицу, вы должны быть её владельцем или иметь привилегию MANAGE
на таблице. Чтобы удалить внешнюю таблицу, выполните следующую команду SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Каталог Unity не удаляет базовые данные в облачном хранилище при удалении внешней таблицы. Если необходимо удалить данные, связанные с таблицей, необходимо удалить непосредственно базовые файлы данных.
пример записной книжки: создание внешних таблиц
В следующем примере записной книжки можно создать каталог, схему и внешнюю таблицу, а также управлять разрешениями на них.