テーブルタイプ
テーブル作成時にテーブルタイプを指定し、1つ以上のカラムをソートキーとして定義する必要があります。これにより、作成したテーブルにデータが初めてロードされる際に、StarRocks はソートキーに基づいてデータをソート、処理、保存できます。このトピックでは、StarRocks が提供するさまざまなビジネス要件に対応するテーブルタイプについて説明します。
基本概念
テーブルタイプ
StarRocks は 4 つのテーブルタイプを提供します: 重複キーテーブル、集計テーブル、ユニークキーテーブル、および主キーテーブル。これらの 4 つのテーブルタイプは、ログ分析、データ集計と分析、リアルタイムデータ分析など、幅広いデータ分析シナリオに適しています。
ソートキー
特定のテーブルタイプを使用して作成されたテーブルにデータがロードされると、テーブル作成時にソートキーとして定義された 1 つ以上のカラムに従ってデータがソートされ、保存されます。ソートキーは通常、クエリでフィルター条件として頻繁に使用される 1 つ以上のカラムであり、クエリを高速化します。
重複キーテーブルでは、DUPLICATE KEY
で指定されたソートキーがデータをソートするために使用され、UNIQUE 制約は割り当てられません。
集計テーブルでは、AGGREGATE KEY
で指定されたソートキーがデータをソートするために使用され、UNIQUE 制約が割り当てられます。
ユニークキーテーブルでは、UNIQUE KEY
で指定されたソートキーがデータをソートするために使用され、UNIQUE 制約が割り当てられます。
主キーテーブルでは、主キーとソートキーが分離されています。PRIMARY KEY
で指定された主キーには UNIQUE および NOT NULL 制約が割り当てられます。ORDER BY
で指定されたソートキーはデータのソートに使用されます。
注意
- v3.0 より前のバージョンでは、主キーテーブルは主キーとソートキーを別々に定義することをサポートしていません。
- ソートキーの詳細については、 Sort keys and prefix indexes を参照してください。
注意事項
-
テーブルが作成された後、そのテーブルタイプを変更することはできません。たとえば、重複キーテーブルを主キーテーブルに変更することはできません。新しい主キーテーブルを作成する必要があります。
-
ソートキーのカラムは、テーブル作成のステートメントで他のカラムよりも前に定義する必要があります。
-
テーブル作成のステートメントでのソートキーのカラムの順序は、テーブル内の行がソートされる条件の順序を指定します。
-
テーブルのプレフィックスインデックスの長さは 36 バイトに制限されています。ソートキーのカラムの合計長が 36 バイトを超える場合、StarRocks はプレフィックスインデックスの長さ制限内の最初のいくつかのソートキーのカラムのみを保存します。
-
テーブルにロードされるレコードが同じ主キーを持つ場合、StarRocks はテーブルタイプに基づいてレコードを処理し、保存します:
-
重複キーテーブル
StarRocks は各レコードを個別の行としてテーブルにロードします。データロードが完了すると、テーブルには同じ主キーを持つ行が含まれ、行はソースレコードと一対一の関係を持ちます。ロードしたすべての履歴データを呼び出すことができます。
-
集計テーブル
StarRocks はレコードを集計し、集計されたレコードを行としてテーブルにロードします。ロードが完了すると、テーブルには同じ主キーを持つ行は含まれません。ロードしたすべての履歴データの集計結果を呼び出すことができますが、すべての履歴データを呼び出すことはできません。
-
ユニークキーテーブルと主キーテーブル
StarRocks は新たにロードされたレコードを以前にロードされたレコードで置き換え、最も最近ロードされたレコードのみをテーブルの行として保持します。ロードが完了すると、テーブルには同じ主キーを持つ行は含まれません。ユニークキーテーブルと主キーテーブルは、同じ主キーを持つレコードのグループの中で最も最近のレコードを返すために、メトリックカラムに REPLACE 集計関数が指定された特別な集計テーブルと見なすことができます。
-