使用 AWS Glue 資料目錄查詢外部資料
自治式 AI 資料庫支援與 Amazon AWS Glue Data Catalog 執行處理同步的系統。
關於使用 AWS Glue 資料目錄查詢
自治式 AI 資料庫可讓您與 Amazon Web 服務 (AWS) Glue 資料目錄描述資料同步。自治式 AI 資料庫會自動為 AWS Glue 所收集的每個表格建立資料庫外部表格,以瞭解儲存在 Amazon Simple Storage Service (S3) 中的資料。使用者可以從 Autonomous AI Database 查詢 S3 中儲存的資料,而不需要手動衍生外部資料來源的綱要並建立外部表格。
Amazon AWS Glue Data Catalog 是一項集中式描述資料管理服務,可協助資料專業人員尋找資料,並支援 AWS 雲端中的資料治理。自治式 AI 資料庫執行處理能夠將自動資料目錄描述資料與 AWS Glue 資料目錄同步,讓資料庫使用者能夠立即使用自治式 AI 資料庫查詢儲存在 AWS 雲端中的資料。
與 AWS Glue 資料目錄同步的特性與與 OCI 資料目錄同步的特性相同。同步是動態的,資料庫會與基礎資料的變更保持在最新狀態,並隨著自動維護數十到數千個表格的緣故,進而降低管理成本。
與使用 AWS Glue 資料目錄查詢相關的概念
若要查詢 Amazon Web Service (AWS) Glue 資料目錄,必須瞭解下列概念。
AWS Glue 資料目錄:資料庫
AWS Glue 資料庫代表關聯式表格定義的集合,組織於邏輯群組中。每個 AWS Glue 資料目錄執行處理都會管理多個資料庫。
AWS Glue 資料目錄:表格
AWS Glue 表格代表儲存於 AWS 雲端之資料的關聯式表格。AWS Glue 表格定義基礎資料的綱要,包含資料欄資訊、分割區資訊、序列化資訊、儲存資訊、統計資料、使用者定義的描述資料以及其他描述資料。AWS Glue 資料目錄中的表格可以手動建立,或使用 AWS Glue 蒐集程式自動建立。
Glue 資料目錄:Crawler
您可以使用蒐集程式將表格填入 AWS Glue 資料目錄。這是大多數 AWS Glue 使用者使用的主要方法。爬行者程式可以在單一執行中探索多個資料存放區。完成時,爬行者程式會在您的資料目錄中建立或更新一或多個表格。您在 AWS Glue 中定義的擷取、轉換與載入 (ETL) 工作會使用這些資料目錄表格作為來源與目標。ETL 工作會讀取並寫入來源和目標資料目錄表格中指定的資料存放區。
使用者可以手動建立 AWS Glue 表格,或使用預先定義或自訂蒐集程式自動建立。爬行者程式 (Crawler) 會連線至基礎資料存放區 (例如 Amazon S3)、呼叫分類器以衍生資料的綱要,以及建立用於儲存推斷描述資料的 AWS Glue 表格。AWS Glue 為一般檔案類型提供分類器,例如 CSV、JSON、Parquet 和 AVRO。
自治式 AI 資料庫與 AWS Glue 之間的對應
在同步處理期間,會在從 AWS Glue 資料目錄資料庫和透過 Amazon S3 的表格衍生的自治式 AI 資料庫中建立外部表格。
AWS Glue 會在資料庫和表格中組織收集的中繼資料。AWS Glue 資料庫是關聯式表格定義的集合。描述與表格關聯之檔案的一般綱要和特性的 AWS Glue 表格。
AWS Glue 會遵循代表屬性的關聯式模型。對於將階層式綱要對應至關聯式綱要,AWS Glue 會推斷半結構化資料的綱要,並使用 ETL 處理作業將資料清除至關聯式綱要。
下表代表 OCI 資料目錄概念與 AWS Glue 資料目錄概念之間的對應。
| OCI 資料目錄 | AWS Glue Data Catalog | Oracle Database |
|---|---|---|
| 資料資產 | Database | 綱要 |
| 資料夾 | (儲存桶) | 綱要 |
| 邏輯個體 | 表格 | 表格 |
使用 AWS Glue 資料目錄進行查詢的使用者工作流程
使用 AWS Glue Data Catalog 查詢 AWS S3 資料的基本使用者工作流程涉及連線至 AWS Glue Data Catalog、與 Autonomous AI Database 同步以自動建立外部表格,然後查詢 S3 資料。
「資料庫資料目錄管理員」會建立自治式 AI 資料庫執行處理與 AWS Glue 資料目錄執行處理之間的連線,然後在 AWS Glue 資料目錄和自治式 AI 資料庫之間設定並執行同步 (同步)。自治式 AI 資料庫會自動為 AWS Glue 收集的資料建立外部表格,以瞭解儲存在 S3 中的資料。
「資料庫資料目錄查詢管理員」或「資料庫管理員」將 READ 存取權授予產生的外部表格,讓「資料分析師」和其他資料庫使用者無須手動衍生外部資料來源的綱要並建立外部表格,即可瀏覽和查詢「自治式 AI 資料庫」。
使用者
下表說明執行使用者工作流程動作的不同類型使用者。
| User | 描述 |
|---|---|
| 資料庫資料目錄管理員 | 具備 DCAT_SYNC 角色的資料庫使用者。 |
| 資料庫資料目錄查詢管理員 | 能夠將自動建立之外部表格的存取權授予其他使用者的資料庫使用者。 |
| 資料分析人員 | Autonomous AI Database 上的資料庫使用者可透過查詢自動建立的外部表格或直接與 AWS Glue Data Catalog 互動來查詢 AWS S3 中的資料。 |
| AWS Glue 資料目錄使用者 | 可存取 AWS Glue 資料目錄的 AWS 使用者。 |
| AWS S3 物件儲存使用者 | 可存取 AWS S3 中所儲存資料的 AWS 使用者 |
使用者工作流程
注意:DBMS_DCAT 套裝程式可用來執行使用 AWS Glue Data Catalog 查詢 AWS S3 物件儲存所需的作業。請參閱 DBMS_DCAT 套件。
| 動作 | 使用者是誰 | 描述 |
|---|---|---|
| 建立原則 | 資料庫資料目錄管理員 | 自治式 AI 資料庫使用者證明資料必須具備適當的權限,才能存取 AWS Glue 資料目錄及從 S3 物件儲存讀取。 更多資訊:必要的證明資料和 IAM 原則。 |
| 建立證明資料 | 資料庫資料目錄管理員 | {::nomarkdown} <p> 確定已有資料庫證明資料可存取 AWS Glue 資料目錄及查詢 S3 物件儲存。使用者會呼叫 DBMS_CLOUD.CREATE_CREDENTIAL 來建立使用者證明資料。</p><p> 注意:僅支援 Amazon Web Services (AWS) 證明資料。不支援 AWS Amazon 資源名稱 (ARN) 證明資料。</p><p> 詳細資訊: DBMS_CLOUD CREATE_CREDENTIAL 程序, </p> |
| Connect | 資料庫資料目錄管理員 | 建立自治式 AI 資料庫執行處理與 AWS Glue 資料目錄執行處理之間的連線。此連線使用 AWS Glue 資料目錄使用者的權限。支援從自治式 AI 資料庫執行處理連線至多個 AWS Glue 資料目錄執行處理。 若要起始自治式 AI 資料庫執行處理與 AWS Glue 資料目錄執行處理之間的連線,使用者需:
建立連線之後,自治式 AI 資料庫會儲存關聯的描述資料,例如 AWS Glue 目錄 ID、區域、端點及證明資料物件。 更多的信息 ︰ SET_DATA_CATALOG_CONN 程序、 UNSET_DATA_CATALOG_CONN 程序、 DBMS_DCAT。SET_DATA_CATALOG_CREDENTIAL 、 DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL 。 |
| 同步 | 資料庫資料目錄管理員 | 使用者可以使用 同步化會執行下列作業:
|
| 監視器同步 | 資料庫資料目錄管理員 | 使用者可以查詢 USER_LOAD_OPERATIONS 檢視來檢視同步狀態。同步處理程序完成後,使用者可以檢視同步結果的日誌,包括對應至外部表格的詳細資料。 |
| 授予權限 | 資料庫資料目錄查詢管理員,資料庫管理員 | 資料庫「資料目錄查詢管理員」或「資料庫管理員」必須將產生之外部表格的 READ 權限授與資料分析員使用者。這可讓資料分析師查詢產生的外部表格。 |
| Query - 查詢 | 資料分析人員 | 資料分析師可以複查 GLUE$* 綱要中同步的綱要和表格,並透過任何支援 Oracle SQL 的工具或應用程式查詢外部表格。 S3 中的資料是使用 AWS S3 物件儲存使用者的權限來存取。 |
| 終止連線 | 資料庫資料目錄管理員 | 若要移除現有的「資料目錄」關聯,使用者會呼叫 只有當您不再計畫使用連線的 AWS Glue 資料目錄,以及衍生自目錄的外部表格時,才會執行此動作。此動作會刪除 AWS Glue 資料目錄描述資料,並且從自治式 AI 資料庫執行處理刪除同步的外部表格。 |
範例:使用 AWS Glue 資料目錄查詢
此範例會逐步引導您使用 AWS Glue 資料目錄,對儲存在 Amazon Simple Storage Service (Amazon S3) 中的資料集執行查詢。
在此範例中,會檢查 AWS Glue 資料目錄中的描述資料,以瞭解先前已蒐集哪些 Amazon S3 物件,並存在於資料目錄中。接著,自治式 AI 資料庫會與 AWS Glue Data Catalog 和 Amazon S3 建立關聯。資料目錄會與自治式 AI 資料庫同步,以透過儲存在 Amazon S3 的資料集建立外部表格。外部表格是用來查詢 Amazon S3 中的資料集。
-
檢查 AWS Glue 資料目錄中的描述資料。
-
啟動 AWS Glue 主控台。

