Részletes hozzáférés-vezérlés egyfelhasználós számításon
Ez a cikk bemutatja az adatszűrési funkciót, amely lehetővé teszi a részletes hozzáférés-vezérlést az egyfelhasználós számításon futó lekérdezéseken (teljes célú vagy az egyfelhasználós hozzáférési móddal konfigurált feladatok számítása). Lásd: Hozzáférési módok.
Ez az adatszűrés kiszolgáló nélküli számítással történik a színfalak mögött.
Miért van szükség adatszűrésre az egyfelhasználós számítás egyes lekérdezéseihez?
A Unity Catalog lehetővé teszi a táblázatos adatokhoz való hozzáférést az oszlop- és sorszinten (más néven részletes hozzáférés-vezérlés) az alábbi funkciókkal:
Amikor a felhasználók olyan nézeteket kérdeznek le, amelyek kizárják az adatokat a hivatkozott táblákból vagy a szűrőket és maszkokat alkalmazó lekérdezéstáblákból, korlátozás nélkül használhatják az alábbi számítási erőforrások bármelyikét:
- SQL-raktárak
- Megosztott számítás
Ha azonban egyfelhasználós számítást használ az ilyen lekérdezések futtatásához, akkor a számításnak és a munkaterületnek meg kell felelnie bizonyos követelményeknek:
Az egyfelhasználós számítási erőforrásnak a Databricks Runtime 15.4 LTS vagy újabb verzióján kell lennie.
A munkaterületet engedélyezni kell a feladatok, jegyzetfüzetek és Delta Live Tables kiszolgáló nélküli számításához.
Annak ellenőrzéséhez, hogy a munkaterület régiója támogatja-e a kiszolgáló nélküli számítást, tekintse meg a korlátozott regionális rendelkezésre állású szolgáltatások című témakört.
Ha az egyetlen felhasználó számítási erőforrása és munkaterülete megfelel ezeknek a követelményeknek, akkor az adatszűrés automatikusan lefut, amikor részletes hozzáférés-vezérlést használó nézetet vagy táblát kérdez le.
Materializált nézetek, streamelési táblák és standard nézetek támogatása
A dinamikus nézetek, a sorszűrők és az oszlopmaszkok mellett az adatszűrés az alábbi nézetekre és táblákra vonatkozó lekérdezéseket is lehetővé teszi, amelyek nem támogatottak a Databricks Runtime 15.3-at és az alatta futó egyfelhasználós számításokat:
-
A Databricks Runtime 15.3-at és újabb verziót futtató egyfelhasználós számításokban a nézeten a lekérdezést futtató felhasználónak rendelkeznie
SELECT
kell a nézet által hivatkozott táblákon és nézeteken, ami azt jelenti, hogy nem használhat nézeteket a részletes hozzáférés-vezérlés biztosításához. Az adatszűréssel rendelkező Databricks Runtime 15.4-ben a nézetet lekérdező felhasználónak nem kell hozzáférnie a hivatkozott táblákhoz és nézetekhez.
Hogyan működik az adatszűrés az egyfelhasználós számításon?
Amikor egy lekérdezés hozzáfér a következő adatbázis-objektumokhoz, az egyetlen felhasználó számítási erőforrása átadja a lekérdezést a kiszolgáló nélküli számításnak az adatszűrés végrehajtásához:
- Olyan táblákra épülő nézetek, amelyeken a felhasználó nem rendelkezik jogosultsággal
SELECT
- Dinamikus nézetek
- Definiált sorszűrőkkel vagy oszlopmaszkokkal rendelkező táblák
- Materialized views and streaming tables
Az alábbi ábrán egy felhasználó SELECT
sorszűrőket alkalmaz, és table_w_rls
amelyeken table_1
view_2
sorszűrők vannak alkalmazva. A felhasználó nem rendelkezik SELECT
bekapcsolva table_2
, amelyre a rendszer hivatkozik view_2
.
A lekérdezést table_1
teljes egészében az egyfelhasználós számítási erőforrás kezeli, mert nincs szükség szűrésre. A lekérdezések be vannak kapcsolva view_2
, és table_w_rls
adatszűrést igényelnek, hogy visszaadják azokat az adatokat, amelyekhez a felhasználó hozzáfér. Ezeket a lekérdezéseket a kiszolgáló nélküli számítás adatszűrési képessége kezeli.
Milyen költségek merülnek fel?
Az ügyfeleknek az adatszűrési műveletek végrehajtásához használt kiszolgáló nélküli számítási erőforrásokért kell fizetni. A díjszabással kapcsolatos információkért tekintse meg a platformszinteket és a bővítményeket.
A rendszer számlázási használati tábláját lekérdezve megtekintheti, hogy mennyit számlázott ki. A következő lekérdezés például felhasználónként lebontja a számítási költségeket:
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;
Lekérdezési teljesítmény megtekintése adatszűrés esetén
Az egyfelhasználós számítási Spark felhasználói felülete olyan metrikákat jelenít meg, amelyekkel megértheti a lekérdezések teljesítményét. A számítási erőforráson futtatott összes lekérdezésnél az SQL/Dataframe lapon megjelenik a lekérdezési gráf ábrázolása. Ha egy lekérdezés adatszűrésben vett részt, a felhasználói felület egy RemoteSparkConnectScan operátorcsomópontot jelenít meg a gráf alján. Ez a csomópont megjeleníti a lekérdezési teljesítmény vizsgálatához használható metrikákat. Lásd: Számítási adatok megtekintése az Apache Spark felhasználói felületén.
Bontsa ki a RemoteSparkConnectScan operátorcsomópontot az olyan metrikák megtekintéséhez, amelyek az alábbi kérdésekre válaszolnak:
- Mennyi időt vett igénybe az adatszűrés? Tekintse meg a "teljes távoli végrehajtási időt".
- Hány sor maradt az adatszűrés után? A "sorok kimenetének" megtekintése.
- Mennyi adat lett visszaadva (bájtban) az adatszűrés után? A "sorok kimeneti méretének" megtekintése.
- Hány adatfájl lett partícióval elválasztva, és nem kellett beolvasni a tárból? Tekintse meg a "Fájlok metszve" és a "Fájlméret metszve" szöveget.
- Hány adatfájlt nem sikerült metszeni, és ki kellett olvasni a tárból? Tekintse meg a "Fájlok olvasása" és az "Olvasási fájlok mérete" című cikket.
- Az olvasandó fájlok közül hány volt már a gyorsítótárban? Tekintse meg a "Gyorsítótár-találatok mérete" és a "Gyorsítótár mérete hiányzik".
Korlátozások
A táblázatírási és -frissítési műveletek nem támogatottak olyan táblákon, amelyeken sorszűrők vagy oszlopmaszkok vannak alkalmazva.
A DML-műveletek, például
INSERT,
DELETE
a ,UPDATE
REFRESH TABLE
, ésMERGE
, nem támogatottak. Ezekből a táblákból csak (SELECT
) olvashat.Az öncsatlakozások alapértelmezés szerint le lesznek tiltva az adatszűrés meghívásakor, de engedélyezheti őket úgy, hogy hamis értékre állítja
spark.databricks.remoteFiltering.blockSelfJoins
őket azon a számításon, amelyen ezeket a parancsokat futtatja.Mielőtt engedélyezné az önálló illesztéseket egyetlen felhasználói számítási erőforráson, vegye figyelembe, hogy az adatszűrési képesség által kezelt öncsatlakozási lekérdezések különböző pillanatképeket adhatnak vissza ugyanabból a távoli táblából.