Megosztás a következőn keresztül:


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:

  • Standard nézetek

    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.

  • Streamelési táblák

  • Materialized views

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_rlsamelyeken table_1view_2sorszűrők vannak alkalmazva. A felhasználó nem rendelkezik SELECT bekapcsolva table_2, amelyre a rendszer hivatkozik view_2.

Ábra az adatszűrés működéséről

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.

A RemoteSparkConnectScan csomópontot megjelenítő SparkUI

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, DELETEa , UPDATEREFRESH TABLE, és MERGE, 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.