テーブルタイプ
テーブル作成時にテーブルタイプを指定し、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 はレコードを1つのレコードに集計し、集計されたレコードを行としてテーブルにロードします。ロードが完了すると、テーブルには同じ主キーを持つ行は含まれません。ロードしたすべての履歴データの集計結果を呼び出すことができますが、すべての履歴データを呼び出すことはできません。
-
ユニークキーテーブルと主キーテーブル
StarRocks は以前にロードされた各レコードを新しくロードされたレコードで置き換え、テーブルには最新のロードされたレコードのみを行として保持します。ロードが完了すると、テーブルには同じ主キーを持つ以前の行は含まれません。同じユニークキー/主キーを含む最新のレコードのみが保持されます。ユニークキーテーブルと主キーテーブルは、同じ主キーを持つレコードのグループの中で最も最近のレコードを返すためにメトリックカラムに REPLACE 集計関数が指定された特別な集計テーブルと見なすことができます。
-