使用資料目錄查詢外部資料

Oracle Cloud Infrastructure Data Catalog 是 Oracle Cloud 的中繼資料管理服務,可協助您探索資料並支援資料治理。它提供資產產品目錄、業務詞彙,以及用於資料湖的通用描述資料存放區。

自主 AI 資料庫可以利用此中繼資料,大幅簡化管理,以存取資料湖的物件存放區。使用自動定義和管理的外部表格,而不是手動定義外部表格來存取資料湖。這些表格將會在「自治式 AI 資料庫」保護的綱要中找到,這些綱要會與資料目錄中的變更保持在最新狀態。

關於使用資料目錄查詢

透過與資料目錄描述資料同步,自治式 AI 資料庫會自動為資料目錄收集的每個邏輯實體建立外部表格。這些外部表格是在由描述資料同步處理作業完全管理的資料庫綱要中定義。使用者可以立即查詢資料,而不需要手動導出外部資料來源的綱要 (資料欄和資料類型),以及手動建立外部表格。

同步是動態的,相對於基本資料的變更,讓自治式 AI 資料庫保持在最新狀態,並隨著自動維護數百到數千個表格,降低管理成本。此外,還可讓多個自治式 AI 資料庫執行處理共用相同的資料目錄、進一步降低管理成本,以及提供一組通用的業務定義。

資料目錄資料夾 / 儲存桶是與 Autonomous Database 綱要同步的容器。這些資料夾 / 儲存桶內的邏輯實體會對應至 Autonomous Database 外部表格。這些結構與外部表格會透過同步處理程序自動產生與維護:

若要使用此功能,「資料庫資料目錄管理員」會起始與「資料目錄」執行處理的連線,選取要同步的資料資產和邏輯實體,然後執行同步。同步處理作業會根據選取的資料目錄收集的資料資產和邏輯實體,建立綱要和外部表格。建立外部表格後,「資料分析師」即可開始查詢其資料,而不需要手動衍生外部資料來源的綱要並建立外部表格。

注意:DBMS_DCAT 套裝程式可用來執行查詢「資料目錄」物件儲存資料資產所需的作業。請參閱 DBMS_DCAT 套裝軟體

與使用資料目錄查詢相關的概念

若要使用「資料目錄」查詢,必須瞭解下列概念。

資料目錄:資料目錄會收集指向物件存放區資料來源的資料資產,這些資料來源會與 Autonomous AI Database 進行查詢。您可以從「資料目錄」指定收集資料時的組織方式,以支援不同的檔案組織樣式。在「資料目錄」收集處理作業中,您可以選取要在資產內管理的儲存桶和檔案。如需進一步資訊,請參閱資料目錄概要

物件存放區:物件存放區的儲存桶包含各種物件。在這些儲存桶中找到一些常見的物件類型包括:CSV、parquet、avro、json 和 ORC 檔案。儲存桶通常具有其所包含物件的結構或設計樣式。有許多不同的方法可以建構資料,以及許多不同的解譯這些模式方式。

例如,典型的設計樣式會使用代表表格的最上層資料夾。指定資料夾內的檔案會共用相同的綱要,並包含該表格的資料。子資料夾通常用來代表表格分割區 (例如,每天的子資料夾)。「資料目錄」會將每個最上層資料夾視為邏輯實體,而此邏輯實體會對應至「自治式 AI 資料庫」外部表格。

連線:連線是「資料目錄」執行處理的自治式 AI 資料庫連線。每個自治式 AI 資料庫執行處理都可以連線至多個資料目錄執行處理。自治式 AI 資料庫證明資料必須具備存取已從物件儲存收集之資料目錄資產的權限。

收集:掃描物件儲存並從資料集產生邏輯實體的「資料目錄」處理作業。

資料資產:資料目錄中的資料資產代表一個資料來源,包括資料庫、Oracle Object Storage、Kafka 等等。自治式 AI 資料庫運用 Oracle Object Storage 資產進行描述資料同步。

