mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2025-08-02 19:20:14 +03:00
Merge c1f14b4dad
into 45a9200ff6
This commit is contained in:
commit
89bb8cd0e0
|
@ -135,6 +135,19 @@ class CollapsingMergeTree(MergeTree):
|
||||||
return params
|
return params
|
||||||
|
|
||||||
|
|
||||||
|
class AggregatingMergeTree(MergeTree):
|
||||||
|
|
||||||
|
def __init__(self, date_col=None, order_by=(), sampling_expr=None,
|
||||||
|
index_granularity=8192, replica_table_path=None, replica_name=None, partition_key=None,
|
||||||
|
primary_key=None):
|
||||||
|
super(AggregatingMergeTree, self).__init__(date_col, order_by, sampling_expr, index_granularity,
|
||||||
|
replica_table_path, replica_name, partition_key, primary_key)
|
||||||
|
|
||||||
|
def _build_sql_params(self, db):
|
||||||
|
params = super(AggregatingMergeTree, self)._build_sql_params(db)
|
||||||
|
return params
|
||||||
|
|
||||||
|
|
||||||
class SummingMergeTree(MergeTree):
|
class SummingMergeTree(MergeTree):
|
||||||
|
|
||||||
def __init__(self, date_col=None, order_by=(), summing_cols=None, sampling_expr=None,
|
def __init__(self, date_col=None, order_by=(), summing_cols=None, sampling_expr=None,
|
||||||
|
|
|
@ -538,10 +538,10 @@ class QuerySet(object):
|
||||||
def final(self):
|
def final(self):
|
||||||
"""
|
"""
|
||||||
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
Adds a FINAL modifier to table, meaning data will be collapsed to final version.
|
||||||
Can be used with the `CollapsingMergeTree` and `ReplacingMergeTree` engines only.
|
Can be used with the `CollapsingMergeTree`, `ReplacingMergeTree` and `AggregatingMergeTree` engines only.
|
||||||
"""
|
"""
|
||||||
from .engines import CollapsingMergeTree, ReplacingMergeTree
|
from .engines import CollapsingMergeTree, ReplacingMergeTree, AggregatingMergeTree
|
||||||
if not isinstance(self._model_cls.engine, (CollapsingMergeTree, ReplacingMergeTree)):
|
if not isinstance(self._model_cls.engine, (CollapsingMergeTree, ReplacingMergeTree, AggregatingMergeTree)):
|
||||||
raise TypeError('final() method can be used only with the CollapsingMergeTree and ReplacingMergeTree engines')
|
raise TypeError('final() method can be used only with the CollapsingMergeTree and ReplacingMergeTree engines')
|
||||||
|
|
||||||
qs = copy(self)
|
qs = copy(self)
|
||||||
|
|
|
@ -73,6 +73,11 @@ class EnginesTestCase(_EnginesHelperTestCase):
|
||||||
engine = ReplacingMergeTree('date', ('date', 'event_id', 'event_group'), 'event_uversion')
|
engine = ReplacingMergeTree('date', ('date', 'event_id', 'event_group'), 'event_uversion')
|
||||||
self._create_and_insert(TestModel)
|
self._create_and_insert(TestModel)
|
||||||
|
|
||||||
|
def test_aggregating_merge_tree(self):
|
||||||
|
class TestModel(SampleModel):
|
||||||
|
engine = AggregatingMergeTree('date', ('date', 'event_group'))
|
||||||
|
self._create_and_insert(TestModel)
|
||||||
|
|
||||||
def test_tiny_log(self):
|
def test_tiny_log(self):
|
||||||
class TestModel(SampleModel):
|
class TestModel(SampleModel):
|
||||||
engine = TinyLog()
|
engine = TinyLog()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user