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