日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

湖倉一體

更新時間: 2024-05-14 10:44:47

本章節介紹如何通過云數據庫 SelectDB 版提供的聯邦查詢技術,對數據湖、數據庫、遠端文件等外部數據源進行聯邦分析。為您提供簡單、快速的數據分析體驗。

概述

云數據庫 SelectDB 版提供多源數據目錄功能(Multi-Catalog或Catalog),支持對接數據湖、數據庫等外部數據源,進行簡單快速地數據分析。Multi-Catalog功能在原有元數據層級之上新增一層Catalog,構成Catalog -> Database -> Table的三層元數據層級,Catalog可以直接對應到外部數據源。有關SelectDB支持的外部數據源,請參見數據湖分析數據庫分析

云數據庫 SelectDB 版也提供表函數功能(Table-Value-Function或TVF),支持把S3、HDFS等常見遠端存儲中的文件數據,映射成云數據庫 SelectDB 版中的表,從而方便地對這些文件數據進行分析,具體參見文件分析

在本文中,主要介紹Catalog相關概念及使用方式。Catalog功能擴展了SelectDB的能力,使其不僅限于管理內部數據,還能高效整合和查詢外部數據源。通過使用Catalog,您可以快速訪問和分析存儲在不同數據倉庫和存儲系統中的數據,從而實現更加靈活和全面的數據管理和分析。

基礎概念與操作

  • Internal Catalog

    SelectDB原有的Database和Table都歸屬于Internal Catalog。Internal Catalog是內置的默認Catalog,不可修改或刪除。

  • External Catalog

    可以通過CREATE CATALOG命令創建一個External Catalog。創建后,可以通過SHOW CATALOGS命令查看Catalog列表,或者SHOW CREATE CATALOG <catalog_name>;命令查詢某個Catalog的創建語句。

  • 切換Catalog

    您登錄SelectDB后,默認進入Internal Catalog,此時您可以通過SWITCH命令切換Catalog,示例如下。

    SWITCH internal;
    SWITCH hive_catalog;

    切換后,可以直接通過SHOW DATABASESUSE <db_name>等命令查看和切換對應Catalog中的Database。SelectDB會自動通過Catalog訪問外部數據源中的Database和Table,您可以像使用Internal Catalog一樣,對External Catalog中的數據進行查看和訪問。當前,云數據庫 SelectDB 版支持對External Catalog中的數據進行只讀訪問。

  • 刪除Catalog

    External Catalog中的Database和Table都是只讀的。但是如有必要,您可以通過DROP CATALOG <catalog_name>;命令刪除一個External Catalog(Internal Catalog無法刪除)。

    說明

    該操作僅會刪除SelectDB中該Catalog的映射信息,并不會修改或變更任何外部數據目錄的內容。

列類型映射

創建Catalog后,云數據庫 SelectDB 版會自動同步數據目錄的數據庫和表。針對不同的數據目錄和數據表格式,云數據庫 SelectDB 版會進行列與列之間的關系映射。

對于當前無法映射到SelectDB列類型的外表類型,如UNIONINTERVAL等。SelectDB會將列類型映射為UNSUPPORTED類型。對于UNSUPPORTED類型的查詢,示例如下:

-- 同步后的表Schema:
k1 INT,
k2 INT,
k3 UNSUPPORTED,
k4 INT

-- 查詢結果:
SELECT * FROM testtable;                // Error: Unsupported type 'UNSUPPORTED_TYPE' in '`k3`
SELECT * except(k3) FROM testtable;     // Query OK.
SELECT k1, k3 FROM testtable;           // Error: Unsupported type 'UNSUPPORTED_TYPE' in '`k3`
SELECT k1, k4 FROM testtable;           // Query OK.

SelectDB支持的數據類型可通過SHOW DATA TYPES;查看。關于不同外部數據源支持的數據類型,請參見數據湖分析數據庫分析

權限管理

默認情況下,SelectDB訪問External Catalog中的庫表時,是由SelectDB自身的權限訪問管理功能進行訪問控制。SelectDB的權限管理功能提供了對Catalog層級的擴展,更多信息請參見權限管理

指定數據庫

通過在Catalog配置中設置include_database_listexclude_database_list,可以指定需要同步的數據庫。

  • include_database_list:支持只同步指定的Database,以英文逗號(,)分隔,默認同步所有Database。Database名稱是區分大小寫的。

  • exclude_database_list:支持指定不需要同步的Database,以英文逗號(,)分隔,默認為空,表示同步所有Database。Database名稱是區分大小寫的。

重要
  • include_database_listexclude_database_list有重合的Database配置時,exclude_database_list的優先級更高。

  • 連接JDBC時,上述兩個配置需要和only_specified_database參數搭配使用,更多信息請參見JDBC數據源

元數據更新

默認情況下,外部數據源如創建、刪除表、加減列等元數據變動操作,不會同步給SelectDB。您可以通過以下幾種方式刷新元數據。

手動刷新

通過REFRESH命令手動刷新元數據。

語法

REFRESH CATALOG catalog_name;
REFRESH DATABASE [catalog_name.]database_name;
REFRESH TABLE [catalog_name.][database_name.]table_name;

刷新Catalog的同時,會強制使對象相關的Cache失效,包括Partition Cache、Schema Cache、File Cache等。

示例

  1. 刷新Catalog,示例如下。

    REFRESH CATALOG hive;
  2. 刷新Database,示例如下。

    REFRESH DATABASE ctl.database1;
    REFRESH DATABASE database1;
  3. 刷新Table,示例如下。

    REFRESH TABLE ctl.db.table1;
    REFRESH TABLE db.table1;
    REFRESH TABLE table1;

定時刷新

創建Catalog時,通過在properties中指定刷新時間參數metadata_refresh_interval_sec,可啟用定時刷新。定時刷新以秒為單位,若在創建Catalog時設置了該參數,FE的master節點會根據參數值定時刷新該Catalog。目前僅三種數據源支持定時刷新:

  • HMS:Hive Metastore。

  • ES:Elasticsearch。

  • JDBC:數據庫訪問的標準接口(JDBC)。

-- 設置catalog刷新間隔為20秒
CREATE CATALOG es PROPERTIES (
    "type"="es",
    "hosts"="http://127.0.0.1:9200",
    "metadata_refresh_interval_sec"="20"
);

自動刷新

目前僅Hive Catalog數據源的部分事件會自動刷新Catalog,更多信息請參見元數據緩存與刷新

上一篇: Runtime Filter 下一篇: 數據湖分析