資料實體:「資料目錄」中的資料實體是資料的集合,例如資料庫表格或視觀表,或是單一檔案,通常具有許多描述其資料的屬性。

邏輯實體:在「資料湖」中,許多檔案通常由單一邏輯實體組成。例如,您可能會有每日點擊流檔案,而這些檔案共用相同的綱要和檔案類型。

資料目錄邏輯實體是一組物件儲存檔案,這些檔案是透過套用已建立並指定給資料資產的檔案名稱樣式在收集期間所衍生。

資料物件:「資料目錄」中的資料物件指的是資料資產和資料實體。

檔案名稱樣式:在資料湖中,資料可以不同方式組織。通常,資料夾會擷取相同綱要和類型的檔案。您必須向「資料目錄」註冊資料組織方式。檔案名稱樣式是用來識別資料的組織方式。在「資料目錄」中,您可以使用正規表示式定義檔案名稱樣式。當資料目錄以指派的檔案名稱樣式收集資料資產時,會根據檔案名稱樣式建立邏輯實體。藉由定義這些樣式並將其指派給資料資產,即可根據檔案名稱樣式將多個檔案分組為邏輯實體。

同步 (同步) :自治式 AI 資料庫會與資料目錄執行同步,以自動更新基礎資料變更的相關資料庫。同步化可以手動執行,也可以按照排程執行。

同步處理作業會根據「資料目錄」資料資產和邏輯實體建立綱要和外部表格。這些綱要受到保護,這表示其描述資料是由「資料目錄」管理。若要更改描述資料,您必須在「資料目錄」中進行變更。自治式 AI 資料庫綱要會在下次同步執行後反映所有變更。如需進一步的詳細資訊,請參閱「同步對應」。

同步對應

同步處理會根據資料目錄資料資產、資料夾、邏輯實體、屬性及相關自訂覆寫,建立並更新自治式 AI 資料庫綱要和外部表格。

資料目錄 自治式 AI 資料庫 對應說明
資料資產和資料夾 (物件儲存的儲存桶) 綱要名稱

預設值:

依照預設,自治式 AI 資料庫中產生的綱要名稱格式如下:

DCAT$<dcat-con-id>_<data-asset-name>_<folder-name></code>

  • dcat-con-id 是唯一的資料目錄連線 ID。如需指定此 ID 的詳細資訊,請參閱 DBMS_DCAT RUN_SYNC 程序中的 dcat_con_id 參數。
  • data-asset-name 是資料目錄資料資產名稱的名稱。
  • folder-name 是「資料目錄」資料夾名稱。此資料夾對應至物件儲存的儲存桶。

自訂項目:

您可以定義自訂特性、商業名稱和顯示名稱來自訂預設的 data-asset-namefolder-name,以覆寫這些預設名稱。
  • 您可以在「資料目錄」中定義資料資產的 oracle-db-schema-prefix 自訂特性,以覆寫 data-asset-name
  • 若要覆寫 folder-name,請在「資料目錄」中定義資料夾的 oracle-db-schema 自訂特性、公司名稱或顯示名稱。下列屬性是用來產生 folder-name 的優先順序:
    • oracle-db-schema 自訂特性
    • 企業名稱
    • 顯示名稱

範例:

  • 如果連線 ID 為 DataModels,資產名稱為 ObjectStorage,資料夾名稱為 HR 且沒有自訂特性覆寫,衍生的綱要名稱為:DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • 如果資料資產名稱為 MYASSET,資料夾名稱為 MYFOLDER,且沒有自訂特性覆寫,則綱要名稱為:DCAT$MYASSET_MYFOLDER
  • 如果資料資產有 oracle-db-prefix = FIRSTASSET,且資料夾有 oracle-db-schema = FIRSTFOLDER,則綱要名稱為:DCAT$FIRSTASSET_FIRSTFOLDER
邏輯個體 外部表

邏輯實體對應至外部表格。如果邏輯實體有分割的屬性,則該屬性會對應至分割的外部表格。

