Catalogi maken en beheren

In dit artikel wordt beschreven hoe u catalogi maakt en beheert in Unity Catalog. Een catalogus bevat schema's (databases) en een schema bevat tabellen, weergaven, volumes, modellen en functies.

Notitie

In werkruimten die automatisch zijn ingeschakeld voor Unity Catalog, is standaard een werkruimtecatalogus voor u gemaakt. Alle gebruikers in uw werkruimte (en alleen uw werkruimte) hebben standaard toegang tot deze werkruimte. Zie stap 1: Controleer of uw werkruimte is ingeschakeld voor Unity Catalog.

Notitie

Zie Een refererende catalogus maken voor informatie over het maken van een refererende catalogus, een Unity Catalog-object dat een database in een extern gegevenssysteem spiegelt. Zie ook Beheren en werken met buitenlandse catalogi.

Vereisten

Een catalogus maken:

  • U moet een Azure Databricks-metastore-beheerder zijn of de CREATE CATALOG bevoegdheid hebben voor de metastore.

  • U moet een Unity Catalog-metastore hebben gekoppeld aan de werkruimte waar u het maken van de catalogus uitvoert.

  • Het cluster dat u gebruikt om een notebook uit te voeren om een catalogus te maken, moet gebruikmaken van een toegangsmodus die compatibel is met Unity Catalog. Zie Access-modi.

    SQL Warehouses bieden altijd ondersteuning voor Unity Catalog.

Een catalogus maken

Als u een catalogus wilt maken, kunt u Catalog Explorer of een SQL-opdracht gebruiken.

Catalogusverkenner

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik op CataloguspictogramCatalogus.

  3. Klik op de knop Catalogus maken.

  4. Selecteer het catalogustype dat u wilt maken:

    • Standaardcatalogus : een beveiligbaar object dat gegevensassets organiseert die worden beheerd door Unity Catalog. Voor alle gebruiksvoorbeelden behalve Lakehouse Federation.
    • Refererende catalogus: een beveiligbaar object in Unity Catalog dat een database in een extern gegevenssysteem spiegelt met behulp van Lakehouse Federation. Zie Overzicht van de federatie-instelling van Lakehouse.
  5. (Optioneel, maar sterk aanbevolen) Geef een beheerde opslaglocatie op. Vereist de CREATE MANAGED STORAGE bevoegdheid op de externe doellocatie. Zie Een beheerde opslaglocatie opgeven in Unity Catalog.

    Belangrijk

    Als uw werkruimte geen opslaglocatie op metastoreniveau heeft, moet u een beheerde opslaglocatie opgeven wanneer u een catalogus maakt.

  6. Klik op Create.

  7. (Optioneel) Geef de werkruimte op waaraan de catalogus is gebonden.

    De catalogus wordt standaard gedeeld met alle werkruimten die zijn gekoppeld aan de huidige metastore. Als de catalogus gegevens bevat die moeten worden beperkt tot specifieke werkruimten, gaat u naar het tabblad Werkruimten en voegt u deze werkruimten toe.

    Zie (Optioneel) Een catalogus toewijzen aan specifieke werkruimten voor meer informatie.

  8. Wijs machtigingen toe voor uw catalogus. Zie Unity Catalog-bevoegdheden en beveiligbare objecten.