-
瀏覽至資料目錄、資料庫及表格以尋找現有物件。
在此範例中,有些物件存在於 Amazon S3 中,AWS Glue 先前已蒐集並建立表格,如下所示:

-
-
建立 AWS Glue 與自治式 AI 資料庫的關聯。
-
在自治式 AI 資料庫中建立證明資料。
下列程序呼叫包含存取 ID 和秘密金鑰,以便讓自治式 AI 資料庫能夠存取 Amazon S3 中的基礎資料。
exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>'); -
將證明資料與 AWS Glue 資料目錄和 Amazon S3 物件儲存建立關聯。
這些程序呼叫會分別將資料目錄和物件儲存與證明資料建立關聯。
exec dbms_dcat.set_data_catalog_credential('CRED_AWS'); exec dbms_dcat.set_object_store_credential('CRED_AWS'); -
設定執行 Glue 的 AWS 區域。
exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
-
-
同步描述資料,以在從 AWS Glue 資料庫和表格衍生的自治式 AI 資料庫中建立外部表格。
-
關聯完成之後,請使用
all_glue_databases視觀表來尋找 AWS Glue 資料目錄中的資料庫。select * from all_glue_databases order by name; -
您可以使用
all_glue_tables視觀表取得可供同步的表格清單。select * from all_glue_tables order by database_name, name;
-
將自治式 AI 資料庫與
parq資料庫中的store和item這兩個表格同步。begin dbms_dcat.run_sync( synced_objects => ' { "database_list": [ { "database": "parq", "table_list": ["store","item"] } ] }', error_semantics => 'STOP_ON_ERROR'); end; /
-
-
檢查自治式 AI 資料庫中的新物件,並在 S3 上執行查詢。
-
使用 SQL Developer 檢視先前同步作業所建立的新物件。
GLUE$PARQ_TPCDS_ORACLE_PARQ綱要是由dbms_dcat.run_sync程序呼叫自動產生並命名。
-
對 Amazon S3 的資料集存放區執行 SQL 查詢。
SELECT * FROM glue$parq_tpcds_oracle_parq.store;
-