Share via


A Unity Cataloggal kapcsolatos ajánlott eljárások

Ez a dokumentum javaslatokat tartalmaz a Unity Catalog és a Delta Sharing használatára az adatszabályozási igények kielégítése érdekében.

A Unity Catalog egy részletes szabályozási megoldás a Databricks platformon lévő adatokhoz és AI-hez. Ez megkönnyíti az adatok biztonságát és szabályozását azáltal, hogy központi helyet biztosít az adathozzáférés felügyeletéhez és naplózásához. A Delta Sharing egy biztonságos adatmegosztási platform, amellyel adatokat oszthat meg az Azure Databricksben a szervezeten kívüli felhasználókkal. A Unity Catalog használatával kezeli és naplózhatja a megosztási viselkedést.

Az adatszabályozás és az adatelkülönítés építőelemei

A szervezet számára használható adatszabályozási modell és adatelkülönítési terv fejlesztéséhez segít megérteni azokat az elsődleges építőelemeket, amelyek az Azure Databricksben történő adatszabályozási megoldás létrehozásakor érhetők el.

Az alábbi ábra a Unity Catalog elsődleges adathierarchiáját szemlélteti (néhány biztonságos objektum szürkén jelenik meg, hogy kiemelje a katalógusok alatt felügyelt objektumok hierarchiáját).

Unity Catalog objektummodell-diagram

A hierarchia objektumai a következők:

  • Metaadattár: A metaadattár a Unity Catalog objektumainak legfelső szintű tárolója. A metaadattárak a fiók szintjén élnek, és az Azure Databricks adatszabályozási modell piramisának tetején működnek.

    A metaadattárak kezelik az adategységeket (táblákat, nézeteket és köteteket), valamint az azokhoz való hozzáférést szabályozó engedélyeket. Az Azure Databricks-fiók rendszergazdái létrehozhatnak egy metaadattárat minden régióhoz, amelyben működnek, és hozzárendelhetik őket több Azure Databricks-munkaterülethez ugyanabban a régióban. A metaadattár rendszergazdái kezelhetik a metaadattár összes objektumát. Nem rendelkeznek közvetlen hozzáféréssel a metaadattárban regisztrált táblák olvasásához és írásához, de közvetett hozzáféréssel rendelkeznek az adatobjektumok tulajdonjogának átvitele révén.

    Az adott metaadattárak fizikai tárolása alapértelmezés szerint el van különítve a fiók bármely más metaadattára tárolójától.

    A metaadattárak regionális elkülönítést biztosítanak, de nem adatelkülönítési egységekként szolgálnak. Az adatelkülönítésnek a katalógus szintjén kell kezdődnie.

  • Katalógus: A katalógusok a Unity Catalog metaadattár által felügyelt adathierarchiában (katalógussématábla >> /nézet/kötet) a legmagasabb szintűek. Ezek egy tipikus Azure Databricks-adatszabályozási modell adatelkülönítésének elsődleges egységei.

    A katalógusok a sémák logikai csoportosítását jelölik, amelyeket általában adathozzáférési követelmények kötnek össze. A katalógusok gyakran tükrözik a szervezeti egységeket vagy a szoftverfejlesztési életciklus hatóköreit. Választhatja például az éles adatok katalógusát és a fejlesztési adatok katalógusát, vagy a nem ügyféladatok katalógusát, valamint a bizalmas ügyféladatok katalógusát.

    A katalógusok a metaadattár szintjén tárolhatók, vagy konfigurálhatók úgy, hogy a katalógusok a szülő metaadattár többi részétől külön legyenek tárolva. Ha a munkaterület automatikusan engedélyezve lett a Unity Cataloghoz, nincs metaadattárszintű tároló, és a katalógus létrehozásakor meg kell adnia egy tárolási helyet.

    Ha a katalógus az Azure Databricks adatszabályozási modell elsődleges adatelkülönítési egysége, akkor a munkaterület az adategységek használatának elsődleges környezete. A metaadattár-rendszergazdák és a katalógustulajdonosok munkaterülettől függetlenül kezelhetik a katalógusokhoz való hozzáférést, vagy bizonyos munkaterületekhez köthetik a katalógusokat, hogy bizonyos típusú adatok feldolgozása csak ezeken a munkaterületeken történjen. Előfordulhat, hogy külön éles és fejlesztési munkaterületet szeretne, például egy külön munkaterületet a személyes adatok feldolgozásához.

    Alapértelmezés szerint a biztonságos objektumok hozzáférési engedélyeit az objektum gyermekei öröklik, a hierarchia tetején pedig katalógusok találhatók. Ez megkönnyíti az adatok alapértelmezett hozzáférési szabályainak beállítását, valamint a hierarchia minden szintjén különböző szabályok megadását csak ott, ahol szüksége van rájuk.

  • Séma (adatbázis): A sémák, más néven adatbázisok táblázatos adatok (táblák és nézetek), nem táblázatos adatok (kötetek), függvények és gépi tanulási modellek logikai csoportosításai. Lehetővé teszik a katalógusoknál részletesebb adatokhoz való hozzáférés rendszerezését és szabályozását. Általában egyetlen használati esetet, projektet vagy csapat tesztkörnyezetet jelölnek.

    A sémák ugyanabban a fizikai tárolóban tárolhatók, mint a szülőkatalógus, vagy konfigurálhat egy sémát úgy, hogy a szülőkatalógus többi részétől külön legyen tárolva.

    A metaadattár-rendszergazdák, a szülőkatalógus-tulajdonosok és a sématulajdonosok kezelhetik a sémákhoz való hozzáférést.

  • Táblák: A táblák a Unity Catalog háromszintű névterének harmadik rétegében találhatók. Adatsorokat tartalmaznak.

    A Unity Catalog segítségével felügyelt táblákat és külső táblákat hozhat létre.

    Felügyelt táblák esetén a Unity Catalog teljes mértékben kezeli az életciklust és a fájlelrendezést. A felügyelt táblák alapértelmezés szerint a metaadattár létrehozásakor konfigurált gyökértárhelyen vannak tárolva. Ehelyett választhatja, hogy a katalógus- vagy sémaszinteken elkülöníti a felügyelt táblák tárolóját.

    A külső táblák olyan táblák, amelyek adatéletciklusát és fájlelrendezését a felhőszolgáltató és más adatplatformok kezelik, nem pedig a Unity Catalog használatával. Általában külső táblákat használ a meglévő adatok nagy mennyiségének regisztrálásához, vagy ha írási hozzáférést is igényel az adatokhoz az Azure Databricks-fürtökön és a Databricks SQL-tárolókon kívüli eszközökkel. Miután regisztrált egy külső táblát egy Unity Catalog-metaadattárban, ugyanúgy kezelheti és naplózhatja az Azure Databricks hozzáférését, mint a felügyelt táblák esetében.

    A szülőkatalógus-tulajdonosok és a sématulajdonosok kezelhetik a táblákhoz való hozzáférést, ahogyan a metaadattár-rendszergazdák is (közvetve).

  • Nézetek: A nézet egy metaadattár egy vagy több táblájából és nézetéből származtatott írásvédett objektum.

  • Sorok és oszlopok: A sor- és oszlopszintű hozzáférés, valamint az adatmaszkolás dinamikus nézetek, sorszűrők és oszlopmaszkok használatával érhető el. A dinamikus nézetek írásvédettek.

  • Kötetek: A kötetek a Unity Catalog háromszintű névterének harmadik rétegében találhatók. Nem táblázatos adatokat kezelnek. Kötetekkel bármilyen formátumban tárolhatja, rendszerezheti és elérheti a fájlokat, beleértve a strukturált, félig strukturált és strukturálatlan adatokat is. A kötetekben lévő fájlok nem regisztrálhatók táblákként.

  • Modellek és függvények: Bár szigorúan véve nem, az adategységek, a regisztrált modellek és a felhasználó által definiált függvények is kezelhetők a Unity Katalógusban, és az objektumhierarchiában a legalacsonyabb szinten találhatók. Lásd: Modell életciklusának kezelése a Unity Katalógusban és felhasználó által definiált függvények (UDF-ek) a Unity Katalógusban.

