Точное управление доступом для вычислений с одним пользователем
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье представлена функция фильтрации данных, которая обеспечивает детальное управление доступом к запросам, выполняющимся на вычислительных ресурсах с одним пользователем (все назначения или задания, настроенные в режиме доступа с одним пользователем). См . режимы доступа.
Фильтрация данных выполняется за кулисами с помощью бессерверных вычислений.
Почему для некоторых запросов для вычислений с одним пользователем требуется фильтрация данных?
Каталог Unity позволяет управлять доступом к табличным данным на уровне столбца и строки (также известного как точное управление доступом) с помощью следующих функций:
Когда пользователи запрашивают представления, которые исключают данные из ссылочных таблиц или таблиц запросов, которые применяют фильтры и маски, они могут использовать любой из следующих вычислительных ресурсов без ограничений:
- Хранилища SQL
- Общие вычислительные ресурсы
Однако если вы используете однопользовательские вычисления для выполнения таких запросов, вычислительные ресурсы и рабочая область должны соответствовать определенным требованиям:
Вычислительный ресурс с одним пользователем должен находиться в Databricks Runtime 15.4 LTS или более поздней версии.
Рабочая область должна быть включена для бессерверных вычислений для заданий, записных книжек и разностных динамических таблиц.
Чтобы убедиться, что регион рабочей области поддерживает бессерверные вычисления, см. сведения о функциях с ограниченной региональной доступностью.
Если вычислительный ресурс и рабочая область с одним пользователем соответствуют этим требованиям, фильтрация данных выполняется автоматически при запросе представления или таблицы, использующего точное управление доступом.
Поддержка материализованных представлений, потоковых таблиц и стандартных представлений
Помимо динамических представлений, фильтров строк и маски столбцов, фильтрация данных также позволяет выполнять запросы к следующим представлениям и таблицам, которые не поддерживаются для вычислений с одним пользователем, работающих под управлением Databricks Runtime 15.3 и ниже:
-
При вычислении с одним пользователем под управлением Databricks Runtime 15.3 и ниже пользователь, выполняющий запрос в представлении, должен иметь
SELECT
данные о таблицах и представлениях, на которые ссылается представление, что означает, что нельзя использовать представления для обеспечения точного управления доступом. В Databricks Runtime 15.4 с фильтрацией данных пользователь, запрашивающий представление, не нуждается в доступе к указанным таблицам и представлениям.
Как фильтрация данных работает с однопользовательскими вычислениями?
Каждый раз, когда запрос обращается к следующим объектам базы данных, однопользовательский вычислительный ресурс передает запрос на бессерверные вычисления для фильтрации данных:
- Представления, созданные на основе таблиц, в которых у пользователя нет
SELECT
прав - Динамические представления
- Таблицы с определенными фильтрами строк или масками столбцов
- Материализованные представления и таблицы потоковой передачи
На следующей схеме пользователь включен SELECT
table_1
view_2
и table_w_rls
имеет примененные фильтры строк. Пользователь не имеет на SELECT
table_2
ней ссылки view_2
.
Запрос table_1
полностью обрабатывается одним пользователем вычислительным ресурсом, так как фильтрация не требуется. Запросы view_2
и table_w_rls
требуют фильтрации данных для возврата данных, к которым у пользователя есть доступ. Эти запросы обрабатываются функцией фильтрации данных на бессерверных вычислениях.
Какие расходы взимается?
Клиентам взимается плата за бессерверные вычислительные ресурсы, используемые для выполнения операций фильтрации данных. Сведения о ценах см. в разделе "Уровни платформы" и "Надстройки".
Вы можете запросить таблицу использования системного выставления счетов, чтобы узнать, сколько вы зачислили. Например, следующий запрос разбивает затраты на вычисления пользователем:
SELECT usage_date,
sku_name,
identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by FGAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2024-08-01' AND '2024-09-01'
AND billing_origin_product = 'FINE_GRAINED_ACCESS_CONTROL'
GROUP BY 1, 2, 3 ORDER BY 1;
Просмотр производительности запросов при использовании фильтрации данных
Пользовательский интерфейс Spark для вычислений с одним пользователем отображает метрики, которые можно использовать для понимания производительности запросов. Для каждого запроса, выполняемого на вычислительном ресурсе, вкладка SQL/Dataframe отображает представление графа запросов. Если запрос был вовлечен в фильтрацию данных, пользовательский интерфейс отображает узел оператора RemoteSparkConnectScan в нижней части графа. На этом узле отображаются метрики, которые можно использовать для изучения производительности запросов. Просмотр сведений о вычислениях в пользовательском интерфейсе Apache Spark.
Разверните узел оператора RemoteSparkConnectScan, чтобы просмотреть метрики, которые касаются следующих вопросов:
- Сколько времени занимает фильтрация данных? Просмотрите "общее время удаленного выполнения".
- Сколько строк осталось после фильтрации данных? Просмотр выходных данных строк.
- Сколько данных (в байтах) было возвращено после фильтрации данных? Просмотрите "размер выходных данных строк".
- Сколько файлов данных было прорезано секционированием и не должно быть считываться из хранилища? Просмотрите "Файлы, отрезаемые" и "Размер файлов, отрезаемых".
- Сколько файлов данных не удалось выполнить и нужно было считывать из хранилища? Просмотр "Файлы считываются" и "Размер файлов считываются".
- Из файлов, которые должны были быть прочитаны, сколько уже было в кэше? Просмотр "Размер попаданий кэша" и "Кэш пропускает размер".
Ограничения
Во время общедоступной предварительной версии применяются следующие ограничения:
Нет поддержки операций записи или обновления таблиц в таблицах с примененными фильтрами строк или масками столбцов.
В частности, операции DML, такие как
INSERT,
DELETE
,UPDATE
REFRESH TABLE
и , неMERGE
поддерживаются. Из этих таблиц можно прочитать только (SELECT
).Самосоединения блокируются по умолчанию при вызове фильтрации данных, но их можно разрешить, установив
spark.databricks.remoteFiltering.blockSelfJoins
значение false для вычислений, в которых выполняются эти команды.Прежде чем включить самостоятельное присоединение к ресурсу вычислений с одним пользователем, помните, что запрос самосоединения, обрабатываемый функцией фильтрации данных, может возвращать различные моментальные снимки одной удаленной таблицы.