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

Duplicate Key table

デュープリケートキーテーブル

デュープリケートキーテーブルは、StarRocksのデフォルトのモデルです。テーブルを作成する際にモデルを指定しない場合、自動的にデュープリケートキーテーブルが作成されます。

デュープリケートキーテーブルを作成する際には、そのテーブルに対してソートキーを定義することができます。フィルタ条件にソートキーのカラムが含まれている場合、StarRocksはテーブルからデータを素早くフィルタリングしてクエリの処理を高速化することができます。デュープリケートキーテーブルでは、テーブルに新しいデータを追加することができますが、既存のデータを変更することはできません。

利用シナリオ

デュープリケートキーテーブルは、以下のようなシナリオに適しています:

  • 生データ(生ログや生の操作記録など)を分析する。
  • プリ集計方法に制約されず、さまざまな方法でデータをクエリする。
  • ログデータや時系列データをロードする。新しいデータは追記モードで書き込まれ、既存のデータは更新されません。

テーブルの作成

特定の時間範囲内のイベントデータを分析したいとします。この例では、detailという名前のテーブルを作成し、event_timeevent_typeをソートキーカラムとして定義します。

テーブルを作成するためのステートメント:

CREATE TABLE IF NOT EXISTS detail (
event_time DATETIME NOT NULL COMMENT "イベントの日時",
event_type INT NOT NULL COMMENT "イベントの種類",
user_id INT COMMENT "ユーザーID",
device_code INT COMMENT "デバイスコード",
channel INT COMMENT ""
)
DUPLICATE KEY(event_time, event_type)
DISTRIBUTED BY HASH(user_id);

注意

  • テーブルを作成する際は、DISTRIBUTED BY HASH句を使用してバケット化するカラムを指定する必要があります。詳細な情報については、バケット化を参照してください。
  • v2.5.7以降、StarRocksはテーブルを作成したりパーティションを追加したりする際に自動的にバケットの数(BUCKETS)を設定することができます。バケットの数を手動で設定する必要はもはやありません。詳細な情報については、バケットの数を決定するを参照してください。

使用上の注意点

  • テーブルのソートキーに関しては、以下の点に注意してください:
    • DUPLICATE KEYキーワードを使用して、ソートキーに使用するカラムを明示的に定義することができます。

      注意:デフォルトでは、ソートキーカラムが指定されていない場合、StarRocksは最初の3つのカラムをソートキーカラムとして使用します。

    • デュープリケートキーテーブルでは、ソートキーはいくつかまたはすべてのディメンションカラムで構成されることができます。

  • テーブル作成時には、ビットマップインデックスやブルームフィルタインデックスなどのインデックスを作成することができます。
  • 同一のレコードが2つロードされた場合、デュープリケートキーテーブルではそれらを2つのレコードとして保持します。

次の手順

テーブルが作成されたら、様々なデータインジェクション方法を使用してデータをStarRocksにロードすることができます。StarRocksでサポートされているデータインジェクション方法の情報については、データロードの概要を参照してください。

注意:デュープリケートキーテーブルを使用しているテーブルにデータをロードする場合、テーブルにデータを追記することしかできません。既存のデータをテーブル内で変更することはできません。