外部表格名稱衍生自對應邏輯實體的「顯示名稱」或「業務名稱」。

如果設定 oracle-db-schema,則其值會覆寫對應資料夾和資料資產的所有名稱和自訂特性。

例如,如果實體的 oracle-db-schema 設為 EntitySchema,則會在綱要 DCAT$ENTITYSCHEMA 中建立表格。

邏輯實體的屬性 外部表格資料欄

資料欄名稱:外部表格資料欄名稱是衍生自對應邏輯實體的屬性顯示名稱或企業名稱。

對於從 Parquet、Avro 和 ORC 檔案衍生的邏輯實體,資料欄名稱一律是屬性的顯示名稱,因為它代表從來源檔案衍生的欄位名稱。

對於對應至從 CSV 檔案衍生之邏輯實體的屬性,下列屬性欄位會依產生資料欄名稱的優先順序使用:

  1. oracle-db-column-name
  2. 企業名稱
  3. 顯示名稱

資料欄類型:oracle-db-column-type 自訂特性會覆寫「資料目錄」所衍生的預設資料欄類型。

對於對應至從具有 TIME_MICROSTIME_MILLISTIMESTAMP_MICROSTIMESTAMP_MILLIS 資料類型之 Avro 檔案衍生的邏輯實體的屬性,您必須在「資料目錄」中設定對應屬性的 oracle-db-column-type

資料欄長度:oracle-db-column-length 自訂特性會覆寫「資料目錄」所衍生之字串欄位的預設資料欄長度。

資料欄精確度:oracle-db-column-precision 自訂特性會覆寫由「資料目錄」衍生之數字的預設精確度。

對於對應至從具有 TIME_MICROSTIME_MILLISTIMESTAMP_MICROSTIMESTAMP_MILLIS 資料類型之 Avro 檔案衍生的邏輯實體的屬性,您必須在「資料目錄」中設定對應屬性的 oracle-db-column-precision

資料欄比例:oracle-db-column-scale 自訂特性會覆寫「資料目錄」所衍生數字的預設比例。

使用資料目錄的一般工作流程

想要使用「資料目錄」查詢的使用者所執行的動作一般工作流程。

「資料庫資料目錄管理」會在自治式 AI 資料庫執行處理與資料目錄執行處理之間建立連線,然後在「資料目錄」與「自治式 AI 資料庫」之間設定並執行同步。此同步會根據同步的資料目錄內容,在自治式 AI 資料庫執行處理中建立外部表格和綱要。

「資料庫資料目錄查詢管理」或「資料庫管理」將 READ 存取權授與產生的外部表格,讓「資料分析師」和其他資料庫使用者可以瀏覽和查詢外部表格。

下表詳細說明每個動作。如需此表格中所含不同使用者類型的描述,請參閱資料目錄使用者與角色

注意:DBMS_DCAT 套裝程式可用來執行查詢「資料目錄」物件儲存資料資產所需的作業。請參閱 DBMS_DCAT 套件

動作 使用者是誰 描述
建立原則 資料庫資料目錄管理員

自治式 AI 資料庫使用者證明資料必須具備適當的權限,才能管理資料目錄及從物件儲存讀取資料目錄。

更多資訊:必要的證明資料和 IAM 原則

建立證明資料 資料庫資料目錄管理員

請確定已有資料庫證明資料可供存取「資料目錄」和查詢物件存放區。使用者會呼叫 DBMS_CLOUD.CREATE_CREDENTIAL 來建立使用者證明資料。

更多資訊: DBMS_CLOUD CREATE_CREDENTIAL 程序

建立資料目錄連線 資料庫資料目錄管理員

若要起始自治式 AI 資料庫執行處理與資料目錄執行處理之間的連線,使用者會呼叫 DBMS_DCAT.SET_DATA_CATALOG_CONN 來指定目標資料目錄執行處理。支援從自治式 AI 資料庫執行處理連線至多個資料目錄執行處理。

