全部產品
Search
文件中心

E-MapReduce:資料目錄

更新時間:Mar 13, 2025

StarRocks自2.3版本起支援Catalog(資料目錄)功能,實現在一套系統內同時維護內、外部資料,方便您輕鬆訪問並查詢儲存在各類外部源的資料。本文為您介紹什麼是Catalog, 以及如何使用Catalog管理和查詢內外部資料。

基本概念

  • 內部資料:指儲存在StarRocks中的資料。

  • 外部資料:指儲存在外部資料源中的資料,例如Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake及JDBC等。

Catalog介紹

當前,StarRocks提供兩種類型的Catalog:Internal Catalog(內部資料目錄)和External Catalog(外部資料目錄)。

  • Internal Catalog:內部資料目錄,用於管理StarRocks所有內部資料。例如,執行CREATE DATABASE和CREATE TABLE語句建立的資料庫和資料表都由Internal Catalog管理。 每個StarRocks叢集都有且只有一個Internal Catalog名為default_catalog。

  • External Catalog:外部資料目錄,用於串連外部Metastore。在StarRocks中,您可以通過External Catalog直接查詢外部資料,無需進行資料匯入或遷移。當前支援建立以下類型的External Catalog:

    使用External Catalog查詢資料時,StarRocks會用到外部資料源的兩個組件:

    • 中繼資料服務:用於將中繼資料暴露出來供StarRocks的FE進行查詢規劃。

    • 儲存系統:用於儲存資料。資料檔案以不同的格式儲存在Distributed File System或Object Storage Service系統中。當FE將產生的查詢計劃分發給各個BE(或CN)後,各個BE(或CN)會並行掃描Hive儲存系統中的目標資料,並執行計算返回查詢結果。

使用Catalog

  • 方式一:您可以在SQL Editor中使用SET CATALOG <catalog_name>語句。

  • 方式二:在Catalog下拉式清單中直接切換當前會話裡生效的Catalog,然後通過該Catalog查詢資料。

    image

查詢資料

查詢內部資料

如要查詢儲存在StarRocks中的資料,請參見Default Catalog

查詢外部資料

如要查詢儲存在外部資料源中的資料,請參見查詢外部資料

跨Catalog查詢資料

如果您想在一個Catalog中查詢其他Catalog中資料,可通過catalog_name.db_namecatalog_name.db_name.table_name的格式來引用目標資料。

  • default_catalog.olap_db下查詢hive_catalog中的hive_table

    SELECT * FROM hive_catalog.hive_db.hive_table;
  • hive_catalog.hive_db下查詢default_catalog中的olap_table

    SELECT * FROM default_catalog.olap_db.olap_table;
  • hive_catalog.hive_db中,對hive_tabledefault_catalog中的olap_table進行聯邦查詢。

    SELECT * FROM hive_table h JOIN default_catalog.olap_db.olap_table o WHERE h.id = o.id;
  • 在其他目錄下,對hive_catalog中的hive_tabledefault_catalog中的olap_table進行聯邦查詢。

    SELECT * FROM hive_catalog.hive_db.hive_table h JOIN default_catalog.olap_db.olap_table o WHERE h.id = o.id;