Sql

  1. Voer de volgende SQL-opdracht uit in een notebook of Databricks SQL-editor. Items tussen haakjes zijn optioneel. Vervang de waarden van de tijdelijke aanduidingen:

    • <catalog-name>: Een naam voor de catalogus.

    • <location-path>: Optioneel, maar sterk aanbevolen. Geef een opslaglocatiepad op als u wilt dat beheerde tabellen in deze catalogus worden opgeslagen op een andere locatie dan de standaardhoofdopslag die is geconfigureerd voor de metastore.

      Belangrijk

      Als uw werkruimte geen opslaglocatie op metastoreniveau heeft, moet u een beheerde opslaglocatie opgeven wanneer u een catalogus maakt.

      Dit pad moet worden gedefinieerd in een configuratie van een externe locatie en u moet de CREATE MANAGED STORAGE bevoegdheid hebben voor de configuratie van de externe locatie. U kunt het pad gebruiken dat is gedefinieerd in de configuratie van de externe locatie of een subpad (met andere woorden, 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' of 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'). Vereist Databricks Runtime 11.3 en hoger.

    • <comment>: Optionele beschrijving of andere opmerking.

    Notitie

    Als u een refererende catalogus maakt (een beveiligbaar object in Unity Catalog dat een database in een extern gegevenssysteem spiegelt, wordt gebruikt voor Lakehouse Federation), is CREATE FOREIGN CATALOG de SQL-opdracht en zijn de opties anders. Zie Een refererende catalogus maken.

    CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
       [ MANAGED LOCATION '<location-path>' ]
       [ COMMENT <comment> ];
    

    Als u bijvoorbeeld een catalogus wilt maken met de naam example:

    CREATE CATALOG IF NOT EXISTS example;
    

    Als u catalogustoegang wilt beperken tot specifieke werkruimten in uw account, ook wel bekend als binding voor werkruimtecatalogus, raadpleegt u Een catalogus binden aan een of meer werkruimten.

    Zie CREATE CATALOG voor parameterbeschrijvingen.

  2. Wijs bevoegdheden toe aan de catalogus. Zie Unity Catalog-bevoegdheden en beveiligbare objecten.

Wanneer u een catalogus maakt, worden er automatisch twee schema's (databases) gemaakt: default en information_schema.

U kunt ook een catalogus maken met behulp van de Databricks Terraform-provider en databricks_catalog. U kunt informatie over catalogi ophalen met behulp van databricks_catalogs.

(Optioneel) Een catalogus toewijzen aan specifieke werkruimten

Als u werkruimten gebruikt om de toegang tot gebruikersgegevens te isoleren, kunt u catalogustoegang beperken tot specifieke werkruimten in uw account, ook wel bekend als binding voor werkruimtecatalogus. De standaardinstelling is om de catalogus te delen met alle werkruimten die zijn gekoppeld aan de huidige metastore.

U kunt lees- en schrijftoegang tot de catalogus toestaan vanuit een werkruimte (de standaardinstelling) of u kunt alleen-lezentoegang opgeven. Als u alleen-lezen opgeeft, worden alle schrijfbewerkingen van die werkruimte naar die catalogus geblokkeerd.

Typische gebruiksvoorbeelden voor het binden van een catalogus aan specifieke werkruimten zijn onder andere:

  • Ervoor zorgen dat gebruikers alleen toegang hebben tot productiegegevens vanuit een productiewerkruimteomgeving.
  • Ervoor zorgen dat gebruikers alleen gevoelige gegevens uit een toegewezen werkruimte kunnen verwerken.
  • Gebruikers alleen-lezentoegang geven tot productiegegevens vanuit een werkruimte voor ontwikkelaars om ontwikkeling en testen mogelijk te maken.

Voorbeeld van binding voor werkruimtecatalogus

Neem het voorbeeld van isolatie van productie en ontwikkeling. Als u opgeeft dat uw catalogussen met productiegegevens alleen toegankelijk zijn vanuit productiewerkruimten, vervangt dit alle afzonderlijke subsidies die aan gebruikers worden verleend.

Bindingsdiagram voor cataloguswerkruimten

In dit diagram prod_catalog is gekoppeld aan twee productiewerkruimten. Stel dat een gebruiker toegang heeft gekregen tot een tabel met prod_catalog de naam my_table (met behulp van GRANT SELECT ON my_table TO <user>). Als de gebruiker toegang probeert te krijgen my_table in de Dev-werkruimte, wordt er een foutbericht weergegeven. De gebruiker heeft alleen toegang tot my_table de Prod ETL- en Prod Analytics-werkruimten.