資料目錄執行處理的連線必須使用具備足夠 Oracle Cloud Infrastructure (OCI) 權限的使用者證明資料。

建立連線之後,就會以 DBMS_DCAT 命名空間和自訂特性更新「資料目錄」執行處理 (如果尚未存在)。使用者可以執行查詢來查看新連線,包括所有目前的連線:

select * from all_dcat_connections;

更多的資訊: SET_DATA_CATALOG_CONN 程序UNSET_DATA_CATALOG_CONN 程序

建立選擇性同步 資料庫資料目錄管理員

選取要同步的「資料目錄」物件來建立同步工作。使用者可以:

  • 選取要同步的資料資產 / 資料夾。
  • 選取要同步的個別邏輯實體。
  • 同步前先預覽產生的外部表格。
  • 修改「資料目錄」上的自訂特性來變更外部表格 (例如名稱)。

如需詳細資訊:請參閱 CREATE_SYNC_JOB 程序DROP_SYNC_JOB 程序同步對應

與資料目錄同步 資料庫資料目錄管理員

使用者起始同步作業。同步是透過 DBMS_DCAT.RUN_SYNC 程序呼叫手動起始,或在排定的同步工作中自動起始。

同步作業會根據「資料目錄」內容和同步選擇項目,建立、修改及刪除外部表格和綱要。使用「資料目錄自訂特性」套用手動組態。

如需詳細資訊:請參閱 DBMS_DCAT RUN_SYNC 程序CREATE_SYNC_JOB 程序同步對應

監控同步及檢視日誌 資料庫資料目錄管理員 使用者可以查詢 USER_LOAD_OPERATIONS 檢視來檢視同步狀態。同步處理完成後,使用者可以檢視同步結果的日誌,包括邏輯實體與外部表格的對應相關明細。
授予權限 資料庫資料目錄查詢管理員,資料庫管理員 資料庫「資料目錄查詢管理員」或資料庫管理員必須將產生之外部表格上的 READ 授予資料分析員使用者。這可讓資料分析師查詢產生的外部表格。
瀏覽及查詢外部表格 資料分析人員

資料分析師可以透過任何支援 Oracle SQL 的工具或應用程式來查詢外部表格。

「資料分析師」可以複查 DCAT$\* 綱要中同步的綱要和表格,以及使用 Oracle SQL 查詢表格。

更多資訊:同步對應

終止與資料目錄的連線 資料庫資料目錄管理員

若要移除現有的「資料目錄」關聯,使用者會呼叫 UNSET_DATA_CATALOG_CONN 程序。

只有當不再計畫使用「資料目錄」以及衍生自目錄的外部表格時,才會執行此動作。此動作會刪除資料目錄描述資料,並從自治式 AI 資料庫執行處理刪除同步的外部表格。資料目錄和 OCI 原則上的自訂特性不受影響。

更多資訊: UNSET_DATA_CATALOG_CONN 程序

範例:MovieStream 案例

在此情況下,Moviestream 會擷取物件儲存之登陸區中的資料。接著會使用這些資料中的許多資料 (但不一定全部) 來饋送自治式 AI 資料庫。在饋送自治式 AI 資料庫之前,資料會進行轉換、清理,並隨後儲存在「黃金」區域中。

資料目錄可用來收集這些來源,然後提供資料的業務相關資訊環境。資料目錄中繼資料與自治式 AI 資料庫共用,讓自治式 AI 資料庫使用者能夠使用 Oracle SQL 查詢這些資料來源。此資料可載入至自治式 AI 資料庫,或使用外部表格動態查詢。

