Filtrování citlivých dat tabulky pomocí filtrů řádků a masek sloupců
Tento článek obsahuje pokyny a příklady použití filtrů řádků, masek sloupců a mapování tabulek pro filtrování citlivých dat v tabulkách. Tyto funkce vyžadují katalog Unity.
Co jsou filtry řádků?
Filtry řádků umožňují použít filtr na tabulku, aby dotazy vracely pouze řádky, které splňují kritéria filtru. Filtr řádků implementujete jako uživatelem definovanou funkci SQL (UDF). Podporují se také funkce Definované uživatelem Pythonu a Scala, ale jenom v případě, že jsou zabalené v uživatelem definovaných funkcích SQL.
Co jsou masky sloupců?
Masky sloupců umožňují použít funkci maskování u sloupce tabulky. Funkce maskování se vyhodnocuje za běhu dotazu a každý odkaz cílového sloupce nahraďe výsledky funkce maskování. Ve většině případů masky sloupců určují, jestli se má vrátit původní hodnota sloupce, nebo ji znovu provést na základě identity vyvolání uživatele. Masky sloupců jsou výrazy napsané jako uživatelem definované funkce SQL nebo jako uživatelem definované funkce Python nebo Scala zabalené v uživatelem definovaných funkcích SQL.
Každý sloupec tabulky může mít použitou jenom jednu maskovací funkci. Funkce maskování přebírá nemaskovanou hodnotu sloupce jako vstup a jako výsledek vrátí maskovanou hodnotu. Návratová hodnota funkce maskování by měla být stejného typu jako maskovaný sloupec. Funkce maskování může také jako vstupní parametry převzít další sloupce a použít je v logice maskování.
Jaký je rozdíl mezi těmito filtry a dynamickými zobrazeními?
Dynamická zobrazení, filtry řádků a masky sloupců umožňují použít komplexní logiku u tabulek a zpracovávat jejich rozhodnutí o filtrování za běhu dotazu.
Dynamické zobrazení je abstraktní zobrazení jen pro čtení jedné nebo více zdrojových tabulek. Uživatel má přístup k dynamickému zobrazení, aniž by měl přímý přístup ke zdrojovým tabulkám. Vytvoření dynamického zobrazení definuje nový název tabulky, který se nesmí shodovat s názvem žádných zdrojových tabulek nebo jiných tabulek a zobrazení, které jsou přítomné ve stejném schématu.
Na druhou stranu přidružení filtru řádku nebo masky sloupců k cílové tabulce použije odpovídající logiku přímo na samotnou tabulku bez zavedení nových názvů tabulek. Další dotazy můžou dál odkazovat přímo na cílovou tabulku s použitím původního názvu.
Dynamická zobrazení použijte, pokud potřebujete aplikovat transformační logiku, jako jsou filtry a masky, na tabulky pouze pro čtení a pokud je přijatelné, aby uživatelé odkazovali na dynamická zobrazení různými názvy. Pokud chcete data filtrovat při sdílení pomocí rozdílového sdílení, musíte použít dynamická zobrazení. Filtry řádků a masky sloupců použijte, pokud chcete filtrovat nebo vypočítat výrazy nad konkrétními daty, ale přesto uživatelům poskytnout přístup k tabulkám pomocí jejich původních názvů.
Než začnete
Pokud chcete do tabulek přidat filtry řádků a masky sloupců, musíte mít:
- Pracovní prostor, který je povolený pro katalog Unity.
- Funkce zaregistrovaná v katalogu Unity. Tato funkce může být SQL UDF, nebo Python či Scala UDF zaregistrovaná v katalogu Unity a obalená do SQL UDF. Podrobnosti najdete v tématu Co jsou uživatelem definované funkce (UDF)?, klauzule Maska sloupce a klauzule ROW FILTER.
Musíte také splnit následující požadavky:
- Pokud chcete přiřadit funkci, která přidává filtry řádků nebo masky sloupců do tabulky, musíte mít
EXECUTE
oprávnění k funkci,USE SCHEMA
schématu aUSE CATALOG
nadřazeného katalogu. - Pokud přidáváte filtry nebo masky při vytváření nové tabulky, musíte mít
CREATE TABLE
oprávnění ke schématu. - Pokud přidáváte filtry nebo masky do existující tabulky, musíte být vlastníkem tabulky.
Pokud chcete získat přístup k tabulce, která obsahuje filtry řádků nebo masky sloupců, musí výpočetní prostředek splňovat jeden z těchto požadavků:
SQL Warehouse.
Režim sdíleného přístupu v Databricks Runtime 12.2 LTS nebo vyšší
Režim přístupu jednoho uživatele v Databricks Runtime 15.4 LTS nebo vyšší.
Filtry řádků nebo masky sloupců nelze číst pomocí výpočetních prostředků nakonfigurovaných s režimem přístupu jednoho uživatele v Databricks Runtime 15.3 nebo novějším.
Pokud chcete využít filtrování dat poskytované v Databricks Runtime 15.4 LTS a vyšší, musíte také ověřit, že je váš pracovní prostor povolený pro bezserverové výpočetní prostředky, protože funkce filtrování dat podporující filtry řádků a masky sloupců běží na bezserverovém výpočetním prostředí. Za výpočetní prostředky bez serveru se můžou účtovat poplatky, když použijete výpočetní režim nakonfigurovaný jako režim přístupu jednoho uživatele ke čtení tabulek, které používají filtry řádků nebo masky sloupců. Podívejte se na podrobné řízení přístupu u výpočetních prostředků jednoho uživatele.
Použití filtru řádků
Pokud chcete vytvořit filtr řádků, napíšete funkci (UDF), která definuje zásadu filtru a použije ji u tabulky. Každá tabulka může mít pouze jeden filtr řádků. Filtr řádku přijímá nula nebo více vstupních parametrů, kde každý vstupní parametr vytvoří vazbu na jeden sloupec odpovídající tabulky.
Filtr řádků můžete použít pomocí Průzkumníka katalogu nebo příkazů SQL. Pokyny Průzkumníka katalogu předpokládají, že jste už vytvořili funkci a zaregistrovali ji v katalogu Unity. Pokyny SQL zahrnují příklady vytvoření funkce filtru řádků a použití na tabulku.
Průzkumník katalogu
- V pracovním prostoru Azure Databricks klikněte na Katalog.
- Vyhledejte nebo vyhledejte tabulku, kterou chcete filtrovat.
- Na kartě Přehled klikněte na filtr řádků: Přidat filtr.
- V dialogovém okně Přidat filtr řádků vyberte katalog a schéma, které obsahují funkci filtru, a pak tuto funkci vyberte.
- V rozšířeném dialogovém okně zobrazte definici funkce a vyberte sloupce tabulky, které odpovídají sloupcům obsaženým v příkazu funkce.
- Klikněte na tlačítko Přidat.
Pokud chcete filtr z tabulky odebrat, klikněte na fx Row filter a klikněte na Odebrat.
SQL
Pokud chcete vytvořit filtr řádků a pak ho přidat do existující tabulky, použijte CREATE FUNCTION
a použijte funkci pomocí ALTER TABLE
. Funkci můžete použít také při vytváření tabulky pomocí CREATE TABLE
.
Vytvořte filtr řádků:
CREATE FUNCTION <function_name> (<parameter_name> <parameter_type>, ...) RETURN {filter clause whose output must be a boolean};
Použijte filtr řádků u tabulky pomocí názvu sloupce:
ALTER TABLE <table_name> SET ROW FILTER <function_name> ON (<column_name>, ...);
Další příklady syntaxe:
Použijte filtr řádků u tabulky pomocí konstantního literálu, který odpovídá parametru funkce:
ALTER TABLE <table_name> SET ROW FILTER <function_name> ON (<constant_literal>, ...);
Odebrání filtru řádků z tabulky:
ALTER TABLE <table_name> DROP ROW FILTER;
Úprava filtru řádků:
Run a DROP FUNCTION statement to drop the existing function, or use CREATE OR REPLACE FUNCTION to replace it.
Odstranění filtru řádků:
ALTER TABLE <table_name> DROP ROW FILTER; DROP FUNCTION <function_name>;
Poznámka:
Před uvolněním funkce je nutné provést
ALTER TABLE ... DROP ROW FILTER
příkaz. Pokud ne, bude tabulka nepřístupná.Pokud je tabulka tímto způsobem nepřístupná, upravte tabulku a odstraňte odkaz na osamocený řádek pomocí
ALTER TABLE <table_name> DROP ROW FILTER;
.
Viz také klauzule ROW FILTER.
Příklady filtru řádků
Tento příklad vytvoří uživatelem definovanou funkci SQL, která se vztahuje na členy skupiny admin
v oblasti US
.
Když se tato ukázková funkce použije na sales
tabulku, členové admin
skupiny budou mít přístup ke všem záznamům v tabulce. Pokud funkci volá nesprávce, podmínka selže a RETURN_IF
výraz se vyhodnotí a vyfiltruje se tabulka tak, region='US'
aby zobrazovala jenom záznamy v US
oblasti.
CREATE FUNCTION us_filter(region STRING)
RETURN IF(IS_ACCOUNT_GROUP_MEMBER('admin'), true, region='US');
Použijte funkci u tabulky jako filtru řádků. Následné dotazy z sales
tabulky pak vrátí podmnožinu řádků.
CREATE TABLE sales (region STRING, id INT);
ALTER TABLE sales SET ROW FILTER us_filter ON (region);
Zakažte filtr řádků. Budoucí dotazy uživatelů z sales
tabulky pak vrátí všechny řádky v tabulce.
ALTER TABLE sales DROP ROW FILTER;
Vytvořte tabulku s funkcí použitou jako filtr řádků jako součást CREATE TABLE
příkazu. Budoucí dotazy z sales
tabulky pak vrátí podmnožinu řádků.
CREATE TABLE sales (region STRING, id INT)
WITH ROW FILTER us_filter ON (region);
Použití masky sloupce
Pokud chcete použít masku sloupce, vytvořte funkci (UDF) a použijte ji u sloupce tabulky.
Masku sloupce můžete použít pomocí Průzkumníka katalogu nebo příkazů SQL. Pokyny Průzkumníka katalogu předpokládají, že jste už vytvořili funkci a zaregistrovali ji v katalogu Unity. Pokyny SQL zahrnují příklady vytvoření funkce masky sloupce a použití na sloupec tabulky.
Průzkumník katalogu
- V pracovním prostoru Azure Databricks klikněte na Katalog.
- Vyhledejte tabulku nebo ji vyhledejte.
- Na kartě Přehled najděte řádek, u kterého chcete použít masku sloupce, a klikněte na ikonu Maska pro úpravy.
- V dialogovém okně Přidat masku sloupce vyberte katalog a schéma, které obsahují funkci filtru, a pak tuto funkci vyberte.
- V rozbaleném dialogovém okně zobrazte definici funkce. Pokud funkce kromě maskovaného sloupce obsahuje všechny parametry, vyberte sloupce tabulky, ve kterých chcete tyto další parametry funkce přetypovat.
- Klikněte na tlačítko Přidat.
Chcete-li z tabulky odebrat masku sloupce, klikněte na fx Maska sloupce v řádku tabulky a klepněte na tlačítko Odebrat.
SQL
Pokud chcete vytvořit masku sloupce a přidat ji do existujícího sloupce tabulky, použijte CREATE FUNCTION
a použijte funkci maskování pomocí ALTER TABLE
. Funkci můžete použít také při vytváření tabulky pomocí CREATE TABLE
.
Slouží SET MASK
k použití funkce maskování.
MASK
V rámci této klauzule můžete použít některou z integrovaných funkcí modulu runtime Azure Databricks nebo volat jiné uživatelem definované funkce. Mezi běžné případy použití patří kontrola identity vyvolání uživatele, který funkci spouští, pomocí current_user( )
nebo získání skupin, které jsou členy používání is_account_group_member( )
. Podrobnosti najdete v tématu Maska sloupce klauzule a předdefinované funkce.
Vytvoření masky sloupce:
CREATE FUNCTION <function_name> (<parameter_name> <parameter_type>, ...) RETURN {expression with the same type as the first parameter};
Použijte masku sloupce u sloupce v existující tabulce:
ALTER TABLE <table_name> ALTER COLUMN <col_name> SET MASK <mask_func_name> USING COLUMNS <additional_columns>;
Další příklady syntaxe:
Použijte masku sloupce na sloupec v existující tabulce pomocí konstantního literálu, který odpovídá parametru funkce:
ALTER TABLE <table_name> ALTER COLUMN <col_name> SET MASK <mask_func_name> USING COLUMNS (<constant_name>, ...);
Odebrání masky sloupce ze sloupce v tabulce:
ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK;
Upravte masku sloupce, buď
DROP
existující funkci, nebo použijteCREATE OR REPLACE TABLE
.Odstranění masky sloupce:
ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK; DROP FUNCTION <function_name>;
Poznámka:
Před vyřazením funkce je nutné provést
ALTER TABLE
příkaz nebo tabulka bude nepřístupná.Pokud je tabulka tímto způsobem nepřístupná, upravte tabulku a odstraňte odkaz na osamocené masky pomocí
ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK;
.
Příklady masky sloupců
V tomto příkladu vytvoříte uživatelem definovanou funkci, která zamaskuje ssn
sloupec tak, aby hodnoty v tomto sloupci mohli zobrazit jenom uživatelé, kteří jsou členy HumanResourceDept
skupiny.
CREATE FUNCTION ssn_mask(ssn STRING)
RETURN CASE WHEN is_member('HumanResourceDept') THEN ssn ELSE '***-**-****' END;
Použijte novou funkci na tabulku jako masku sloupce. Masku sloupce můžete přidat při vytváření tabulky nebo později.
--Create the `users` table and apply the column mask in a single step:
CREATE TABLE users (
name STRING,
ssn STRING MASK ssn_mask);
--Create the `users` table and apply the column mask after:
CREATE TABLE users
(name STRING, ssn STRING);
ALTER TABLE users ALTER COLUMN ssn SET MASK ssn_mask;
Dotazy na tuto tabulku teď vracejí maskované ssn
hodnoty sloupců, když uživatel dotazu není členem HumanResourceDept
skupiny:
SELECT * FROM users;
James ***-**-****
Zakázání masky sloupce tak, aby dotazy vrátily původní hodnoty ve sloupci ssn
:
ALTER TABLE users ALTER COLUMN ssn DROP MASK;
Vytvoření seznamu řízení přístupu pomocí mapovacích tabulek
Pokud chcete dosáhnout zabezpečení na úrovni řádků, zvažte definování tabulky mapování (nebo seznamu řízení přístupu). Komplexní tabulka mapování kóduje, které řádky dat v původní tabulce jsou přístupné určitým uživatelům nebo skupinám. Mapování tabulek je užitečné, protože nabízejí jednoduchou integraci s tabulkami faktů prostřednictvím přímých spojení.
Tato metodologie řeší řadu případů použití, které zahrnují vlastní požadavky. Příkladem může být:
- Nastavení omezení na základě přihlášeného uživatele při současném přizpůsobení různých pravidel pro konkrétní skupiny uživatelů.
- Vytváření složitých hierarchií, jako jsou organizační struktury, které vyžadují různé sady pravidel.
- Replikace složitých modelů zabezpečení z externích zdrojových systémů
Přijetím mapovacích tabulek můžete tyto náročné scénáře provést a zajistit robustní implementace zabezpečení na úrovni řádků a sloupců.
Příklady mapovacích tabulek
Pomocí tabulky mapování zkontrolujte, jestli je aktuální uživatel v seznamu:
USE CATALOG main;
Vytvořte novou tabulku mapování:
DROP TABLE IF EXISTS valid_users;
CREATE TABLE valid_users(username string);
INSERT INTO valid_users
VALUES
('fred@databricks.com'),
('barney@databricks.com');
Vytvořte nový filtr:
Poznámka:
Všechny filtry se spouští s právy defineru s výjimkou funkcí, které kontrolují kontext uživatele (například CURRENT_USER
funkce), IS_MEMBER
které se spouští jako invoker.
V tomto příkladu funkce zkontroluje, jestli je aktuální uživatel v tabulce valid_users
. Pokud se uživatel najde, vrátí funkce hodnotu true.
DROP FUNCTION IF EXISTS row_filter;
CREATE FUNCTION row_filter()
RETURN EXISTS(
SELECT 1 FROM valid_users v
WHERE v.username = CURRENT_USER()
);
Následující příklad použije filtr řádků během vytváření tabulky. Filtr můžete přidat také později pomocí ALTER TABLE
příkazu. Při použití na celou tabulku použijte syntaxi ON ()
. Pro konkrétní řádek použijte ON (row);
.
DROP TABLE IF EXISTS data_table;
CREATE TABLE data_table
(x INT, y INT, z INT)
WITH ROW FILTER row_filter ON ();
INSERT INTO data_table VALUES
(1, 2, 3),
(4, 5, 6),
(7, 8, 9);
Vyberte data z tabulky. Tato možnost by měla vracet data pouze v případě, že je uživatel v valid_users
tabulce.
SELECT * FROM data_table;
Vytvořte tabulku mapování obsahující účty, které by vždy měly mít přístup k zobrazení všech řádků v tabulce bez ohledu na hodnoty sloupců:
CREATE TABLE valid_accounts(account string);
INSERT INTO valid_accounts
VALUES
('admin'),
('cstaff');
Nyní vytvořte SQL funkci UDF, která vrátí true
, pokud jsou hodnoty všech sloupců v řádku menší než pět, nebo pokud je uživatel, který tuto funkci spouští, členem výše uvedené tabulky mapování.
CREATE FUNCTION row_filter_small_values (x INT, y INT, z INT)
RETURN (x < 5 AND y < 5 AND z < 5)
OR EXISTS(
SELECT 1 FROM valid_accounts v
WHERE IS_ACCOUNT_GROUP_MEMBER(v.account));
Nakonec u tabulky jako filtr řádků použijte UDF SQL:
ALTER TABLE data_table SET ROW FILTER row_filter_small_values ON (x, y, z);
Podpora a omezení
Filtry řádků a masky sloupců se nepodporují se všemi funkcemi Azure Databricks ani u všech výpočetních prostředků. Tato část obsahuje seznam podporovaných funkcí a omezení.
Podporované funkce a formáty
Tento seznam podporovaných funkcí není vyčerpávající. Některé položky jsou uvedené, protože byly ve verzi Public Preview nepodporované.
Podporují se poznámkové bloky DATAbricks SQL a Databricks pro úlohy SQL.
Podporují se příkazy DML uživatelů s oprávněními
MODIFY
. Filtry a masky jsou aplikovány na data čtená pomocí příkazůUPDATE
aDELETE
a nepoužívají se pro data, která jsou zapsána (včetně těch uINSERT
).Podporované formáty dat:
- Delta a Parquet pro spravované a externí tabulky
- Více dalších formátů dat pro cizí tabulky zaregistrované v katalogu Unity pomocí Lakehouse Federation
Parametry zásad můžou zahrnovat konstantní výrazy (řetězce, číselné, intervaly, logické hodnoty, hodnoty null).
Funkce SQL, Python a Scala UDF se podporují jako funkce filtru řádků nebo masky sloupců, pokud jsou zaregistrované v katalogu Unity. Uživatelem definované funkce Pythonu a Scala musí být zabalené do uživatelem definovaného uživatelem SQL.
V tabulkách, které odkazují na masky sloupců nebo filtry řádků, můžete vytvořit zobrazení, ale do zobrazení nemůžete přidat masky sloupců nebo filtry řádků.
Rozdílové datové kanály změn Delta Lake jsou podporovány, pokud je schéma kompatibilní s řádkovými filtry a sloupcovými maskami, které platí pro cílovou tabulku.
Podporují se cizí tabulky.
Podporuje se vzorkování tabulek.
MERGE
Příkazy jsou podporovány, když zdrojové tabulky, cílové tabulky nebo obě používají filtry řádků a masky sloupců. To zahrnuje tabulky s funkcemi filtru řádků, které obsahují jednoduché poddotazy. Omezení jsou uvedená v následující části.Databricks SQL materializovaná zobrazení a tabulky streamování Databricks SQL podporují filtry řádků a masky sloupců (Public Preview):
- Do materializovaného zobrazení Databricks nebo tabulky streamování můžete přidat filtry řádků a masky sloupců. Přidání masek musí být provedeno deklarativním způsobem při definování materializovaného zobrazení nebo tabulky streamování. Viz CREATE MATERIALIZED VIEW nebo CREATE STREAMING TABLE.
- Databricks SQL můžete definovat materializovaná zobrazení nebo streamované tabulky u tabulek, které obsahují filtry řádků a masky sloupců.
Materializovaná zobrazení a streamované tabulky deklarované a publikované v Delta Live Tables podporují filtry řádků nebo masky sloupců (Public Preview):
- Filtry řádků a masky sloupců můžete přidat do materializovaného zobrazení Delta Live Tables nebo tabulky streamování.
- U tabulek, které obsahují filtry řádků a masky sloupců, můžete definovat materializovaná zobrazení nebo streamované tabulky.
Viz Publikování tabulek s filtry řádků a maskami sloupců.
doporučení k výkonu
Filtry řádků a masky sloupců řídí viditelnost dat tím, že uživatelé nemohou zobrazit obsah hodnot základních tabulek před filtrováním a maskováním operací. Dobře fungují v reakci na dotazy v běžných případech použití. V méně běžných aplikacích, kde si dotazovací modul musí vybrat mezi optimalizací výkonu dotazů a ochranou před únikem informací z filtrovaných/maskovaných hodnot, vždy provede bezpečné rozhodnutí na úkor určitého dopadu na výkon dotazů. Pokud chcete tento dopad na výkon minimalizovat, použijte následující doporučení:
- Používejte jednoduché funkce zásad: Funkce zásad s menším počtem výrazů často fungují lépe než složitější výrazy. Nepoužívejte mapování tabulek a poddotazů výrazů ve prospěch jednoduchých funkcí CASE.
- Snížit počet argumentů funkce: Azure Databricks nemůže optimalizovat odkazy na sloupce zdrojové tabulky vycházející z argumentů funkční politiky, i když se tyto sloupce v dotazu nepoužívají. Používejte funkce zásad s menším počtem argumentů, protože dotazy z těchto tabulek budou fungovat lépe.
-
Vyhněte se přidávánífiltrůchm řádkům příliš mnoho řádků: Vzhledem k tomu, že každá tabulka podporuje pouze přidávání maximálně jednoho filtru řádků, je společný přístup ke kombinování více požadovaných funkcí zásad s
AND
. Pravděpodobnost každé konjunkce však zvyšuje šanci, že konjunkty zahrnují komponenty uvedené jinde v této tabulce, které by mohly ovlivnit výkon (například mapovací tabulky). Ke zlepšení výkonu používejte méně spojivek. -
Použijte deterministické výrazy, které nemůžou vyvolat chyby v zásadách tabulek a dotazech z těchto tabulek: Některé výrazy můžou vyvolat chyby, pokud zadané vstupy nejsou platné, například dělení ANSI. V takových případech nesmí kompilátor SQL odesílat operace s těmito výrazy (například filtry) příliš daleko dolů v plánu dotazu, aby se zabránilo chybám, jako je "dělení nulou", které odhalí informace o hodnotách před filtrováním a/nebo maskováním operací. Používejte deterministické výrazy, které nikdy nevyvolají chyby, například
try_divide
v tomto příkladu. - Spuštěním testovacích dotazů v tabulce můžete měřit výkon: Vytvořte realistické dotazy, které představují zatížení, které u tabulky očekáváte, s filtry řádků nebo maskami sloupců a změřte výkon. Proveďte malé změny funkcí zásad a sledujte jejich účinky, dokud nedosáhnete dobré rovnováhy mezi výkonem a výrazností logiky filtrování a maskování.
Omezení
- Verze Databricks Runtime nižší než 12.2 LTS nepodporují filtry řádků ani masky sloupců. Tyto moduly runtime bezpečně selžou, což znamená, že pokud se pokusíte získat přístup k tabulkám z nepodporovaných verzí těchto modulů runtime, nebudou vrácena žádná data.
- Rozdílové sdílení nefunguje se zabezpečením na úrovni řádků ani s maskami sloupců.
- V zobrazení nelze použít masky zabezpečení na úrovni řádků nebo sloupců.
- Časová cesta nefunguje se zabezpečením na úrovni řádků ani maskami sloupců.
- Přístup k souborům v tabulkách se zásadami není podporovaný.
- Zásady filtrování řádků nebo masky sloupců s kruhovými závislostmi zpět k původním zásadám se nepodporují.
- Hluboké a mělké klony nejsou podporovány.
-
MERGE
příkazy nepodporují tabulky se zásadami filtrování řádků nebo maskování sloupců, které obsahují vnoření, agregace, okna, limity nebo nedeterministické funkce. - Rozhraní Delta Lake API se nepodporují.
Omezení výpočetních prostředků pro jednoho uživatele
Nemůžete získat přístup k tabulce s filtry řádků nebo maskami sloupců z výpočetního prostředku pro jednoho uživatele v Databricks Runtime verze 15.3 nebo nižší. Režim přístupu jednoho uživatele můžete použít v Databricks Runtime 15.4 LTS nebo novějším, pokud je váš pracovní prostor povolený pro bezserverové výpočetní prostředky. Další informace najdete v tématu Jemně odstupňované řízení přístupu u výpočetních prostředků jednoho uživatele.