テーブルクラスタリング
StarRocks において、慎重に選ばれたソートキーは、物理設計の中で最も影響力のある要素です。このガイドでは、ソートキーがどのように機能するのか、そのシステム的な利点、そして自身のワークロードに対して効果的なキーを選ぶための具体的な手法を説明します。
例
あなたが毎日数十億行のデータを受信するテレメトリシステムを運用していると仮定します。各行には device_id
と ts
(タイムスタンプ)がタグ付けされています。ファクトテーブルで ORDER BY (device_id, ts)
を定義することで、以下が保証されます:
device_id
に対するポイントクエリがミリ秒単位で返されます。- ダッシュボードは各デバイスの最近の時間枠をフィルタリングし、ほとんどのデータをプルーニングします。
GROUP BY device_id
のような集計はストリーミング集計から利益を得ます。- 各デバイスごとの近接タイムスタンプのランにより圧縮が向上します。
このシンプルな2列のソートキー ORDER BY (device_id, ts)
は、数十億行にわたって I/O 削減、CPU 節約、より安定したクエリパフォーマンスを提供します。
CREATE TABLE telemetry (
device_id VARCHAR,
ts DATETIME,
value DOUBLE
)
ENGINE=OLAP
PRIMARY KEY(device_id, ts)
PARTITION BY RANGE (date_trunc('day', ts))
DISTRIBUTED BY HASH(device_id) BUCKETS 16
ORDER BY (device_id, ts);