Overview
このトピックでは、catalog とは何か、catalog を使用して内部データと外部データを管理およびクエリする方法について説明します。Catalog を使用すると、1 つのシステムで内部データと外部データを管理でき、さまざまな外部システムに保存されているデータを簡単にクエリおよび分析する柔軟な方法を提供します。
Basic concepts
- Internal data: CelerData に保存されているデータを指します。
- External data: Apache Hive™、Apache Iceberg、Apache Hudi、Delta Lake などの外部データソースに保存されているデータを指します。
Catalog
現在、CelerData は 2 種類の catalog を提供しています: internal catalog と external catalog。
-
Internal catalog は CelerData の内部データを管理します。たとえば、CREATE DATABASE または CREATE TABLE ステートメントを実行してデータベースまたはテーブルを作成すると、そのデータベースまたはテーブルは internal catalog に保存されます。各 CelerData クラスターには、default_catalog という名前の internal catalog が 1 つだけあります。
-
External catalog は外部で管理されているメタストアへのリンクのように機能し、CelerData に外部データソースへの直接アクセスを提供します。データロードや移行を行わずに外部データを直接クエリできます。 現在、CelerData は次の種類の external catalog をサポートしています:
- Hive catalog: Hive からデータをクエリするために使用されます。
- Iceberg catalog: Iceberg からデータをクエリするために使用されます。
- Hudi catalog: Hudi からデータをクエリするために使用されます。
- Delta Lake catalog: Delta Lake からデータをクエリするために使用されます。
- JDBC catalog: JDBC 互換のデータソースからデータをクエリするために使用されます。
CelerData は外部データをクエリする際に、外部データソースの次の 2 つのコンポーネントとやり取りします:
- Metadata service: FEs が外部データソースのメタデータにアクセスするために使用されます。FEs はメタデータに基づいてクエリ実行計画を生成します。
- Data storage system: 外部データを保存するために使用されます。分散ファイルシステムとオブジェクトストレージシステムの両方がデータストレージシステムとして使用され、さまざまな形式のデータファイルを保存できます。FEs がクエリ実行計画をすべての BEs に配布した後、すべての BEs が対象の外部データを並行してスキャンし、計算を行い、クエリ結果を返します。