Részletes hozzáférés-vezérlés dedikált számításon (korábban egyfelhasználós számításon)
Ez a cikk bemutatja az adatszűrő funkciót, amely lehetővé teszi a részletes hozzáférés-vezérlést a dedikált számításon futó lekérdezéseken (teljes célú vagy feladatokhoz használt számítógépeken, amelyek Dedicated hozzáférési móddal vannak konfigurálva). 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 egyes dedikált számítási lekérdezések esetében?
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:
- dinamikus nézetek
- Sorszűrők és oszlopmaszkok
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
- Standard számítás (korábban megosztott számítás)
Ha azonban dedikált 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:
A dedikált 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 DLT-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 a dedikált számítási erőforrás és a munkaterület 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ézetekben és táblákban is lehetővé teszi a lekérdezéseket, amelyek nem támogatottak a Databricks Runtime 15.3-at futtató dedikált számítási eszközökön:
A Databricks Runtime 15.3-nál vagy alacsonyabb verziót futtató dedikált számítások esetén a felhasználónak, aki a nézeten lekérdezést futtat, SELECT
jogosultsággal kell rendelkeznie a nézet által hivatkozott táblákon és nézeteken. Ez azt jelenti, hogy a nézetek nem használhatók részletes hozzáférés-vezérlés biztosítására. 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.
- adatfolyam táblák
- Leképzett nézetek
Hogyan működik az adatszűrés dedikált számításon?
Amikor egy lekérdezés hozzáfér a következő adatbázis-objektumokhoz, a dedikált számítási erőforrás á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
SELECT
jogosultsággal - Dinamikus nézetek
- Definiált sorszűrőkkel vagy oszlopmaszkokkal rendelkező táblák
- Materializált nézetek és adatfolyam-táblák
Az alábbi ábrán a felhasználónak SELECT
, table_1
, view_2
és table_w_rls
vannak, amelyekre sorszűrők vannak alkalmazva. A felhasználónak nincs SELECT
a table_2
rendszeren, amire a view_2
hivatkozik.
A table_1
lekérdezését teljes egészében a dedikált számítási erőforrás kezeli, mivel nincs szükség szűrésre. A view_2
és table_w_rls
lekérdezések adatszűrést igényelnek ahhoz, hogy a felhasználó számára hozzáférhető adatokat visszaadják. 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ámoltak fel önnek. 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
A dedikált 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 "Kivágott fájlok" és a "Kivágott fájlok mérete" elemeket.
- 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 olvasni (SELECT
) lehet.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 önillesztést egy dedikált 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 ugyanahhoz a távoli táblához.
- Nem érhető el támogatás a Docker-rendszerképekhez.
- Ha a munkakörnyezetet 2024 novembere előtt tűzfallal állították be, meg kell nyitnia a 8443-as és a 8444-es portokat, hogy lehetővé tegye a finomszemcsés hozzáférés-vezérlést a dedikált számításnál. Lásd: Hálózati biztonsági csoport szabályai.