Bindingen voor werkruimtecatalogus worden in alle gebieden van het platform gerespecteerd. Als u bijvoorbeeld een query uitvoert op het informatieschema, ziet u alleen de catalogi die toegankelijk zijn in de werkruimte waar u de query uitvoert. Gegevensherkomst en zoek-UIS's geven ook alleen de catalogi weer die aan de werkruimte zijn toegewezen (ongeacht of er bindingen of standaard worden gebruikt).

Een catalogus verbinden met een of meer werkruimten

Als u een catalogus wilt toewijzen aan specifieke werkruimten, kunt u Catalog Explorer of de UNITY Catalog REST API gebruiken.

Vereiste machtigingen: Metastore-beheerder of cataloguseigenaar.

Notitie

Metastore-beheerders kunnen alle catalogi in een metastore zien met behulp van Catalog Explorer, en cataloguseigenaren kunnen alle catalogi zien waarvan ze eigenaar zijn in een metastore, ongeacht of de catalogus is toegewezen aan de huidige werkruimte. Catalogi die niet zijn toegewezen aan de werkruimte, worden grijs weergegeven en er zijn geen onderliggende objecten zichtbaar of doorzoekbaar.

Catalogusverkenner

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik op CataloguspictogramCatalogus.

  3. Klik in het deelvenster Catalogus aan de linkerkant op de catalogusnaam.

    Het hoofdvenster Catalogusverkenner is standaard ingesteld op de cataloguslijst. U kunt ook de catalogus daar selecteren.

  4. Schakel op het tabblad Werkruimten het selectievakje Alle werkruimten toegang hebben .

    Als uw catalogus al is gebonden aan een of meer werkruimten, is dit selectievakje al uitgeschakeld.

  5. Klik op Toewijzen aan werkruimten en voer de werkruimten in die u wilt toewijzen of zoek deze.

  6. (Optioneel) Beperk de toegang tot werkruimten met het kenmerk Alleen-lezen.

    Selecteer In het menu Toegangsniveau beheren de optie Toegang tot alleen-lezen wijzigen.

    U kunt deze selectie op elk gewenst moment omkeren door de catalogus te bewerken en De toegang tot lezen en schrijven wijzigen te selecteren.

Als u de toegang wilt intrekken, gaat u naar het tabblad Werkruimten , selecteert u de werkruimte en klikt u op Intrekken.

Api

Er zijn twee API's en twee stappen vereist om een catalogus toe te wijzen aan een werkruimte. Vervang in de volgende voorbeelden door <workspace-url> de naam van uw werkruimte-exemplaar. Zie Id's voor werkruimteobjecten ophalen voor werkruimteobjecten voor meer informatie over het ophalen van de naam van het werkruimte-exemplaar en de werkruimte-id. Zie verificatie voor Azure Databricks-automatisering - overzicht voor meer informatie over het ophalen van toegangstokens.

  1. Gebruik de catalogs API om de catalogus isolation mode in te stellen op ISOLATED:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/catalogs/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
     "isolation_mode": "ISOLATED"
     }'
    

    De standaardwaarde isolation mode is OPEN voor alle werkruimten die zijn gekoppeld aan de metastore.

  2. Gebruik de update-API bindings om de werkruimten toe te wijzen aan de catalogus:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
      "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
      "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
    }'
    

    Gebruik de "add" en "remove" eigenschappen om werkruimtebindingen toe te voegen of te verwijderen. <binding-type>“BINDING_TYPE_READ_WRITE” kan (standaard) of “BINDING_TYPE_READ_ONLY”.

Als u alle werkruimtetoewijzingen voor een catalogus wilt weergeven, gebruikt u de lijst-API bindings :

   curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
   -H 'Authorization: Bearer <my-token> \

Een catalogus uit een werkruimte ontkoppelen

Instructies voor het intrekken van werkruimtetoegang tot een catalogus met Behulp van Catalog Explorer of de bindings API zijn opgenomen in Een catalogus binden aan een of meer werkruimten.

Belangrijk

