* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
4.4 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
35 | ریزدانه |
ریزدانه
موتور به ارث می برد از ادغام, تغییر منطق برای ادغام قطعات داده. تاتر جایگزین تمام ردیف با کلید اصلی همان (یا با دقت بیشتر, با همان کلید مرتب سازی) با یک ردیف (در یک بخش یک داده) که ترکیبی از ایالت های توابع کل را ذخیره می کند.
شما می توانید استفاده کنید AggregatingMergeTree
جداول برای تجمع داده افزایشی, از جمله برای نمایش محقق جمع.
موتور پردازش تمام ستون ها با کارکرد نوع.
مناسب برای استفاده است AggregatingMergeTree
اگر تعداد ردیف ها را با دستور کاهش دهد.
ایجاد یک جدول
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, ...]
برای شرح پارامترهای درخواست را ببینید درخواست توضیحات.
بندهای پرسوجو
هنگام ایجاد یک AggregatingMergeTree
جدول همان بند در هنگام ایجاد یک مورد نیاز است MergeTree
جدول
روش منسوخ برای ایجاد یک جدول
!!! attention "توجه" هنوز این روش در پروژه های جدید استفاده کنید و, در صورت امکان, تغییر پروژه های قدیمی به روش بالا توضیح.
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)
همه پارامترها همان معنی را دارند MergeTree
.
انتخاب و درج
برای وارد کردن داده ها استفاده کنید INSERT SELECT پرس و جو با کل دولت توابع.
هنگام انتخاب داده ها از AggregatingMergeTree
جدول استفاده کنید GROUP BY
بند و توابع کل همان هنگام قرار دادن داده, اما با استفاده از -Merge
پسوند.
در نتایج SELECT
پرس و جو, ارزش AggregateFunction
نوع اجرای خاص نمایندگی دودویی برای همه فرمت های خروجی کلیک کنید. اگر کمپرسی داده ها به, مثلا, TabSeparated
قالب با SELECT
پرس و جو و سپس این روگرفت را می توان با استفاده از لود INSERT
پرس و جو.
به عنوان مثال از یک مشاهده محقق جمع
AggregatingMergeTree
مشاهده تحقق است که به تماشای test.visits
جدول:
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;
درج داده به test.visits
جدول
INSERT INTO test.visits ...
داده ها در هر دو جدول و مشخصات قرار داده شده test.basic
که تجمع انجام خواهد شد.
برای دریافت اطلاعات جمع, ما نیاز به اجرای یک پرس و جو مانند SELECT ... GROUP BY ...
از نظر test.basic
:
SELECT
StartDate,
sumMerge(Visits) AS Visits,
uniqMerge(Users) AS Users
FROM test.basic
GROUP BY StartDate
ORDER BY StartDate;