すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:データ分析

最終更新日:Apr 03, 2025

このトピックでは、カタログとは何か、およびカタログを使用して内部データと外部データを管理およびクエリする方法について説明します。

用語

  • 内部データ: StarRocks に格納されているデータ。

  • 外部データ: Apache Hive、Apache Iceberg、Apache Hudi などの外部データソースに格納されているデータ。

カタログ

StarRocks 2.3 以降では、カタログを使用して、さまざまな外部データソースに格納されているデータに簡単にアクセスしてクエリを実行できます。 StarRocks は、内部カタログと外部カタログの 2 種類のカタログをサポートしています。

  • 内部カタログ: StarRocks クラスタ内のすべての内部データを管理するために使用されます。たとえば、CREATE DATABASE 文と CREATE TABLE 文を実行して作成されたデータベースとテーブルは、StarRocks クラスタの内部カタログで管理されます。各 StarRocks クラスタには、default_catalog という名前の内部カタログが 1 つだけあります。

  • 外部カタログ: データソースの種類や Hive メタストアの URI(Uniform Resource Identifier)など、外部データソースのアクセス情報を管理するために使用されます。 StarRocks では、外部カタログを使用して外部データを直接クエリできます。

    次の種類のデータソースの外部カタログを作成できます。

    外部カタログを使用して外部データソースからデータをクエリする場合、StarRocks は外部データソースの 2 つのコンポーネントを使用します。

    • メタデータサービス: StarRocks クラスタのフロントエンド(FE)がクエリプランを生成するためにメタデータを公開するために使用されます。

    • ストレージシステム: データを格納するために使用されます。データファイルは、分散ファイルシステムまたはオブジェクトストレージシステムにさまざまな形式で格納されます。 FE が生成されたクエリプランを各バックエンド(BE)に配布した後、各 BE は Hive ストレージシステム内の宛先データを並行してスキャンし、計算を実行してから、クエリ結果を返します。

データのクエリ

内部データのクエリ

詳細については、「デフォルトカタログ」をご参照ください。

外部データのクエリ

外部データソースに格納されているデータのクエリ方法の詳細については、「データレイク分析」をご参照ください。

カタログを跨ぐデータのクエリ

複数のカタログにわたるデータをクエリする場合は、catalog_name.db_name または catalog_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 カタログで、次の文を実行して、default_catalog カタログの hive_table テーブルと olap_table テーブルに対してフェデレーテッドクエリを実行します。

    SELECT * FROM hive_table h JOIN default_catalog.olap_db.olap_table o WHERE h.id = o.id;
  • 他のカタログで、次の文を実行して、hive_catalog カタログの hive_table テーブルと default_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;