カタログ (データカタログ) は、内部データと外部データの両方を管理およびクエリするのに役立ちます。
用語
-
内部データ:StarRocks に保存されているデータ。
-
外部データ:Apache Hive、Apache Iceberg、Apache Hudi などの外部データソースに保存されているデータ。
カタログ
StarRocks 2.3 以降では、カタログ機能をサポートしており、さまざまな外部ソースからデータにアクセスしてクエリを実行できます。StarRocks には、内部カタログと外部カタログの 2 種類のカタログがあります。
-
内部カタログ:StarRocks 内のすべての内部データを管理します。たとえば、
CREATE DATABASEステートメントとCREATE TABLEステートメントで作成されたデータベースとテーブルは、内部カタログが管理します。各 StarRocks クラスターには、default_catalogという名前の内部カタログが 1 つだけあります。 -
外部カタログ:データソースの種類や Hive メタストアの URI など、外部データソースのアクセス情報を管理します。外部カタログを使用して、外部データを直接クエリできます。
StarRocks では、次のデータソースに対して外部カタログを作成できます。
-
Hive データソース:Hive データをクエリします。
-
Iceberg データソース:Iceberg データをクエリします。
-
Paimon データソース:Paimon データをクエリします。
-
Delta Lake データソース:Delta Lake データをクエリします。
外部カタログを使用してデータをクエリする場合、StarRocks は外部データソースの次の 2 つのコンポーネントを使用します。
-
メタデータサービス:クエリプランニングのために、メタデータを StarRocks フロントエンド (FE) に公開します。
-
ストレージシステム:データを保存します。データファイルは、分散ファイルシステムまたはオブジェクトストレージシステムにさまざまな形式で保存されます。FE は、生成されたクエリプランを各バックエンド (BE) に配布します。その後、各 BE は、ストレージシステム内のターゲットデータを並列でスキャンし、計算を実行して、クエリ結果を返します。
-
データのクエリ
内部データのクエリ
StarRocks に保存されているデータをクエリするには、「内部テーブル」をご参照ください。
外部データのクエリ
外部データソースに保存されているデータをクエリするには、「データレイク分析」をご参照ください。
カタログ間でのデータのクエリ
現在のカタログから別のカタログのデータをクエリするには、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から、hive_tableとdefault_catalog内の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;