Работа с внешними 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, а также управлять их разрешениями.