Als uw werkruimte automatisch is ingeschakeld voor Unity Catalog en u een werkruimtecatalogus hebt, zijn werkruimtebeheerders eigenaar van die catalogus en beschikken ze alleen over alle machtigingen voor die catalogus in de werkruimte. Als u deze catalogus ontkoppelt of aan andere catalogi koppelt, moet u de vereiste machtigingen handmatig toewijzen aan de leden van de groep werkruimtebeheerders als afzonderlijke gebruikers of met behulp van groepen op accountniveau, omdat de werkruimtebeheerdersgroep een werkruimte-lokale groep is. Zie Verschil tussen accountgroepen en werkruimte-lokale groepen voor meer informatie over accountgroepen versus werkruimte-lokale groepen.

Schema's toevoegen aan uw catalogus

Voor meer informatie over het toevoegen van schema's (databases) aan uw catalogus. zie Schema's (databases) maken en beheren.

Catalogusdetails weergeven

Als u informatie over een catalogus wilt weergeven, kunt u Catalog Explorer of een SQL-opdracht gebruiken.

Catalogusverkenner

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik op CataloguspictogramCatalogus.

  3. Zoek de catalogus in het deelvenster Catalogus en klik op de naam ervan.

    Sommige details worden boven aan de pagina weergegeven. Anderen kunnen worden weergegeven op de tabbladen Schema's, Details, Machtigingen en Werkruimten .

Sql

Voer de volgende SQL-opdracht uit in een notebook of Databricks SQL-editor. Items tussen haakjes zijn optioneel. Vervang de tijdelijke aanduiding <catalog-name>.

Zie DESCRIBE CATALOG voor meer informatie.

DESCRIBE CATALOG <catalog-name>;

Gebruik CATALOG EXTENDED dit voor volledige details.

Een catalogus verwijderen

Als u een catalogus wilt verwijderen (of verwijderen), kunt u Catalog Explorer of een SQL-opdracht gebruiken. Als u een catalogus wilt verwijderen, moet u de eigenaar zijn.

Catalogusverkenner

U moet alle schema's in de catalogus verwijderen, behalve information_schema voordat u een catalogus kunt verwijderen. Dit omvat het automatisch gemaakte default schema.

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.
  2. Klik op CataloguspictogramCatalogus.
  3. Klik in het deelvenster Catalogus aan de linkerkant op de catalogus die u wilt verwijderen.
  4. Klik in het detailvenster op het menu met drie puntjes links van de knop Database maken en selecteer Verwijderen.
  5. Klik in het dialoogvenster Catalogus verwijderen op Verwijderen.

Sql

Voer de volgende SQL-opdracht uit in een notebook of Databricks SQL-editor. Items tussen haakjes zijn optioneel. Vervang de tijdelijke aanduiding <catalog-name>.

Zie DROP CATALOG voor parameterbeschrijvingen.

Als u DROP CATALOG zonder de CASCADE optie gebruikt, moet u alle schema's in de catalogus verwijderen, behalve information_schema voordat u de catalogus kunt verwijderen. Dit omvat het automatisch gemaakte default schema.

DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]

Als u bijvoorbeeld een catalogus met de naam vaccine en de bijbehorende schema's wilt verwijderen:

DROP CATALOG vaccine CASCADE

De standaardcatalogus beheren

Er wordt een standaardcatalogus geconfigureerd voor elke werkruimte die is ingeschakeld voor Unity Catalog. Met de standaardcatalogus kunt u gegevensbewerkingen uitvoeren zonder een catalogus op te geven. Als u de naam van de catalogus op het hoogste niveau weglaat wanneer u gegevensbewerkingen uitvoert, wordt ervan uitgegaan dat de standaardcatalogus wordt gebruikt.

Een werkruimtebeheerder kan de standaardcatalogus bekijken of wijzigen met behulp van de gebruikersinterface van Beheer Instellingen. U kunt ook de standaardcatalogus voor een cluster instellen met behulp van een Spark-configuratie.

