* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
3.8 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | e8cd92bba3 |
35 | AggregatingMergeTree |
Aggregatingmergetree
Motor devralır MergeTree, veri parçaları birleştirme mantığı değiştirme. ClickHouse, tüm satırları aynı birincil anahtarla değiştirir (veya daha doğru olarak, aynı sıralama anahtarı) tek bir satırla (bir veri parçası içinde), toplama işlevlerinin durumlarının bir kombinasyonunu saklar.
Kullanabilirsiniz AggregatingMergeTree
artımlı veri toplama, toplanan materialized görünümleri de dahil olmak üzere tablolar.
Motor tüm sütunları ile işler AggregateFunction tür.
Kullanmak uygundur AggregatingMergeTree
siparişlere göre satır sayısını azaltırsa.
Tablo oluşturma
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE = AggregatingMergeTree()
[PARTITION BY expr]
[ORDER BY expr]
[SAMPLE BY expr]
[TTL expr]
[SETTINGS name=value, ...]
İstek parametrelerinin açıklaması için bkz. istek açıklaması.
Sorgu yan tümceleri
Oluştururken bir AggregatingMergeTree
tablo aynı yanlar oluşturul ,urken olduğu gibi gerekli MergeTree
Tablo.
Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
!!! attention "Dikkat" Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE [=] AggregatingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity)
Tüm parametreler, aşağıdaki gibi aynı anlama sahiptir MergeTree
.
Seç Ve Ekle
Veri eklemek için şunları kullanın INSERT SELECT agrega-Devlet-fonksiyonları ile sorgu.
Veri seçerken AggregatingMergeTree
tablo kullanın GROUP BY
yan tümce ve veri eklerken aynı toplama işlevleri, ancak kullanarak -Merge
sonek.
Sonuç inlarında SELECT
sorgu, değerleri AggregateFunction
türü, Tüm ClickHouse çıktı biçimleri için uygulamaya özgü ikili gösterime sahiptir. Örneğin, veri dökümü, TabSeparated
ile format SELECT
sorgu daha sonra bu dökümü kullanarak geri yüklenebilir INSERT
sorgu.
Toplu Bir Somutlaştırılmış Görünüm örneği
AggregatingMergeTree
saatler hayata görünüm test.visits
Tablo:
CREATE MATERIALIZED VIEW test.basic
ENGINE = AggregatingMergeTree() PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate)
AS SELECT
CounterID,
StartDate,
sumState(Sign) AS Visits,
uniqState(UserID) AS Users
FROM test.visits
GROUP BY CounterID, StartDate;
Veri ekleme test.visits
Tablo.
INSERT INTO test.visits ...
Veriler hem tablo hem de görünümde eklenir test.basic
toplama işlemini gerçekleştir .ecektir.
Toplanan verileri almak için, aşağıdaki gibi bir sorgu yürütmemiz gerekir SELECT ... GROUP BY ...
görünüm fromden test.basic
:
SELECT
StartDate,
sumMerge(Visits) AS Visits,
uniqMerge(Users) AS Users
FROM test.basic
GROUP BY StartDate
ORDER BY StartDate;