ClickHouse/docs/fa/engines/table-engines/mergetree-family/aggregatingmergetree.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

4.6 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 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;

مقاله اصلی