Az adatelkülönítési modell megtervezése

Amikor egy szervezet olyan adatplatformot használ, mint az Azure Databricks, gyakran szükség van adatelkülönítési határokra a környezetek (például a fejlesztés és az éles környezet) vagy a szervezeti üzemeltetési egységek között.

Az elkülönítési szabványok a szervezetre vonatkozóan eltérőek lehetnek, de általában a következő elvárásokat tartalmazzák:

  • A felhasználók csak meghatározott hozzáférési szabályok alapján férhetnek hozzá az adatokhoz.
  • Az adatokat csak kijelölt személyek vagy csapatok kezelhetik.
  • Az adatok fizikailag elkülönülnek a tárolóban.
  • Az adatok csak a kijelölt környezetekben érhetők el.

Az adatelkülönítés szükségessége olyan silózott környezetekhez vezethet, amelyek szükségtelenül megnehezíthetik az adatszabályozást és az együttműködést. Az Azure Databricks ezt a problémát a Unity Catalog használatával oldja meg, amely számos adatelkülönítési lehetőséget biztosít az egységes adatszabályozási platform fenntartása mellett. Ez a szakasz az Azure Databricksben elérhető adatelkülönítési lehetőségeket és azok használatát ismerteti, akár központosított adatszabályozási modellt, akár elosztottt szeretne.

A felhasználók csak meghatározott hozzáférési szabályok alapján férhetnek hozzá az adatokhoz

A legtöbb szervezet szigorú követelményekkel rendelkezik az adatokhoz való hozzáféréssel kapcsolatban belső vagy jogszabályi követelmények alapján. A biztonságosan tartandó adatok tipikus példái közé tartoznak az alkalmazottak fizetési adatai vagy a hitelkártya-fizetési információk. Az ilyen típusú információkhoz való hozzáférést általában szigorúan ellenőrzik és rendszeresen naplózják. A Unity Catalog részletes vezérlést biztosít a katalógusban lévő adategységek felett, hogy megfeleljenek ezeknek az iparági szabványoknak. A Unity Catalog által biztosított vezérlőkkel a felhasználók csak azokat az adatokat láthatják és kérdezhetik le, amelyek megtekintésére és lekérdezésére jogosultak.

