Kataloge verwalten mit DBMS_CATALOG
Das DBMS_CATALOG-Package enthält ein umfassendes Set von Prozeduren, Funktionen und Typen zum Verwalten von Datenbankkatalogen für Oracle Autonomous AI Database.
Was ist ein Katalog?
- Die Gruppe von Objekten, die über einen Datenbanklink verfügbar sind
- Eine Gruppe gemeinsamer Objekte, die über DBMS_SHARE verfügbar sind (z.B. Delta Sharing);
- Eine Reihe von Iceberg-Tabellen, die von einem Iceberg REST-Katalog verwaltet werden;
- Ein Set von Objekten, die von einem Drittanbieterprodukt definiert werden, wie Amazon Glue, Databricks Unity Catalog oder Snowflakes Polaris;
- Eine Gruppe von Objekten, die vom Oracle OCI Data Catalog-Service definiert werden.
- Ein Katalog kann auch als "Domain" oder "Datenprodukt" betrachtet werden. Dabei handelt es sich um eine Gruppe von Objekten, die für einen bestimmten Geschäftszweck gruppiert sind.
Weitere Informationen zum Katalogtool der Data Studio-Toolsuite finden Sie unter Katalogtool.
In einem Betriebssystem können Sie auf externe Datendateien zugreifen, indem Sie ein Dateisystem mounten. Analog können Sie auf externe Daten in einer autonomen KI-Datenbank zugreifen, indem Sie mit dem Package DBMS_CATALOG einen Katalog mounten.
Das folgende Beispiel zeigt, wie ein externer Iceberg-REST-Katalog gemountet wird. Um es zu verwenden, benötigen Sie drei Informationen.
- Der Iceberg REST Catalog-Endpunkt;
- Zugangsdaten (z. B. ein Bearer-Token), die zum Aufrufen dieses Endpunkts verwendet werden;
- Zugangsdaten (z.B. Benutzername/Kennwort), die für den Zugriff auf den Bucket verwendet werden, in dem die Iceberg-Datendateien gespeichert sind.
BEGIN
-- Create a credential capable of accessing an external Iceberg REST catalog
dbms_cloud.create_credential('ICEBERG_CATALOG_CRED', ...);
-- Create a credential capable of accessing the bucket where the
-- Iceberg data files are stored.
dbms_cloud.create_credential('ICEBERG_STORAGE_CRED', ...);
-- Mount the iceberg catalog
dbms_catalog.mount_iceberg(
catalog_name => 'ICEBERG_CAT',
endpoint => 'https://...',
catalog_credential => 'ICEBERG_CATALOG_CRED',
data_storage_credential => 'ICEBERG_STORAGE_CRED',
catalog_type => 'ICEBERG_UNITY');
END;
/
-- List tables in the iceberg catalog
SELECT owner, table_name
FROM all_tables@iceberg_cat;
-- Read data from an iceberg table
SELECT *
FROM a_schema.a_table@iceberg_cat;Mit der DBMS_CATALOG werden Vorgänge für den Katalog definiert und verarbeitet.
Es bietet ein umfassendes Set von Prozeduren, Funktionen und Typen für die Verwaltung von Katalogen in der autonomen Oracle-Datenbank. Es unterstützt Vorgänge wie das Mounten und Aushängen von Katalogen, das Verwalten von Katalogeigenschaften, das Bearbeiten von Zugangsdaten und das Arbeiten mit Katalogentitys wie Tabellen, Schemas und Objekten. Dieses Paket ist unerlässlich, um externe Datenquellen zu integrieren und Metadaten sicher und effizient zu verwalten.
Sicherheitsmodell
DBMS_CATALOG wird unter dem Modell AUTHID CURRENT_USER ausgeführt, d.h. es wird mit den Berechtigungen des aktuellen Benutzers ausgeführt. Sie benötigen die entsprechenden Berechtigungen, um Vorgänge wie das Mounten von Katalogen, das Aktualisieren von Eigenschaften oder das Verwalten von Zugangsdaten auszuführen.
Für wenige Kataloge ist eine autonome KI-Datenbank erforderlich, um eine Verbindung zu externen Internetressourcen herzustellen. Daher müssen Sie die relevanten externen Adressen zu den Access Control-Listen für den zugehörigen Datenbankbenutzer hinzufügen. Beispiel: Wenn Sie den Zugriff auf einen Databricks Unity Iceberg-Katalog auf Azure aktivieren, müssen Sie möglicherweise zwei Adressen auf die Ausnahmeliste setzen: eine für den Zugriff auf die Iceberg-REST-APIs und eine andere, wenn der Benutzer Zugriff auf die zugrunde liegenden Daten benötigt.
BEGIN
dbms_network_acl_admin.append_host_ace(
host => '*.azuredatabricks.net',
lower_port => 443,
upper_port => 443,
ace => xs$ace_type(
privilege_list => xs$name_list('http', 'http_proxy'),
principal_name => 'DBUSER',
principal_type => xs_acl.ptype_db));
dbms_network_acl_admin.append_host_ace(
host => '*.blob.core.windows.net',
ace => xs$ace_type(
privilege_list => xs$name_list('http', 'http_proxy'),
principal_name => 'DBUSER',
principal_type => xs_acl.ptype_db));
END;
/Um die DBMS_CATALOG-Methoden auszuführen, benötigen Sie DWROLE.
DWROLE zu erteilen:GRANT DWROLE TO MY_USER;Katalogtypen und Konstanten
In diesem Abschnitt erhalten Sie einen Überblick über die Katalogtypen und Schlüsselkonstanten, die im Paket definiert sind. Es werden die verschiedenen Katalogkategorien erläutert, die zum Organisieren verschiedener Katalogquellen verwendet werden. Außerdem werden wesentliche Konstanten für die Konfiguration und Verwaltung von Katalogeigenschaften und -verhalten beschrieben.
Katalogtypen
CATALOG_TYPE_SHARE:Stellt einen Share-basierten Katalog dar, der hauptsächlich für die gemeinsame Verwendung von Daten zwischen Systemen oder Benutzern konzipiert ist. Beispiel: Ein Datenfreigabeservice wie Data Studio Data Sharing verwendet gemeinsam genutzte Kataloge, um Daten sicher zu verteilen.
CATALOG_TYPE_DATA_CATALOG: Stellt externe Datenkataloge wie AWS Glue oder OCI Data Catalog dar. Diese Kataloge dienen als zentralisierte Repositorys für Metadaten zu Datasets. Beispielsweise erkennt und verwaltet der AWS Glue Data Catalog automatisch Metadaten von Datenquellen über AWS-Services wie S3 und Redshift hinweg und ermöglicht so eine nahtlose Datenintegration und -abfrage.CATALOG_TYPE_DB_LINK: Stellt eine Katalogkategorie dar, die aus einem Datenbanklink erstellt wurde. Mit diesem Katalogtyp können Sie auf Metadaten und Objekte zugreifen und diese organisieren, die sich in einer Remote- oder externen Datenbank befinden, und sie über eine eingerichtete Datenbank verbinden.Weitere Informationen finden Sie unter Daten aus Oracle- und Nicht-Oracle-Datenbanken mit Datenbanklinks laden.
CATALOG_TYPE_VIRTUAL: Stellt virtuelle Kataloge dar, die eine Abstraktion über physische Datenquellen bereitstellen. Virtuelle Kataloge speichern keine Daten selbst, sondern stellen eine einheitliche Schnittstelle für die Abfrage unterschiedlicher Datenquellen dar. Beispiel: Virtuelle Ansichten, die in einer Datenvirtualisierungsplattform erstellt werden.CATALOG_TYPE_ICEBERG: Stellt einen Iceberg-Katalog dar, der Metadaten für Tabellen verwaltet, die im Apache Iceberg-Format gespeichert sind. Iceberg ist ein Tabellenformat, das für große analytische Datensätze entwickelt wurde und Funktionen wie Schemaentwicklung und Zeitreisen unterstützt.Weitere Informationen finden Sie unter Kataloge verwalten.
Konstanten
TYPE_CATALOGundNS_CATALOG: Damit werden Katalogtyp und Namespace alsCATALOGdefiniert.DEFAULT_CATALOG: Der Standardkatalogname ist aufLOCALgesetzt.- Eigenschaftskonstanten wie
PROP_IS_ENABLED,PROP_IS_SYNCHRONIZED,PROP_CACHE_ENABLED,PROP_CACHE_DURATIONund andere zum Verwalten von Katalogverhalten und Metadaten-Caching.Konstantenname Wert Beschreibung PROP_IS_ENABLEDIS_ENABLEDDiese Eigenschaft bestimmt, ob ein Katalog derzeit für Abfrage und Suche aktiviert ist.
Gültige Werte:-
JA: Der Katalog wird im Dialogfeld für die Data Studio-UI-Suche angezeigt und kann in SQL-Abfragen mit der Datenbanklinksyntax verwendet werden (z.B. Benutzername aus all_users@catalog auswählen).
-
NEIN: Der Katalog wird in der Ansicht
ALL_MOUNTED_CATALOGSaufgelistet, wird jedoch nicht in die Data Studio-UI-Suchen eingeschlossen und kann nicht in der Datenbanklinksyntax verwendet werden.
PROP_CACHE_ENABLEDCACHE_ENABLEDDiese Eigenschaft bestimmt, ob Metadaten aus einem Remoteschema in der lokalen Datenbank gecacht werden sollen, um die Performance zu verbessern.
Gültige Werte
- JAHR Die Metadaten werden bei erstem Zugriff gecacht und bleiben für einen von
PROP_CACHE_DURATIONangegebenen Zeitraum im Cache. - NEIN:
Die Metadaten werden nicht gecacht. Alle Versuche, auf Objekte im Katalog zuzugreifen, greifen zur Abfragezeit auf die Remote-Metadatenquelle zu.
PROP_CACHE_DURATIONCACHE_DURATIONGibt an, wie viele Sekunden Metadaten im Cache gespeichert werden sollen, bevor sie veraltet sind. Der Standardwert beträgt 3600 Sekunden (eine Stunde).
Beachten Sie, dass der Benutzer den Cache jederzeit manuell löschen kann, indem er
DBMS_CATALOG.FLUSH_CATALOG_CACHEaufruft.Der Benutzer kann den Cache jederzeit durch Aufrufen von
DBMS_CATALOG.PREFILL_CATALOG_CACHEaktualisieren.PROP_CACHE_ASYNC'CACHE_ASYNC'Dieses Feld wird angezeigt, wenn der Cache mit asynchronen Jobs aufgefüllt wird.
Gültige Werte
- JAHR:
Die Metadaten werden mit einem DBMS_SCHEDULER-Job gecacht, der erstellt wird, wenn ein Benutzer die Metadaten zum ersten Mal anfordert.
- NEIN:
Die Metadaten werden in der Datenbanksession des Benutzers gecacht, der die Metadaten anfordert.
PROP_DEFAULT_SCHEMADEFAULT_SCHEMADer Name eines Remote-Schemas, das standardmäßig ausgewählt wird, wenn der Benutzer eine Abfrage des Formulars ausführt:
Das Standardschema spielt dieselbe Rolle wie das Schema des Benutzers in der lokalen Datenbank.select * from table@catalogPROP_DCAT_TYPEDATA_CATALOG_TYPEDer Typ eines von
DBMS_CATALOG.MOUNT_DATA_CATALOGgemounteten KatalogsGültige Werte
- AWS_GLUE: Der Katalog wird auf einem Remote-AWS Glue-Repository definiert.
- OCI_DCAT: Der Katalog wird auf einer OCI Data Catalog-Instanz definiert.
Hinweis
Dies ist eine Eigenschaft schreibgeschützt.PROP_CUSTOMCUSTOMEine benutzerdefinierte Eigenschaft ist ein Name/Wert-Paar, das vom Benutzer mit einem Katalog, Schema, einer Tabelle oder einem anderen Objekt im Katalog verknüpft ist.
Es gibt zwei Möglichkeiten, eine benutzerdefinierte Eigenschaft anzugeben:- Sie können eine einzelne benutzerdefinierte Eigenschaft, z.B. "
MY_PROP", festlegen, indem Sie den Namen der zusammengesetzten Eigenschaft "CUSTOM:MY_PROP" zusammen mit einem beliebigen Zeichenfolgenwert angeben.DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'CUSTOM:MY_PROP', new_value => 'Property Value'); - Sie können eine Gruppe von Kundeneigenschaften angeben, indem Sie den einfachen Eigenschaftsnamen "CUSTOM" zusammen mit einem JSON-Objekt angeben, das Name/Wert-Paare enthält.
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'CUSTOM', new_value => '{"Property1" : "Value 1", "Property2" : "Value 2", ...}');Hinweis
Bei benutzerdefinierten Eigenschaftsnamen muss die Groß-/Kleinschreibung beachtet werden. Daher unterscheidet sichCUSTOM:MY_PROPvonCUSTOM:My_Prop.Um eine benutzerdefinierte Eigenschaft zu entfernen, setzen Sie den Wert auf NULL.
Benutzerdefinierte Eigenschaften können als Suchbegriffe in der Data Studio-UI verwendet werden. Beispiel: Sie können alle Tabellen mit der Eigenschaft MY_PROP suchen, indem Sie den Bedingungsparameter inDBMS_CATALOG.GET_TABLESangeben.SELECT table_name FROM DBMS_CATALOG.GET_TABLES( catalog_name => 'some_catalog', conditions => '#MY_PROP');Sie können auch nach bestimmten Werten suchen.
SELECT table_name FROM DBMS_CATALOG.GET_TABLES( catalog_name => 'some_catalog', conditions => '#MY_PROP="Property Value"');
PROP_METADATAMETADATABenutzerdefinierte Metadaten ähneln benutzerdefinierten Eigenschaften, können jedoch Freiform-JSON enthalten. Die Metadaten werden mit dem Objekt gespeichert und können abgerufen werden. Sie werden jedoch nicht als Suchbegriff verwendet.
Es gibt zwei Möglichkeiten, benutzerdefinierte Metadaten anzugeben:- Sie können die gesamten Metadaten als JSON festlegen, indem Sie den Eigenschaftsnamen "METADATA" verwenden.
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'METADATA', new_value => '{"subObject":{"propName":"abc"}}'); - Sie können eine Unterkomponente der Metadaten mit dem Composite-Eigenschaftsnamen "METADATA:path" aktualisieren, wobei der Pfad ein relativer JSON-Pfad ist.
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'METADATA:subObject.propName', new_value => 'xyz');
PROP_CONFIGURATIONCONFIGURATIONMit der Konfigurationseigenschaft werden bestimmte Konfigurationseigenschaften für Iceberg-Kataloge aktualisiert. Es funktioniert in ähnlicher Weise wie die Eigenschaft CUSTOM.
BEGIN dbms_catalog.update_catalog_property( 'iceberg_cat', 'CONFIGURATION:IS_CASE_SENSITIVE', 'YES'); END; / -
Datentypen
DBMS_CATALOG werden verschiedene benutzerdefinierte Datentypen zur Verwaltung katalogbezogener Informationen eingeführt. Sie sind:
credential_infoundcredential_info_map: Dies sind Strukturen zum Speichern und Zuordnen von Zugangsdateninformationen.catalog_tableundcatalog_tables: Dies sind Datensätze und Tabellen zum Speichern detaillierter Tabellenmetadaten (z.B. Eigentümer, Name, Beschreibung, Status).catalog_schemaundcatalog_schemas: Dies sind Datensätze und Tabellen für Schemametadaten.catalog_objectundcatalog_objects: Dies sind Datensätze und Tabellen für Objektmetadaten in einem Katalog.
- DBMS_CATALOG-Package
DasDBMS_CATALOG-Package enthält eine Vielzahl von Unterprogrammen für die Katalogverwaltung, gruppiert nach Funktionalität. - Zusammenfassung von DBMS_CATALOG
In diesem Abschnitt werden dieDBMS_CATALOG-Unterprogramme behandelt, die mit der autonomen KI-Datenbank bereitgestellt werden.
Übergeordnetes Thema: Von autonomer KI-Datenbank bereitgestellte Packagereferenz