使用 DBMS_CATALOG 管理型錄
DBMS_CATALOG 套件提供一組完整的程序、功能和類型,用於管理 Oracle Autonomous AI Database 的資料庫目錄。
什麼是型錄?
- 可透過資料庫連結使用的物件集
- 透過 DBMS_SHARE 提供的一組共用物件 (例如 Delta Sharing);
- 由 Iceberg REST 目錄管理的一組 Iceberg 表格;
- 由第三方產品定義的一組物件,例如 Amazon Glue、Databricks Unity Catalog 或 Snowflakes Polaris;
- Oracle OCI 資料目錄服務所定義的一組物件。
- 目錄也可視為「網域」或「資料產品」,這是一組針對特定業務目的群組在一起的物件。
如需有關 Data Studio 工具套件之目錄工具的詳細資訊,請參閱目錄工具。
在作業系統中,您可以掛載檔案系統來存取外部資料檔。您可以使用 DBMS_CATALOG 套裝程式掛載目錄,以存取「自治式 AI 資料庫」中的外部資料。
下列範例顯示如何掛載外部 Iceberg REST 目錄。要使用它,您需要三個資訊。
- Iceberg REST 目錄端點;
- 用來呼叫此端點的證明資料 (例如 Bearer 權杖);
- 用來存取儲存 Iceberg 資料檔案之貯體的認證 (例如使用者名稱 / 密碼)。
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;DBMS_CATALOG 可用來定義和處理與目錄相關的作業。
它提供一組完整的程序、功能和類型,用於管理 Oracle Autonomous 資料庫內的目錄。它支援掛載及卸載目錄、管理目錄特性、處理證明資料,以及使用目錄實體 (例如表格、綱要和物件) 等作業。此套件對於整合外部資料來源以及以安全且有效率的方式管理中繼資料十分重要。
安全模型
DBMS_CATALOG 套裝程式在 AUTHID CURRENT_USER 模型底下運作,表示它會以目前使用者的權限執行。您必須具備適當的權限才能執行作業,例如掛載目錄、更新特性或管理證明資料。
附註:
少數目錄需要 Autonomous AI Database 連線至外部網際網路資源。因此,您必須新增相關的外部地址至相關資料庫使用者的存取控制清單。例如,啟用對 Azure 上 Databricks Unity Iceberg 目錄的存取時,您可能需要將兩個地址加入白名單:一個是用於存取 Iceberg REST API,另一個是使用者需要存取基礎資料。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;
/您必須要有 DWROLE 才能執行 DBMS_CATALOG 方法。
DWROLE 授予使用者:GRANT DWROLE TO MY_USER;型錄類型與常數
本節概述配套中定義的目錄類型與關鍵常數。它會說明用來組織各種型錄來源的不同型錄類目,並概述設定與管理型錄屬性與行為的基本常數。
型錄類型
CATALOG_TYPE_SHARE:代表以共用為基礎的目錄,主要設計用於在系統或使用者之間共用資料。例如,資料共用服務 (例如 Data Studio 的資料共用) 會使用共用型目錄來安全地分送資料。
CATALOG_TYPE_DATA_CATALOG:代表外部資料目錄,例如 AWS Glue 或 OCI 資料目錄。這些目錄可作為資料集相關描述資料的集中式儲存區域。例如,AWS Glue Data Catalog 會自動跨 AWS 服務 (例如 S3 和 Redshift) 尋找及管理資料來源的中繼資料,從而實現無縫的資料整合與查詢。CATALOG_TYPE_DB_LINK:代表從資料庫連結建立的目錄類別。此類型的目錄可讓您存取和組織位於遠端或外部資料庫中的描述資料和物件,並透過建立的資料庫加以連線。請參閱使用資料庫連結從 Oracle 和非 Oracle 資料庫載入資料以瞭解詳細資訊。
CATALOG_TYPE_VIRTUAL:代表提供實體資料來源抽象的虛擬目錄。虛擬目錄不會儲存資料本身,而是會呈現統一介面來查詢不同的資料來源,例如在資料虛擬化平台中建立的虛擬檢視。CATALOG_TYPE_ICEBERG:代表 Iceberg 目錄,其管理以 Apache Iceberg 格式儲存之表格的中繼資料。Iceberg 是專為大型分析資料集設計的表格格式,支援架構演進和時間旅行等功能。請參閱管理目錄瞭解詳細資訊。
常數
TYPE_CATALOG和NS_CATALOG:這會將目錄類型和命名空間定義為CATALOG。DEFAULT_CATALOG:預設目錄名稱設為LOCAL。- 用於管理目錄行為和描述資料快取的特性常數 (例如
PROP_IS_ENABLED、PROP_IS_SYNCHRONIZED、PROP_CACHE_ENABLED、PROP_CACHE_DURATION等)。常數名稱 數值 描述 PROP_IS_ENABLEDIS_ENABLED此特性決定目前是否啟用目錄以進行查詢和搜尋。
有效值:-
是:目錄會顯示在 Data Studio UI 搜尋對話方塊中,而且可以使用資料庫連結語法 (例如,從 all_users@catalog 選取使用者名稱) 在 SQL 查詢中使用。
-
否:目錄會列在
ALL_MOUNTED_CATALOGS檢視中,但不會包含在 Data Studio UI 搜尋中,且無法用於資料庫連結語法中。
PROP_CACHE_ENABLEDCACHE_ENABLED此特性決定是否應將遠端綱要的描述資料快取至本機資料庫,以提昇效能。
有效值
- 是:描述資料將第一次存取時快取,並保留在
PROP_CACHE_DURATION所指定期間的快取中。 - 否:
將不會快取描述資料。在查詢時,所有存取目錄內物件的嘗試都會連線到遠端描述資料來源。
PROP_CACHE_DURATIONCACHE_DURATION描述資料在過時之前,應保留在快取中的秒數。預設值為 3600 秒 (一小時)。
請注意,使用者可以隨時透過呼叫
DBMS_CATALOG.FLUSH_CATALOG_CACHE手動排清快取。使用者可以隨時透過呼叫
DBMS_CATALOG.PREFILL_CATALOG_CACHE來重新整理快取。PROP_CACHE_ASYNC'CACHE_ASYNC'如果使用非同步工作植入快取,則會顯示此欄位。
有效值
- 是:
將使用使用者第一次要求描述資料時建立的 DBMS_SCHEDULER 工作來快取描述資料。
- 否:
中繼資料會快取要求中繼資料之使用者的資料庫階段作業。
PROP_DEFAULT_SCHEMADEFAULT_SCHEMA如果使用者執行表單查詢,則預設會選擇的遠端綱要名稱:
預設綱要在本機資料庫中扮演與使用者自己的綱要相同的角色。select * from table@catalogPROP_DCAT_TYPEDATA_CATALOG_TYPE由
DBMS_CATALOG.MOUNT_DATA_CATALOG掛載的目錄類型有效值
- AWS_GLUE :目錄定義在遠端 AWS Glue 儲存區域之上。
- OCI_DCAT :目錄定義在 OCI 資料目錄執行處理之上。
附註:
這是唯讀特性。PROP_CUSTOMCUSTOM自訂特性是使用者與目錄、綱要、表格或其他目錄相關聯的名稱 / 值組。
指定自訂特性的方法有兩種:- 您可以指定複合特性名稱 '
CUSTOM:MY_PROP' 以及任意字串值,來設定單一自訂特性 "MY_PROP"。DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'CUSTOM:MY_PROP', new_value => 'Property Value'); - 您可以指定簡單特性名稱 'CUSTOM' 以及包含名稱值組的 JSON 物件,以指定一組客戶特性。
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'CUSTOM', new_value => '{"Property1" : "Value 1", "Property2" : "Value 2", ...}');附註:
自訂特性名稱會區分大小寫,因此CUSTOM:MY_PROP會與CUSTOM:My_Prop不同。若要移除自訂特性,請將值設定為 NULL。
自訂特性可作為 Data Studio UI 中的搜尋詞。例如,您可以在DBMS_CATALOG.GET_TABLES中指定 conditions 參數,即可找到具有 MY_PROP 特性的所有表格。SELECT table_name FROM DBMS_CATALOG.GET_TABLES( catalog_name => 'some_catalog', conditions => '#MY_PROP');您也可以搜尋特定值。
SELECT table_name FROM DBMS_CATALOG.GET_TABLES( catalog_name => 'some_catalog', conditions => '#MY_PROP="Property Value"');
PROP_METADATAMETADATA自訂中繼資料與自訂特性類似,但可包含任意格式的 JSON。中繼資料會與物件一起儲存,且可以擷取,但不會用作搜尋詞彙。
指定自訂描述資料的方法有兩種:- 您可以使用特性名稱 'METADATA' 將整個描述資料設為 JSON。
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'METADATA', new_value => '{"subObject":{"propName":"abc"}}'); - 您可以使用複合特性名稱 'METADATA:path' 來更新描述資料子元件,其中路徑是部分相對 JSON 路徑。
DBMS_CATALOG.UPDATE_CATALOG_PROPERTY( catalog_name => 'some_catalog', catalog_property => 'METADATA:subObject.propName', new_value => 'xyz');
PROP_CONFIGURATIONCONFIGURATION組態特性是用來更新 Iceberg 目錄的特定組態特性。它的運作方式與 CUSTOM 性質類似。
BEGIN dbms_catalog.update_catalog_property( 'iceberg_cat', 'CONFIGURATION:IS_CASE_SENSITIVE', 'YES'); END; / -
資料類型
DBMS_CATALOG 套裝程式引進各種自訂資料類型來管理目錄相關資訊。分別是:
credential_info和credential_info_map:這些是儲存和對應證明資料資訊的結構。catalog_table和catalog_tables:這些是用於儲存詳細表格描述資料的記錄和表格 (例如,擁有者、名稱、描述、狀態)。catalog_schema和catalog_schemas:這些是綱要描述資料的記錄和表格。catalog_object和catalog_objects:這些是目錄內物件描述資料的記錄和表格。
- DBMS_CATALOG 套裝程式
DBMS_CATALOG套裝程式包含廣泛的目錄管理子程式,依功能分組。 - DBMS_CATALOG 摘要
本節涵蓋 Oracle Autonomous AI Database 提供的DBMS_CATALOG子程式。
父項主題:目錄工具