如需有關使用資料目錄的詳細資訊,請參閱資料目錄文件

  1. 物件存放區 - 複查儲存桶、資料夾和檔案

    1. 複查物件存放區中的儲存桶。

      例如,以下是物件儲存中的著陸 (moviestream_landing) 和黃金區域 (moviestream_gold) 儲存桶:

    2. 複查物件存放區儲存桶中的資料夾和檔案。

      例如,以下是物件儲存中登陸儲存桶 (moviestream_landing) 中的資料夾:

  2. 資料目錄 - 建立檔案名稱樣式

    1. 通知資料目錄如何使用檔案名稱模式組織資料。這些是用來分類檔案的正規表示式。資料目錄收集器會使用檔案名稱樣式來衍生邏輯實體。以下兩個檔案名稱樣式用於收集 MovieStream 範例中的儲存桶。請參閱將物件儲存檔案收集為邏輯資料實體,瞭解建立檔案名稱樣式的進一步詳細資訊。

      Hive 樣式 資料夾樣式
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • 建立包含 ".db" 作為物件名稱第一個部分之來源的邏輯實體。
      • 為了確保儲存桶內的唯一性,結果名稱為 (db-name) . (資料夾名稱)
      • 根據根目錄的資料夾名稱建立邏輯實體
      • 為了避免與 Hive 重複,會略過其中含有 ".db" 的物件名稱。
    2. 若要建立檔案名稱樣式,請前往「資料目錄」的檔案名稱樣式頁籤,然後按一下建立檔案名稱樣式。例如,以下是 moviestream 資料目錄的建立檔案名稱樣式頁籤:

  3. 資料目錄 - 資料資產建立

    1. 建立用於從物件存放區收集資料的資料資產。

      例如,名為 phoenixObjStore 的資料資產會在 moviestream 資料目錄中建立:

    2. 新增資料資產連線。

      在此範例中,資料資產會連線至 moviestream 物件儲存資源的區間。

    3. 現在,請將您的檔案名稱樣式與您的資料資產關聯。選取指派檔案名稱樣式,檢查您要的樣式,然後按一下指派

      例如,以下是指派給 phoenixObjStore 資料資產的樣式:

      assign_filename_patterns_v1.png 圖解描述

    4. 資料目錄 - 從物件存放區收集資料

      a. 收集資料目錄資料資產。選取包含來源資料的物件存放區儲存桶。

      在此範例中,選取了物件存放區的 moviestream_gold 和 ` moviestream_landing` 儲存桶進行收集。

      b. 執行工作後,您會看到邏輯實體。您可以使用瀏覽資料資產來複查它們。

      在此範例中,您正在查看 customer-extension 邏輯實體及其屬性。

      如果您有詞彙,「資料目錄」會建議要與實體及其屬性關聯的類別和詞彙。這會提供項目的業務內容。綱要、表格和資料欄有時無法自我說明。

      在我們的範例中,我們想要區分不同類型的儲存桶及其內容的意義:

      • 什麼是登陸區?

      • 資料的準確性如何?

      • 上次更新的時間?

      • 邏輯實體或其屬性的定義為何

    5. 自治式 AI 資料庫 - 連線至資料目錄

      將自治式 AI 資料庫連線至資料目錄。您必須確定用於建立該連線的證明資料使用授權存取資料目錄資產的 OCI 主要項目。如需進一步資訊,請參閱資料目錄原則

      a. 連線至資料目錄

      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL (
           credential_name => 'OCI_NATIVE_CRED',
           user_ocid              => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
           tenancy_ocid           => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
           private_key            => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
           fingerprint            => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
      END;
      
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI_NATIVE_CRED'
      define dcat_ocid = 'ocid1.datacatalog.oc1.iad.aaaaaaaardp66bg....twiq'
      define dcat_region='us-ashburn-1'
      define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
      define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      -- Query a private bucket to test the privileges.
      select *
        from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      --------
      
      -- Set the credentials to use for object store and data catalog
      
      -- Connect to Data Catalog
      
      -- Review connection
      
      ---------
      
      -- Set credentials
      exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
      exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      
      -- Connect to Data Catalog
      begin
        dbms_dcat.set_data_catalog_conn (
           region => '&dcat_region',
           catalog_id => '&dcat_ocid');
      end;
      /
      
      -- Review the connection
      select * from all_dcat_connections;
      

      b. 將資料目錄與自治式 AI 資料庫同步。在這裡,我們將同步所有物件儲存資產:

      -- Sync Data Catalog with Autonomous Database
      
      ---- Let's sync all of the assets.
      begin
        dbms_dcat.run_sync('{"asset_list":["*"]}');
      end;
      /
      
      -- View log
      select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
      select * from dbms_dcat$1_log;
      
      -- View the new external tables
      select * from dcat_entities;
      select * from dcat_attributes;
      

      c. 自治式 AI 資料庫 - 現在開始對物件存放區執行查詢。

      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre;
      
    6. 變更物件的綱要

      預設綱要名稱相當複雜。讓我們藉由在「資料目錄」中指定資產和資料夾的 Oracle-Db-Schema 自訂屬性來簡化它們。將資料資產分別變更為 PHX 和資料夾分別變更為 landinggold。綱要是兩者的串連。

      a. 從「資料目錄」瀏覽至 moviestream_landing 儲存桶,然後分別將資產變更為 landinggold

      變更之前:

      變更之後:

      b. 執行其他同步。

範例:分割的資料案例

此案例說明如何在自治式 AI 資料庫中建立以從物件存放區中分割資料收集之資料目錄邏輯實體為基礎的外部表格。

下列範例是以「範例:MovieStream Scenario」為基礎,已改為示範與分割資料整合。資料目錄可用來收集這些來源,然後提供資料的業務相關資訊環境。如需此範例的進一步詳細資訊,請參閱範例:MovieStream Scenario。

如需有關使用資料目錄的詳細資訊,請參閱資料目錄文件

  1. 物件存放區 - 複查儲存桶、資料夾和檔案

    1. 複查物件存放區中的儲存桶。

      例如,以下是物件儲存中的著陸 (moviestream_landing) 和黃金區域 (moviestream_gold) 儲存桶:

    2. 複查物件存放區儲存桶中的資料夾和檔案。

      例如,以下是物件儲存中登陸儲存桶 (moviestream_landing) 中的資料夾:

  2. 資料目錄 - 建立檔案名稱樣式

    1. 通知資料目錄如何使用檔案名稱模式組織資料。這些是用來分類檔案的資料夾前置碼或正規表示式。資料目錄收集器會使用檔案名稱樣式來衍生邏輯實體。指定資料夾前置碼時,「資料目錄」會自動從物件存放區中指定的資料夾前置碼產生邏輯實體。以下檔案名稱樣式用於收集 MovieStream 範例中的儲存桶。請參閱將物件儲存檔案收集為邏輯資料實體,瞭解建立檔案名稱樣式的進一步詳細資訊。

      資料夾前置碼 描述
      workshop.db/ 建立物件存放區中包含 "workshop.db" 路徑之來源的邏輯實體。
    2. 若要建立檔案名稱樣式,請前往「資料目錄」的檔案名稱樣式頁籤,然後按一下建立檔案名稱樣式。例如,以下是 moviestream 資料目錄的建立檔案名稱樣式頁籤:

  3. 資料目錄 - 建立資料資產

    1. 建立用於從物件存放區收集資料的資料資產。

      例如,名為 amsterdamObjStore 的資料資產會在 moviestream 資料目錄中建立:

    2. 新增資料資產連線。

      在此範例中,資料資產會連線至 moviestream 物件儲存資源的區間。

    3. 現在,請將您的檔案名稱樣式與您的資料資產關聯。選取指派檔案名稱樣式,檢查您要的樣式,然後按一下指派

      例如,以下是指派給 amsterdamObjStore 資料資產的樣式:

  4. 資料目錄 - 從物件存放區收集資料

    1. 收集資料目錄資料資產。選取包含來源資料的物件存放區儲存桶。

      在此範例中,選取了物件存放區的 moviestream_gold 和 ` moviestream_landing` 儲存桶進行收集。

    2. 執行工作後,您會看到邏輯實體。您可以使用瀏覽資料資產來複查它們。

      在此範例中,您正在查看 sales_sample_parquet 邏輯實體及其屬性。請注意,「資料目錄」已將 month 屬性識別為已分割。

  5. 自治式 AI 資料庫 - 連線至資料目錄

    將自治式 AI 資料庫連線至資料目錄。您必須確定用於建立該連線的證明資料使用授權存取資料目錄資產的 OCI 主要項目。如需進一步資訊,請參閱資料目錄原則

    1. 連線至資料目錄

       BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
          credential_name => 'OCI_NATIVE_CRED',    user_ocid              => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
          tenancy_ocid           => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
          private_key            => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
          fingerprint            => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
       END;
      
       -- Variables are used to simplify usage later
       define oci_credential = 'OCI_NATIVE_CRED'
       define dcat_ocid = 'ocid1.datacatalog.oc1.eu-amsterdam-1....leguurn3dmqa'
       define dcat_region='eu-amsterdam-1'
       define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
       define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      
       -- Query a private bucket to test the privileges.
       select *
       from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      
       --------
      
       -- Set the credentials to use for object store and data catalog
      
       -- Connect to Data Catalog
      
       -- Review connection
      
       ---------
      
       -- Set credentials
       exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
       exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      
       -- Connect to Data Catalog
       begin
          dbms_dcat.set_data_catalog_conn (
            region => '&dcat_region',
            catalog_id => '&dcat_ocid');
       end;
       /
      
       -- Review the connection
       select * from all_dcat_connections;
      
    2. 將資料目錄與自治式 AI 資料庫同步。在這裡,我們將同步所有物件儲存資產:

       -- Sync Data Catalog with Autonomous Database
      
       ---- Let's sync all of the assets.
       begin
        dbms_dcat.run_sync('{"asset_list":["*"]}');
       end;
       /
      
      
       -- View log
       select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
       select * from dbms_dcat$1_log;
      
      
       -- View the new external tables
       select * from dcat_entities;
       select * from dcat_attributes;
      
    3. 自治式 AI 資料庫 - 現在開始對物件存放區執行查詢。

       -- Query the Data !
       select count(*) from DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING.SALES_SAMPLE_PARQUET;
      
      
       -- Examine the generated partitioned table
       select dbms_metadata.get_ddl('TABLE','SALES_SAMPLE_PARQUET','DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING') from dual;
      
       CREATE TABLE "DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING"."SALES_SAMPLE_PARQUET"
       (    "MONTH" VARCHAR2(4000) COLLATE "USING_NLS_COMP",
      
            "DAY_ID" TIMESTAMP (6),
            "GENRE_ID" NUMBER(20,0),
            "MOVIE_ID" NUMBER(20,0),
            "CUST_ID" NUMBER(20,0),
       ...
       )  DEFAULT COLLATION "USING_NLS_COMP"
       ORGANIZATION EXTERNAL
        ( TYPE ORACLE_BIGDATA
          ACCESS PARAMETERS
          ( com.oracle.bigdata.fileformat=parquet
            com.oracle.bigdata.filename.columns=["MONTH"]
            com.oracle.bigdata.file_uri_list="https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/*"
       ...
          )
        )
       REJECT LIMIT 0
       PARTITION BY LIST ("MONTH")
       (PARTITION "P1"  VALUES (('2019-01'))
          LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-01/*'),
       PARTITION "P2"  VALUES (('2019-02'))
          LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-02/*'),
       ...PARTITION "P24"  VALUES (('2020-12'))
          LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2020-12/*'))
       PARALLEL
      
  6. 變更物件的綱要

    預設綱要名稱相當複雜。讓我們藉由在「資料目錄」中指定資產和資料夾的 Oracle-Db-Schema 自訂屬性來簡化它們。將資料資產分別變更為 PHX 和資料夾分別變更為 landinggold。綱要是兩者的串連。

    1. 從「資料目錄」瀏覽至 moviestream_landing 儲存桶,然後分別將資產變更為 landinggold

      變更之前:

      變更之後:

    2. 執行其他同步。