Прочитать на английском

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


Внешние tables

Область применения:флажок Databricks SQL флажок Databricks Runtime

Unity Catalog и встроенное хранилище метаданных Azure Databricks Hive используют расположения по умолчанию для управляемых tables. В Unity Catalog представлено несколько новых объектов, обеспечиваемых защитой, для grant привилегий доступа к данным в облачном хранилище объектов.

  • Учетные данные хранилища

    Объект Unity Catalog, используемый для абстрагирования долгосрочного хранения credentials из облачного хранилища providers.

  • Внешнее расположение

    Объект Unity Catalog, используемый для связывания URI облачного хранилища объектов с учетными данными хранилища .

  • внешние table

    Единство , созданное во внешнем расположении, управляемом Unity .

Внешние table

Внешний table — это table, который ссылается на внешний путь хранения с помощью условия LOCATION.

Путь к хранилищу должен содержаться в существующем внешнем расположении, к которому вам предоставлен доступ.

Кроме того, вы можете ссылаться на учетные данные хранилища, к которым вам предоставлен доступ.

Использование внешних tables скрывает путь к хранилищу, учетные данные хранения и внешнее расположение для пользователей, которым предоставлен доступ к внешним table.

Предупреждение

Если schema (база данных) зарегистрирована в рабочей области метахранилища Hive, удаление schema с применением опции CASCADE приведет к рекурсивному удалению всех файлов в этом месте schema, независимо от типа table (управляемого или внешнего).

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

Таким образом, чтобы избежать случайной потери данных, никогда не следует регистрировать schema в хранилище метаданных Hive на месте, где уже есть данные. Не следует создавать новые внешние tables в расположении, управляемом схемами хранилища метаданных Hive, или в местах, содержащих управляемые Unity Catalogtables.

Графическое представление связей

На схеме ниже показана связь между следующими элементами:

  • хранилище credentials
  • внешние расположения;
  • внешний tables
  • пути к хранилищу;
  • сущности IAM;
  • учетные записи службы Azure.

Схема внешнего расположения ER

Примеры

-- `finance` can create an external table over specific object within the `finance_loc` location
> CREATE TABLE sec_filings LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings';

-- Create or replace an external table from a query
> CREATE OR REPLACE TABLE sec_filings
  LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings'
  AS (SELECT * FROM current_filings);

-- Cannot list files under an external table without permissions on it
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
  Error
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
  Error

-- Grant access to sec_filings to all employees
> GRANT SELECT ON TABLE sec_filings TO employee;

-- Any member of the `employee` group can securely read sec_filings
> SELECT count(1) FROM sec_filings;
 20

-- Any member of the `employee` group can list files under the sec_filings table
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
  _delta_log
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
  00000.json

Дополнительные ресурсы