Az adatokat csak kijelölt személyek vagy csapatok kezelhetik

A Unity Catalog lehetővé teszi a központosított és az elosztott szabályozási modellek közötti választást.

A központosított szabályozási modellben a cégirányítási rendszergazdák a metaadattár tulajdonosai, és bármilyen objektum tulajdonjogát átvehetik, és engedélyeket adhatnak és vonhatnak vissza.

Elosztott szabályozási modellben a katalógus vagy katalóguskészlet az adattartomány. A katalógus tulajdonosa létrehozhat és birtokolhat minden eszközt, és kezelheti a tartományon belüli irányítást. Az adott tartományok tulajdonosai más tartományok tulajdonosaitól függetlenül is működhetnek.

Függetlenül attól, hogy a metaadattárat vagy a katalógusokat választja-e adattartományként, a Databricks határozottan javasolja, hogy állítson be egy csoportot metaadattár-rendszergazdaként vagy katalógustulajdonosként.

A Unity Catalog tulajdonjoga és hozzáférése

Az adatok fizikailag elkülönülnek a tárolóban

A szervezetek megkövetelhetik bizonyos típusú adatok tárolását a felhőbérlében lévő adott fiókokban vagy gyűjtőkben.

A Unity Catalog lehetővé teszi, hogy a metaadattár, a katalógus vagy a séma szintjén konfigurálja a tárolási helyeket az ilyen követelményeknek megfelelően.

Tegyük fel például, hogy a szervezet rendelkezik egy vállalati megfelelőségi szabályzattal, amely megköveteli az emberi erőforrásokhoz kapcsolódó éles adatok tárolását a tároló abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. A Unity Katalógusban ezt a követelményt úgy érheti el, hogy beállít egy helyet katalógusszinten, létrehoz egy úgynevezett katalógust, például hr_prod, és hozzárendeli a hely abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-katalógust hozzá. Ez azt jelenti, hogy a hr_prod katalógusban létrehozott felügyelt táblák vagy kötetek (például a használatával CREATE TABLE hr_prod.default.table …) abfss:///unity-katalógusbanmycompany-hr-prod@storage-account.dfs.core.windows.net tárolják az adataikat. Igény szerint sémaszintű helyeket is megadhat az adatok hr_prod catalog részletesebb szintű rendszerezéséhez.

Ha nincs szükség ilyen tárolóelkülönítésre, beállíthatja a tárolóhelyet a metaadattár szintjén. Ennek az az eredménye, hogy ez a hely szolgál alapértelmezett helyként felügyelt táblák és kötetek tárolására a metaadattár katalógusaiban és sémáiban.

A rendszer kiértékeli a tárolási helyek hierarchiáját a sémától a katalóguson át a metaadattárig.

Ha például létrehoz egy táblát myCatalog.mySchema.myTablemy-region-metastore, a tábla tárolási helyét a következő szabály határozza meg:

  1. Ha egy hely meg van adva mySchema, az ott lesz tárolva.
  2. Ha nem, és meg van adva myCatalogegy hely, akkor az ott lesz tárolva.
  3. Végül, ha nincs megadva myCataloghely, a rendszer a my-region-metastore.

Unity Catalog storage hierarchia

Az adatok csak a kijelölt környezetekben érhetők el

A szervezeti és megfelelőségi követelmények gyakran meghatározzák, hogy bizonyos adatokat, például személyes adatokat csak bizonyos környezetekben tároljon. Azt is megteheti, hogy el szeretné különíteni az éles adatokat a fejlesztési környezetektől, vagy gondoskodnia kell arról, hogy bizonyos adathalmazok és tartományok soha ne legyenek összekapcsolva.

A Databricksben a munkaterület az elsődleges adatfeldolgozási környezet, a katalógusok pedig az elsődleges adattartományok. A Unity Catalog lehetővé teszi, hogy a metaadattár-rendszergazdák és a katalógustulajdonosok katalógusokat rendeljenek hozzá vagy "kötést" adjanak hozzá adott munkaterületekhez. Ezek a környezettudatos kötések lehetővé teszik annak biztosítását, hogy csak bizonyos katalógusok legyenek elérhetők egy munkaterületen belül, függetlenül attól, hogy a felhasználónak adott adatobjektumokra milyen jogosultságok vonatkoznak.

Most tekintsük át részletesebben a Unity Catalog beállításának folyamatát az igényeinek megfelelően.

Unity Catalog-metaadattár konfigurálása

A metaadattár a Unity Catalog objektumainak legfelső szintű tárolója. A metaadattárak kezelik az adategységeket (táblákat, nézeteket és köteteket), valamint a Unity Catalog által kezelt egyéb biztonságos objektumokat. A biztonságos objektumok teljes listáját a Unity Katalógus Biztonságos objektumok című témakörében találja.

Ez a szakasz tippeket nyújt a metaadattárak létrehozásához és konfigurálásához. Ha a munkaterület automatikusan engedélyezve lett a Unity Catalogban, nem kell metaadattárat létrehoznia, de az ebben a szakaszban bemutatott információk továbbra is hasznosak lehetnek. Lásd a Unity katalógus automatikus engedélyezése témakört.

