Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каталог Unity управляет разрешениями доступа к внешним данным для всех запросов, которые проходят через него, но не занимается управлением жизненным циклом данных, оптимизацией, расположением хранилища или структурой.
Внешние таблицы хранят данные в каталоге в облачном хранилище объектов в вашем облачном клиенте. При определении внешней таблицы необходимо указать расположение хранилища. При удалении внешней таблицы файлы данных не удаляются.
При создании внешней таблицы можно зарегистрировать существующий каталог файлов данных в качестве таблицы или предоставить путь к созданию нового каталога, в который хранятся файлы данных, которые хранятся в таблице.
Databricks рекомендует использовать внешние таблицы для следующих вариантов использования:
- Необходимо зарегистрировать таблицу, поддерживаемую существующими данными, которые несовместимы с управляемыми таблицами каталога Unity.
- Кроме того, требуется прямой доступ к данным из клиентов, отличных от Databricks, которые не поддерживают другие шаблоны внешнего доступа. См. как получить доступ к данным Databricks с помощью внешних систем.
Привилегии каталога Unity не применяются при доступе пользователей к файлам данных из внешних систем.
В этой статье рассматриваются внешние таблицы каталога Unity. Внешние таблицы в хранилище метаданных Hive устаревшей версии имеют различное поведение. См. статью "Объекты базы данных в устаревшем хранилище метаданных Hive".
Это важно
Если вы обновляете метаданные внешней таблицы, используя клиент, не связанный с Databricks, или осуществляете доступ на основе пути внутри Databricks, состояние этих метаданных не синхронизируется автоматически с каталогом Unity. Databricks не рекомендует такие обновления метаданных, но если вы их выполняете, необходимо выполнить команду MSCK REPAIR TABLE <table-name> SYNC METADATA
, чтобы привести схему в каталоге Unity в актуальное состояние. См. REPAIR TABLE.
Форматы файлов для внешних таблиц
Внешние таблицы могут использовать следующие форматы файлов:
- ДЕЛЬТА
- CSV
- JSON (JavaScript Object Notation)
- AVRO;
- PARQUET;
- ОРК (Оптическое Распознавание Символов)
- ТЕКСТ
Создание внешней таблицы
Чтобы создать внешнюю таблицу, можно использовать команды SQL или операции записи кадра данных.
Прежде чем начать
Чтобы создать внешнюю таблицу, необходимо выполнить следующие требования к разрешениям:
- Привилегия
CREATE EXTERNAL TABLE
на внешнем расположении, которая предоставляет доступ кLOCATION
, используемому внешней таблицей. - Права доступа
USE SCHEMA
на родительской схеме таблицы. - Разрешение
USE CATALOG
на родительском каталоге таблицы. - Права доступа
CREATE TABLE
на родительской схеме таблицы.
Дополнительные сведения о настройке внешних расположений см. в статье "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks".
Замечание
Если вы предоставляете доступ к внешней таблице в AWS S3, помните следующее: Databricks рекомендует предоставить права записи на таблицу, которая поддерживается внешним расположением в S3, только если внешнее расположение определено в одном хранилище метаданных. Вы можете безопасно считывать данные в одном расположении S3 из нескольких хранилищ метаданных, но одновременные записи в одно расположение S3 из нескольких хранилищ метаданных могут привести к проблемам согласованности.
Примеры команд SQL
Используйте один из следующих примеров команд в записной книжке или редакторе запросов SQL для создания внешней таблицы.
В следующих примерах замените значения заполнителей:
-
<catalog>
: имя каталога, содержащего таблицу. -
<schema>
: имя схемы, содержащей таблицу. -
<table-name>
: это имя для таблицы. -
<column-specification>
: имя и тип данных для каждого столбца. -
<bucket-path>
: путь к контейнеру облачного хранилища, в котором будет создана таблица. -
<table-directory>
: каталог, в котором будет создана таблица. Используйте уникальный каталог для каждой таблицы.
ADLS
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
S3
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 's3://<bucket-path>/<table-directory>';
Дополнительные сведения о параметрах создания таблиц см. в CREATE TABLE.
Операции записи кадра данных
Многие пользователи создают внешние таблицы из результатов запроса или операций записи DataFrame. В следующих статьях демонстрируется несколько шаблонов, которые можно использовать для создания внешней таблицы в Azure Databricks:
Удаление внешней таблицы
Чтобы удалить таблицу, вы должны быть её владельцем или иметь привилегию MANAGE
на таблице. Чтобы удалить внешнюю таблицу, выполните следующую команду SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Каталог Unity не удаляет базовые данные в облачном хранилище при удалении внешней таблицы. Если необходимо удалить данные, связанные с таблицей, необходимо удалить непосредственно базовые файлы данных.
пример записной книжки: создание внешних таблиц
В следующем примере записной книжки можно создать каталог, схему и внешнюю таблицу, а также управлять разрешениями на них.