メインコンテンツまでスキップ

Overview of table types

テーブルの種類

テーブルを作成する際には、テーブルタイプを指定し、1つまたは複数の列をソートキーとして定義する必要があります。これにより、作成したテーブルにデータが初めてロードされる際に、StarRocksはソートキーに基づいてデータをソート、処理、および格納することができます。このトピックでは、さまざまなビジネス要件に対応するためにStarRocksが提供するテーブルの種類について説明します。

基本的な概念

テーブルの種類

StarRocksは、4つのテーブルの種類を提供しています: Duplicate Keyテーブル、Aggregateテーブル、Unique Keyテーブル、Primary Keyテーブル。これら4つのテーブルの種類は、ログ解析、データの集計と分析、リアルタイムデータの解析など、さまざまなデータ分析シナリオに適しています。

ソートキー

特定のテーブルタイプを使用して作成されたテーブルにデータがロードされると、テーブル作成時にソートキーとして定義された1つ以上の列に基づいてデータがソートされて格納されます。ソートキーは通常、クエリのフィルタ条件として頻繁に使用される1つ以上の列であり、クエリの処理を高速化します。

Duplicate Keyテーブルでは、DUPLICATE KEYで指定されたソートキーを使用してデータをソートし、UNIQUE制約は割り当てられません。 Aggregateテーブルでは、AGGREGATE KEYで指定されたソートキーを使用してデータをソートし、UNIQUE制約が割り当てられます。 Unique Keyテーブルでは、UNIQUE KEYで指定されたソートキーを使用してデータをソートし、UNIQUE制約が割り当てられます。 Primary Keyテーブルでは、主キーとソートキーが切り離されています。PRIMARY KEYで指定された主キーには、UNIQUE制約とNOT NULL制約が割り当てられます。ORDER BYで指定されたソートキーはデータのソートに使用されます。

注意

  • v3.0より前のバージョンでは、Primary Keyテーブルは主キーとソートキーを別々に定義することをサポートしていません。
  • ソートキーや接頭辞インデックスの詳細については、ソートキーと接頭辞インデックスをご覧ください。

注意事項

  • ソートキーの列は、テーブル作成の文の中で他の列よりも前に定義する必要があります。
  • テーブル作成の文のソートキー列の順序は、テーブルの行がソートされる条件の順序を指定します。
  • テーブルの接頭辞インデックスの長さは、最大で36バイトまで制限されています。ソートキー列の総長が36バイトを超える場合、StarRocksはプレフィックスインデックスの長さ制限内の最初のいくつかのソートキー列のみを格納します。
  • テーブルにロードされるレコードが同じ主キーを持つ場合、StarRocksはテーブルの種類に基づいてレコードを処理し、格納します:
    • Duplicate KeyテーブルStarRocksは、各レコードを別々の行としてテーブルにロードします。データロードが完了すると、テーブルには同じ主キーを持つ行が存在し、行はソースレコードとの1対1の関係を持ちます。ロードしたすべての過去のデータを取り出すことができます。
    • AggregateテーブルStarRocksは、レコードを集約して1つのレコードにまとめ、集計されたレコードを行としてテーブルにロードします。ロードが完了すると、テーブルには同じ主キーを持つ行は存在しません。ロードした過去のデータの集計結果を取得することができますが、すべての過去のデータを取得することはできません。
    • Unique KeyテーブルとPrimary KeyテーブルStarRocksは、新しくロードされたレコードを以前にロードされたレコードで置き換え、最新のロードされたレコードのみをテーブルの行として保持します。ロードが完了すると、テーブルには同じ主キーを持つ行は存在しません。Unique KeyテーブルとPrimary Keyテーブルは、同じ主キーを持つレコード群の中から最新のレコードを返すためにメトリック列にREPLACE集計関数が指定された特殊なAggregateテーブルと見なすことができます。