Tippek metaadattárak konfigurálásához:

  • Minden olyan régióhoz, amelyben Azure Databricks-munkaterületek vannak, egy metaadattárat kell beállítania.

    Minden, egyetlen regionális metaadattárhoz csatolt munkaterület hozzáfér a metaadattár által kezelt adatokhoz. Ha adatokat szeretne megosztani a metaadattárak között, használja a Delta Sharingt.

  • Minden metaadattár konfigurálható felügyelt tárhellyel (más néven gyökértárolóval) a felhőalapú bérlőben, amely felügyelt táblák és felügyelt kötetek tárolására használható.

    Ha úgy dönt, hogy metaadattárszintű felügyelt helyet hoz létre, győződjön meg arról, hogy egyetlen felhasználó sem rendelkezik közvetlen hozzáféréssel (azaz az azt tartalmazó felhőfiókon keresztül). Ha hozzáférést ad ehhez a tárolóhelyhez, a felhasználó megkerülheti a Unity Catalog metaadattárában lévő hozzáférés-vezérlőket, és megzavarhatja az auditálást. Ezért a metaadattár által felügyelt tárolónak dedikált tárolónak kell lennie. Ne használjon újra olyan tárolót, amely egyben a DBFS gyökér fájlrendszere is, vagy amely korábban dbFS-gyökér fájlrendszer volt.

    A felügyelt tárolókat a katalógus és a séma szintjén is definiálhatja, felülírva a metaadattár gyökértárolójának helyét. A legtöbb esetben a Databricks a felügyelt adatok katalógusszinten történő tárolását javasolja.

  • Ismernie kell a Unity Cataloghoz engedélyezett munkaterület-rendszergazdák jogosultságait, és tekintse át a meglévő munkaterület-rendszergazdai hozzárendeléseket.

    A munkaterület rendszergazdái kezelhetik a munkaterület műveleteit, beleértve a felhasználók és szolgáltatásnevek hozzáadását, fürtök létrehozását és más felhasználók munkaterület-rendszergazdákként való delegálását. Ha a munkaterület automatikusan engedélyezve lett a Unity Cataloghoz, a munkaterület rendszergazdái alapértelmezés szerint létrehozhatnak katalógusokat és sok más Unity Catalog-objektumot. A munkaterület rendszergazdai jogosultságainak megtekintése , ha a munkaterületek automatikusan engedélyezve vannak a Unity-katalógusban

    A munkaterület-rendszergazdák olyan munkaterület-kezelési feladatokat is végrehajthatnak, mint a feladat tulajdonjogának kezelése és a jegyzetfüzetek megtekintése, amelyek közvetett hozzáférést biztosíthatnak a Unity Katalógusban regisztrált adatokhoz. A munkaterület-rendszergazda olyan kiemelt szerepkör, amelyet körültekintően kell elosztani.

  • Ha munkaterületekkel elkülöníti a felhasználói adatokhoz való hozzáférést, érdemes lehet munkaterület-katalógus kötéseket használnia. A munkaterület-katalógus kötései lehetővé teszik a katalógus hozzáférésének munkaterülethatárok szerinti korlátozását. Biztosíthatja például, hogy a munkaterület rendszergazdái és a felhasználók csak éles munkaterületi környezetből prod_catalog férhessenek hozzá az éles adatokhoz. prod_workspace Az alapértelmezett beállítás a katalógus megosztása az aktuális metaadattárhoz csatolt összes munkaterülettel. Lásd : (Nem kötelező) Katalógus hozzárendelése adott munkaterületekhez.

    Ha a munkaterület automatikusan engedélyezve lett a Unity Cataloghoz, az előre kiépített munkaterület-katalógus alapértelmezés szerint a munkaterülethez van kötve.

Lásd: Unity Catalog-metaadattár létrehozása.

Külső helyek és tárolási hitelesítő adatok konfigurálása

A külső helyek lehetővé teszik a Unity Katalógus számára, hogy adatokat olvasson és írjon a felhőbeli bérlőn a felhasználók nevében. A külső helyek a felhőalapú tároló elérési útjaként vannak definiálva, és egy olyan tároló hitelesítő adatokkal kombinálva, amelyek az adott hely eléréséhez használhatók.

Külső helyekkel regisztrálhat külső táblákat és külső köteteket a Unity Katalógusban. Ezeknek az entitásoknak a tartalma fizikailag egy külső helyen található alútvonalon található, amely a kötet vagy a tábla létrehozásakor hivatkozik rá.

A tárolási hitelesítő adatok egy hosszú távú felhőalapú hitelesítő adatot foglalnak magában, amely hozzáférést biztosít a felhőbeli tárolókhoz. Lehet azure-beli felügyelt identitás (erősen ajánlott) vagy szolgáltatásnév. Az Azure-beli felügyelt identitások használata a következő előnyökkel jár a szolgáltatásnév használatával szemben:

  • A felügyelt identitások nem igénylik a hitelesítő adatok karbantartását vagy a titkos kulcsok elforgatását.
  • Ha az Azure Databricks-munkaterületet a saját virtuális hálózatán (más néven VNet-injektáláson) helyezi üzembe, csatlakozhat egy Azure Data Lake Storage Gen2-fiókhoz, amelyet egy tár tűzfal véd.

