Catalogs, databases, and tables
StarRocks は内部カタログを使用して内部データを管理し、外部カタログを使用してデータレイク内の外部データにアクセスします。StarRocks に保存されたデータは、1 つ以上のデータベースで構成される内部カタログ内で管理されます。データベースは、データを保存、管理、操作するために、テーブル、マテリアライズドビュー、ビューなどのさまざまなオブジェクトを管理します。StarRocks は、オブジェクトに対する操作を行うユーザーの権限を制御する権限システムを採用しており、データセキュリティを強化します。
Catalogs
カタログは、内部カタログと外部カタログに分類されます。各クラスターには、1 つ以上のデータベースを含むことができる唯一の内部カタログ default_catalog
があります。StarRocks クラスターの内部カタログは、クラスターにロードされたデータとマテリアライズドビューを管理します。StarRocks はデータウェアハウスとしてデータを保存するのに適しており、特に大規模データの複雑なクエリアナリティクスにおいてクエリパフォーマンスを大幅に向上させます。
一方、外部カタログはデータレイク内の外部データへのアクセスを可能にします。StarRocks をクエリエンジンとして使用し、データを StarRocks にロードせずにレイク内のデータを直接クエリできます。
Databases
データベースは、データを保存、管理、操作するためのテーブル、ビュー、マテリアライズドビューなどのデータオブジェクトの集合です。
Tables
テーブルは、内部テーブルと外部テーブルに分類されます。
Internal tables
内部テーブルは内部カタログで管理されます。内部テーブルのデータは StarRocks に保存されます。内部テーブルは内部カタログの下のデータベースで管理されます。内部テーブルは行と列で構成されており、各行はレコードを表し、各列はデータ行の属性またはフィールドを表します。
ここでの内部テーブルの行と列は論理的な概念です。StarRocks はテーブルに列指向(カラムナ)ストレージを使用しています。物理的には、列内のデータはデータブロックに分割され、エンコード、圧縮され、ディスクに永続的に保存されます。
StarRocks は、Primary Key tables、Duplicate Key tables、Aggregate tables、Unique Key tables の 4 種類の内部テーブルを提供しており、生データ、リアルタイムデータ、集計データなど、さまざまなビジネスニーズに対応するデータを保存できます。
内部テーブルは、パーティショニング + バケッティングという 2 層のデータ分散戦略を採用しており、均等なデータ分散を実現します。さらに、各バケットのレプリカは BEs 間で均等に分散され、高いデータ可用性を保証します。
External tables
外部テーブルは外部カタログで管理されます。外部テーブルのデータは実際には外部データソースに保存されています。StarRocks はこれらの外部テーブルのメタデータのみを保存し、これらのテーブルを使用して外部データソースからデータをクエリできます。
Materialized views
マテリアライズドビューは、1 つ以上のベーステーブルからの事前計算されたクエリ結果を保持する特別な物理テーブルです。マテリアライズドビューは、同期マテリアライズドビューと非同期マテリアライズドビューに分類されます。非同期マテリアライズドビューは、複数のベーステーブル(内部テーブルおよび外部テーブル)からの事前計算結果を保存でき、さまざまな集計演算子をサポートするため、より強力です。ベーステーブルで複雑なクエリが実行されると、StarRocks はマテリアライズドビューに保存された事前計算結果を自動的に再利用し、透明なクエリアクセラレーションを実現し、データレイクでのクエリを加速し、データモデリングを確立します。
Views
ビュー、または論理ビューは、データを保持しない仮想テーブルです。ビューは、他の既存の物理テーブルに対するクエリの結果としてのデータのみを表示します。ビューを定義するクエリは、クエリ内でビューが参照されるたびに実行されます。
Privileges
権限は、どのユーザーがどのオブジェクトに対してどの操作を実行できるかを決定します。StarRocks は、アイデンティティベースのアクセス制御とロールベースのアクセス制御の 2 種類の権限モデルを採用しています。最初に権限をロールに割り当て、次にロールをユーザーに割り当てることができます。この場合、権限はロールを通じてユーザーに渡されます。または、ユーザーのアイデンティティに直接権限を割り当てることもできます。
Data storage in storage-compute separation architecture
v3.0 以降、StarRocks は新しいストレージとコンピュートの分離(共有データ)アーキテクチャを導入しました。データストレージは BEs から分離されています。データはリモートのオブジェクトストレージまたは HDFS に永続的に保存され、ローカルディスクはホットデータのキャッシュに使用され、クエリを加速します。