Opdrachten die de catalogus niet opgeven (bijvoorbeeld GRANT CREATE TABLE ON SCHEMA myschema TO mygroup) worden in de volgende volgorde geëvalueerd voor de catalogus:

  1. Is de catalogus ingesteld voor de sessie met behulp van een USE CATALOG instructie of een JDBC-instelling?
  2. Is de Spark-configuratie spark.databricks.sql.initial.catalog.namespace ingesteld op het cluster?
  3. Is er een standaardcatalogus voor de werkruimte ingesteld voor het cluster?

De standaardcatalogusconfiguratie wanneer Unity Catalog is ingeschakeld

De standaardcatalogus die in eerste instantie is geconfigureerd voor uw werkruimte, is afhankelijk van de manier waarop uw werkruimte is ingeschakeld voor Unity Catalog:

  • Voor sommige werkruimten die automatisch zijn ingeschakeld voor Unity Catalog, is de werkruimtecatalogus ingesteld als de standaardcatalogus. Bekijk Automatisch inschakelen van Unity-catalogus.
  • Voor alle andere werkruimten is de hive_metastore catalogus ingesteld als de standaardcatalogus.

Als u overstapt van de Hive-metastore naar Unity Catalog binnen een bestaande werkruimte, is het doorgaans zinvol om te gebruiken hive_metastore als de standaardcatalogus om te voorkomen dat bestaande code die verwijst naar de Hive-metastore, wordt beïnvloed.

De standaardcatalogus wijzigen

Een werkruimtebeheerder kan de standaardcatalogus voor de werkruimte wijzigen. Iedereen met machtigingen voor het maken of bewerken van een cluster kan een andere standaardcatalogus voor het cluster instellen.

Waarschuwing

Als u de standaardcatalogus wijzigt, kunnen bestaande gegevensbewerkingen worden verbroken die hiervan afhankelijk zijn.

Een andere standaardcatalogus voor een werkruimte configureren:

  1. Meld u als werkruimtebeheerder aan bij uw werkruimte.
  2. Klik op uw gebruikersnaam in de bovenste balk van de werkruimte en selecteer Instellingen in de vervolgkeuzelijst.
  3. Klik op het tabblad Geavanceerd.
  4. Voer in de standaardcatalogus voor de werkruimterij de naam van de catalogus in en klik op Opslaan.

Start uw SQL-warehouses en -clusters opnieuw op om de wijziging van kracht te laten worden. Alle nieuwe en opnieuw gestarte SQL-magazijnen en -clusters gebruiken deze catalogus als de standaardwerkruimte.

U kunt ook de standaardcatalogus voor een specifiek cluster overschrijven door de volgende Spark-configuratie in het cluster in te stellen. Deze methode is niet beschikbaar voor SQL Warehouses:

spark.databricks.sql.initial.catalog.name

Zie De Spark-configuratie voor instructies.

De huidige standaardcatalogus weergeven

Als u de huidige standaardcatalogus voor uw werkruimte wilt ophalen, kunt u een SQL-instructie gebruiken in een notebook- of SQL Editor-query. Een werkruimtebeheerder kan de standaardcatalogus ophalen met behulp van de gebruikersinterface van Beheer Instellingen.

Beheerdersinstellingen

  1. Meld u als werkruimtebeheerder aan bij uw werkruimte.
  2. Klik op uw gebruikersnaam in de bovenste balk van de werkruimte en selecteer Instellingen in de vervolgkeuzelijst.
  3. Klik op het tabblad Geavanceerd.
  4. Bekijk de catalogusnaam in de standaardcatalogus voor de werkruimterij .

Sql

Voer de volgende opdracht uit in een notebook- of SQL Editor-query die wordt uitgevoerd op een SQL Warehouse- of Unity Catalog-compatibele cluster. De standaardcatalogus van de werkruimte wordt geretourneerd zolang er geen USE CATALOG instructie of JDBC-instelling is ingesteld voor de sessie en zolang er geen spark.databricks.sql.initial.catalog.namespace configuratie is ingesteld voor het cluster.

SELECT current_catalog();