Tipp.

A külső helyek a tárolási hitelesítő adatok és a tárolási útvonalak kombinálásával biztosítják a tárterület-hozzáférés erős vezérlését és naplózását. Ha meg szeretné akadályozni, hogy a felhasználók megkerüljék a Unity Catalog által biztosított hozzáférés-vezérlést, meg kell akadályoznia, hogy a külső helyként használt tárolókhoz közvetlen hozzáféréssel rendelkező felhasználók száma korlátozva legyen. Ugyanezen okból ne csatlakoztassa a tárfiókokat a DBFS-hez, ha külső helyként is használják őket. A Databricks azt javasolja, hogy migrálja a felhőbeli tárolóhelyeken lévő csatlakoztatásokat a Unity Katalógus külső helyére a Catalog Explorer használatával.

A külső helyek kezelésével kapcsolatos ajánlott eljárások listáját a külső helyek, a külső táblák és a külső kötetek kezelése című témakörben találja. Lásd még : Külső hely létrehozása a felhőbeli tároló Azure Databrickshez való csatlakoztatásához.

Az adatok rendszerezése

A Databricks katalógusok használatát javasolja a szervezet információs architektúrájának elkülönítéséhez. Ez gyakran azt jelenti, hogy a katalógusok egy szoftverfejlesztési környezet hatókörének, csapatának vagy üzleti egységének felelnek meg. Ha a munkaterületeket adatelkülönítési eszközként használja – például különböző munkaterületeket használ éles és fejlesztési környezetekhez, vagy egy adott munkaterületet a rendkívül bizalmas adatok kezeléséhez, akkor a katalógusokat adott munkaterületekhez is kötheti. Ez biztosítja, hogy a megadott adatok feldolgozása a megfelelő munkaterületen legyen kezelve. Lásd : (Nem kötelező) Katalógus hozzárendelése adott munkaterületekhez.

Unity Catalog-katalógusok

A séma (más néven adatbázis) a Unity Catalog háromszintű névterének második rétege, amely táblákat, nézeteket és köteteket rendszerez. Sémák használatával rendszerezheti és definiálhatja az eszközökre vonatkozó engedélyeket.

A Unity Catalog által szabályozott objektumok kezelhetők vagy külsők:

  • A felügyelt objektumok az alapértelmezett módja az adatobjektumok létrehozásának a Unity Catalogban.

    A Unity Catalog kezeli ezeknek a biztonságos eszközöknek az életciklusát és fájlelrendezését. Nem szabad az Azure Databricksen kívüli eszközöket használni a felügyelt táblákban vagy kötetekben lévő fájlok közvetlen kezeléséhez.

    A felügyelt táblák és kötetek felügyelt tárolóban vannak tárolva, amelyek bármely tábla vagy kötet metaadattárában, katalógusában vagy sémaszintjén létezhetnek. Lásd: Az adatok fizikailag elkülönülnek a tárolóban.

    A felügyelt táblák és kötetek kényelmes megoldást jelentenek, ha egy szabályozott helyet szeretne kiépíteni a tartalom számára anélkül, hogy a külső helyek és a tár hitelesítő adatainak létrehozásával és kezelésével járna.

    A felügyelt táblák mindig a Delta táblaformátumot használják.

  • A külső objektumok olyan biztonságos objektumok, amelyek adatéletciklusát és fájlelrendezését nem a Unity Catalog kezeli.

    A külső kötetek és táblák regisztrálva vannak egy külső helyen, hogy adatmásolási tevékenység nélkül hozzáférést biztosítsanak a felhőbeli tárolóban már létező nagy számú fájlhoz. Külső objektumokat akkor használjon, ha más rendszerek által létrehozott fájlokkal rendelkezik, és azt szeretné, hogy azok az Azure Databricksből való hozzáférésre legyenek előkészítettek, vagy ha az Azure Databricksen kívüli eszközök közvetlen hozzáférést igényelnek ezekhez a fájlokhoz.

    A külső táblák támogatják a Delta Lake-t és számos más adatformátumot, például a Parquetet, a JSON-t és a CSV-t. A felügyelt és a külső kötetek egyaránt használhatók tetszőleges formátumú fájlok elérésére és tárolására: az adatok strukturálhatók, részben strukturálhatók vagy strukturálatlanok.

A táblák és kötetek létrehozásáról további információt a Táblák létrehozása a Unity Katalógusban, valamint a Kötetek létrehozása és használata című témakörben talál.

Külső helyek, külső táblák és külső kötetek kezelése

Az alábbi ábra egyetlen felhőbeli tároló fájlrendszerhierarchiáját mutatja be, négy külső hellyel, amelyek egy tároló hitelesítő adatait osztják meg.

Külső helyek

Miután konfigurálta a külső helyeket a Unity Katalógusban, külső táblákat és köteteket hozhat létre a külső helyek könyvtáraiban. Ezután a Unity Katalógus használatával kezelheti a táblákhoz és kötetekhez való felhasználói és csoporthozzáférést. Ez lehetővé teszi, hogy adott felhasználók vagy csoportok számára hozzáférést biztosítson a felhőtároló adott könyvtáraihoz és fájljaihoz.

Feljegyzés

