2016-07-31 9 views
4

パラメータにENGINEセクションを渡すことによってプライマリキーが作成されるドキュメントの例はほとんど見つかりませんでした。 しかし、ENGINEへの引数についての説明、その意味、および主キーの作成方法は見つかりませんでした。 ありがとうございます。この情報をドキュメントに追加するのは素晴らしいことです。ClickHouseでプライマリキーを作成する方法

答えて

5

主キーは、MergeTreeストレージエンジンファミリでサポートされています。 https://clickhouse.yandex/reference_en.html#MergeTree

最も深刻なタスクのために、あなたは MergeTree家族からエンジンを使用する必要があることに注意してください。

これは、ストレージエンジンのパラメータとして指定されています。

エンジンパラメータを受け入れる:日付を含む日付型の列の名前、サンプリング式(オプション)、テーブルの主キーを定義するタプル、およびインデックス粒度。

サポートをサンプリングなし例:

MergeTree(EventDate, (CounterID, EventDate), 8192) 

サンプリングをサポートしている例:

MergeTree(EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID)), 8192) 

ので、(CounterID, EventDate)または(CounterID, EventDate, intHash32(UserID))は、これらの例では主キーです。

ReplicatedMergeTreeを使用する場合、シャードとレプリカを識別する2つの追加パラメータもあります。

https://clickhouse.yandex/reference_en.html#Creating%20replicated%20tables

主キーは、テーブルの作成時に指定され、後で変更することができませんでした。

名前にもかかわらず、主キーは一意ではありません。これは、レンジクエリを最適な方法で処理するためのデータのソート順を定義するだけです。主キーの同じ値を持つ多くの行を表に挿入できます。

+0

ありがとうございました –

関連する問題