Kötet definiálásakor a kötet elérési útján lévő adatokhoz való felhőalapú URI-hozzáférést a kötet engedélyei szabályozzák.

Javaslatok külső helyek használatára

Javaslatok a külső helyekre vonatkozó engedélyek megadásához:

  • Külső helyek csak olyan rendszergazdák számára hozhatók létre, akik a Unity Catalog és a felhőbeli tárolók közötti kapcsolatok beállításával, illetve megbízható adatmérnökökkel rendelkeznek.

    A külső helyek hozzáférést biztosítanak a Unity Katalógusból egy széles körben felölelő helyhez a felhőtárhelyen, például egy teljes gyűjtőhöz vagy tárolóhoz (abfss://my-container@storage-account.dfs.core.windows.net) vagy egy széles mellékúthoz (abfss://my-container@storage-account.dfs.core.windows.net/elérési út/alkönyvtár). A cél az, hogy egy felhőgazdának részt kell vennie néhány külső hely beállításában, majd delegálnia kell a helyek kezelésének felelősségét egy Azure Databricks-rendszergazdának a szervezetben. Az Azure Databricks rendszergazdája ezután részletesebb engedélyekkel rendelkező területekre rendezheti a külső helyet úgy, hogy külső köteteket vagy külső táblákat regisztrál a külső hely adott előtagjainál.

    Mivel a külső helyek annyira átfogóak, a Databricks azt javasolja, hogy csak olyan rendszergazdának adja meg az CREATE EXTERNAL LOCATION engedélyt, aki a Unity Catalog és a felhőbeli tárolás közötti kapcsolatok beállításával, vagy megbízható adatmérnökökkel van megbízva. Annak érdekében, hogy a többi felhasználó részletesebb hozzáférést biztosítson, a Databricks azt javasolja, hogy külső táblákat vagy köteteket regisztráljon a külső helyeken, és hozzáférést biztosítson a felhasználóknak az adatokhoz kötetek vagy táblák használatával. Mivel a táblák és kötetek egy katalógus és séma gyermekei, a katalógus- vagy sémagazdák rendelkeznek a hozzáférési engedélyek feletti végső vezérléssel.

  • Ne adjon általános READ FILES vagy WRITE FILES engedélyeket a külső helyeken a végfelhasználóknak.

    A kötetek rendelkezésre állásával a felhasználók nem használhatnak külső helyeket, csak táblákat, köteteket vagy felügyelt helyeket. Nem használhatnak külső helyeket az adatelemzéshez vagy más nem táblázatos adathasználati esetekhez való elérésiút-alapú hozzáféréshez.

    A kötetek támogatják a fájlok SQL-parancsokkal, dbutil-okkal, Spark API-kkal, REST API-kkal, Terraformokkal és a fájlok böngészéséhez, feltöltéséhez és letöltéséhez használható felhasználói felülettel való használatát. A kötetek emellett egy FU Standard kiadás csatlakoztatást is kínálnak, amely a helyi fájlrendszerben /Volumes/<catalog_name>/<schema_name>/<volume_name>/érhető el. A FU Standard kiadás csatlakoztatással az adattudósok és az ml-mérnökök úgy férhetnek hozzá a fájlokhoz, mintha egy helyi fájlrendszerben lennének, ahogyan azt számos gépi tanulási vagy operációsrendszer-kódtár megköveteli.

    Ha közvetlen hozzáférést kell adnia a külső helyen lévő fájlokhoz (például a felhőbeli tárolóban lévő fájlok felderítéséhez, mielőtt a felhasználó létrehoz egy külső táblát vagy kötetet), akkor engedélyezheti a hozzáférést READ FILES. Ritkán fordulnak elő engedélyezési WRITE FILES esetek.

A következők végrehajtásához külső helyeket kell használnia:

  • Külső táblák és kötetek regisztrálása a parancsok vagy CREATE TABLE parancsok CREATE EXTERNAL VOLUME használatával.
  • Mielőtt külső táblát vagy kötetet hoz létre egy adott előtagon, fedezze fel a felhőbeli tárolóban lévő meglévő fájlokat. A READ FILES jogosultság előfeltétele.
  • A metaadattár gyökérgyűjtője helyett regisztráljon egy helyet felügyelt tárolóként a katalógusokhoz és sémákhoz. A CREATE MANAGED STORAGE jogosultság előfeltétele.

További javaslatok a külső helyek használatára:

  • Kerülje az elérési utak átfedését: soha ne hozzon létre külső köteteket vagy táblákat a külső hely gyökerénél.

    Ha külső köteteket vagy táblákat hoz létre a külső hely gyökérkönyvtárában, nem hozhat létre további külső köteteket vagy táblákat a külső helyen. Ehelyett hozzon létre külső köteteket vagy táblákat egy alkönyvtárban a külső helyen belül.

Javaslatok külső kötetek használatához

A következő műveletekhez külső köteteket kell használnia:

  • Regisztrálja a külső rendszerek által előállított nyers adatok kezdő területeit az ETL-folyamatok és egyéb adatfeldolgozási tevékenységek korai szakaszában történő feldolgozás támogatására.
  • Előkészítési helyeket regisztrálhat például az Automatikus betöltő COPY INTOvagy a CTAS (CREATE TABLE AS) utasításokkal.
  • Fájltárolási helyeket biztosít az adatelemzők, adatelemzők és gépi tanulási mérnökök számára a feltáró adatelemzési és egyéb adatelemzési feladatok részeként való használatra, ha a felügyelt kötetek nem választhatók.
  • Hozzáférést biztosíthat az Azure Databricks-felhasználóknak a felhőben más rendszerek által létrehozott és a felhőben elhelyezett tetszőleges fájlokhoz, például a felügyeleti rendszerek vagy IoT-eszközök által rögzített, strukturálatlan adatok (például kép-, hang-, video- és PDF-fájlok), illetve a helyi függőségkezelő rendszerekből vagy CI/CD-folyamatokból exportált kódtárfájlokhoz (JAR-k és Python-kerékfájlok).
  • Ha a felügyelt kötetek nem érhetők el, operatív adatokat, például naplózási vagy ellenőrzőpont-fájlokat tárolhat.

További javaslatok külső kötetek használatához:

  • A Databricks azt javasolja, hogy hozzon létre külső köteteket egy külső helyről egy sémán belül.

Tipp.

Betöltési használati esetekben, amikor az adatok más helyre másolódnak – például az Automatikus betöltő vagy COPY INTOa külső kötetek használatával. Külső táblákat akkor használjon, ha az adatokat táblaként szeretné lekérdezni, és nincs benne másolat.

Javaslatok külső táblák használatához

A felügyelt táblák létrehozásakor külső táblákat kell használnia a felhőben tárolt adatokon alapuló normál lekérdezési minták támogatására.

További javaslatok külső táblák használatához:

  • A Databricks azt javasolja, hogy sémánként egy külső hely használatával hozzon létre külső táblákat.
  • A Databricks határozottan javasolja, hogy a konzisztenciaproblémák kockázata miatt ne regisztráljon egy táblát külső táblaként több metaadattárban. Az egyik metaadattár sémájának módosítása például nem lesz regisztrálva a második metaadattárban. Az adatok metaadattárak közötti megosztásához használja a Delta Sharingt. Lásd: Adatok biztonságos megosztása a Delta Sharing használatával.

A hozzáférés-vezérlés konfigurálása

A Unity Catalog minden biztonságos objektumának van tulajdonosa. Az objektumot létrehozó tag lesz a kezdeti tulajdonosa. Az objektum tulajdonosa rendelkezik minden jogosultsággal az objektumon, például Standard kiadás LECT és MODIFY egy táblán, valamint engedéllyel rendelkezik arra, hogy jogosultságokat adjon a biztonságos objektumon más tagoknak. Csak a biztonságos objektumok tulajdonosai rendelkeznek engedéllyel arra, hogy jogosultságokat adjanak az adott objektumhoz más tagoknak. Ezért ajánlott minden objektum tulajdonjogát konfigurálni az objektumon lévő támogatások felügyeletéért felelős csoportnak . A tulajdonos és a metaadattár rendszergazdái is átadhatják egy biztonságos objektum tulajdonjogát egy csoportnak. Továbbá, ha az objektum egy katalógusban (például egy táblában vagy nézetben) található, a katalógus és a séma tulajdonosa módosíthatja az objektum tulajdonjogát.

A Unity Catalog biztonságos objektumai hierarchikusak, a jogosultságok pedig lefelé öröklődnek. Ez azt jelenti, hogy egy katalógus vagy séma jogosultságának megadása automatikusan megadja a jogosultságot a katalógusban vagy sémában lévő összes jelenlegi és jövőbeli objektumnak. További információ: Öröklési modell.

Ahhoz, hogy adatokat olvashasson egy táblából vagy megtekinthessen egy felhasználót, a következő jogosultságokkal kell rendelkeznie:

  • SELECT a táblában vagy a nézetben
  • USE SCHEMA a táblát birtokló sémán
  • USE CATALOG a sémát tartalmazó katalógusban

USE CATALOG lehetővé teszi a kedvezményezett számára, hogy a katalógust a gyermekobjektumokhoz való hozzáférés érdekében irányozza át, és USE SCHEMA lehetővé teszi, hogy az engedélyező a sémát a gyermekobjektumok elérése érdekében irányozza át. Ha például adatokat szeretne kijelölni egy táblából, a felhasználóknak rendelkezniük kell a SELECT táblán lévő jogosultsággal és a USE CATALOG szülőkatalógus jogosultságával, valamint a USE SCHEMA szülőséma jogosultságával. Ezért ezzel a jogosultsággal korlátozhatja az adatnévtér szakaszaihoz való hozzáférést adott csoportokra. Gyakori forgatókönyv egy olyan séma beállítása csapatonként, amelyben csak az adott csapat rendelkezik USE SCHEMA és CREATE a sémán. Ez azt jelenti, hogy a csapattagok által létrehozott táblák csak a csapaton belül oszthatók meg.

A táblákhoz való hozzáférést az alábbi SQL-szintaxissal teheti biztonságossá:

GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;

Az oszlopokhoz való hozzáférést egy másodlagos séma dinamikus nézetével biztosíthatja, ahogyan az alábbi SQL-szintaxisban is látható:

CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
  id,
  CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
  country,
  product,
  total
FROM
  < catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;

A sorokhoz való hozzáférést egy másodlagos séma dinamikus nézetével biztosíthatja, ahogyan az alábbi SQL-szintaxisban látható:

CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
  *
FROM
  < catalog_name >.< schema_name >.< table_name >
WHERE
  CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;

A felhasználók biztonságos hozzáférést is biztosíthatnak a táblákhoz sorszűrők és oszlopmaszkok használatával. További információ: Bizalmas táblaadatok szűrése sorszűrők és oszlopmaszkok használatával.

A Unity Catalog összes jogosultságáról további információt a Unity Catalog jogosultságainak kezelése című témakörben talál.

Fürtkonfigurációk kezelése

A Databricks fürtszabályzatok használatát javasolja a fürtök szabálykészleten alapuló konfigurálásának korlátozására. A fürtszabályzatok lehetővé teszik, hogy csak unitykatalógus-kompatibilis fürtök létrehozására korlátozza a hozzáférést. A fürtszabályzatok használata csökkenti a rendelkezésre álló lehetőségeket, ami jelentősen leegyszerűsíti a fürtlétrehozás folyamatát a felhasználók számára, és biztosítja, hogy zökkenőmentesen férhessenek hozzá az adatokhoz. A fürtszabályzatok emellett lehetővé teszik a költségek szabályozását a fürtenkénti maximális költség korlátozásával.

A hozzáférés-vezérlés integritásának biztosítása és az erős elkülönítési garanciák érvényesítése érdekében a Unity Catalog biztonsági követelményeket támaszt a számítási erőforrásokra vonatkozóan. Ezért a Unity Catalog bevezeti a fürt hozzáférési módjának fogalmát. A Unity Katalógus alapértelmezés szerint biztonságos; ha egy fürt nincs megfelelő hozzáférési móddal konfigurálva, a fürt nem fér hozzá az adatokhoz a Unity Katalógusban. Lásd a Unity Catalog támogatott számítási és fürthozzáférési módjait.

A Databricks a megosztott hozzáférési módot javasolja egy fürt megosztásakor, valamint az egyfelhasználós hozzáférési módot az automatizált feladatokhoz és a gépi tanulási számítási feladatokhoz.

Az alábbi JSON a megosztott hozzáférési móddal rendelkező fürtök szabályzatdefinícióját tartalmazza:

{
"spark_version": {
    "type": "regex",
    "pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
    "defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
    "type": "fixed",
    "value": "USER_ISOLATION",
    "hidden": true
}
}

Az alábbi JSON egy szabályzatdefiníciót biztosít egy automatizált feladatfürthöz az egyfelhasználós hozzáférési móddal:

{
"spark_version": {
    "type": "regex",
    "pattern": "1[0-1]\\.[0-9].*",
    "defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
    "type": "fixed",
    "value": "SINGLE_USER",
    "hidden": true
},
"single_user_name": {
    "type": "regex",
    "pattern": ".*",
    "hidden": true
}
}

Hozzáférés naplózása

A teljes adatszabályozási megoldáshoz naplózásra van szükség az adatokhoz való hozzáféréshez, valamint riasztási és monitorozási képességek biztosításához. A Unity Catalog rögzíti a metaadattáron végrehajtott műveletek naplóját, és ezek a naplók az Azure Databricks auditnaplóinak részeként lesznek kézbesítve.

A fiók naplózási naplóit rendszertáblákkal érheti el. A naplózási naplórendszer táblával kapcsolatos további információkért tekintse meg a naplórendszer táblázatainak hivatkozását.

A Databricks adatintelligencia-platformjának naplózási naplókkal való monitorozásával kapcsolatos részletes információkért tekintse meg a Databricks Adatintelligencia-platformhoz kapcsolódó kritikus események teljes körű láthatóságát.

Adatok biztonságos megosztása a Delta Sharing használatával

A Delta Sharing egy nyílt protokoll, amelyet a Databricks fejlesztett ki a szervezet más szervezeteivel vagy más részlegeivel való biztonságos adatmegosztáshoz, függetlenül attól, hogy mely számítási platformokat használják. Ha a Delta Sharing engedélyezve van egy metaadattárban, a Unity Catalog egy Delta Sharing-kiszolgálót futtat.

A metaadattárak közötti adatmegosztáshoz használhatja a Databricks-to-Databricks deltamegosztást. Ez lehetővé teszi, hogy táblákat regisztráljon a különböző régiókban található metaadattárakból. Ezek a táblák írásvédett objektumokként jelennek meg a felhasználó metaadattárban. Ezek a táblák a Unity Katalógus bármely más objektumához hasonlóan hozzáférést is kaphatnak.

Ha a Databricks-to-Databricks deltamegosztást használja a metaadattárak közötti megosztáshoz, vegye figyelembe, hogy a hozzáférés-vezérlés egyetlen metaadattárra korlátozódik. Ha egy biztonságos objektum, például egy tábla, rendelkezik támogatásokkal, és az erőforrás meg van osztva egy fiókon belüli metaadattárban, akkor a forrásból származó támogatások nem lesznek érvényesek a célmegosztásra. A célmegosztásnak saját támogatásokat kell beállítania.

További információ