DC
Size: a a a
DC
VF
DC
CREATE MATERIALIZED VIEW test_materialized_view
ENGINE = MergeTree
PARTITION BY a ORDER BY (a, b, c, d, e, f, g, h)
Где a, b - String
Всего строк ~500M
Разных значений a около 10
Разных значений b - 3
При этом долго выполняется запрос вида:
SELECT a, b
FROM test_materialized_view
GROUP BY a, b
ORDER BY a, b;
ORDER BY (a, b
поможет? или о что?DC
DC
CREATE MATERIALIZED VIEW foo.events_importance (
`count` AggregateFunction(count),
`time` DateTime('UCT'),
`importance` String,
`_date` Date
) ENGINE = AggregatingMergeTree()
PARTITION BY toDate(time)
ORDER BY (toDate(time), importance)
SETTINGS index_granularity = 8192 AS
SELECT
countState() AS count,
toStartOfMinute(toDateTime(time)) AS time,
importance,
toDate(time) AS _date
FROM foo.events
GROUP BY time, importance
SELECT
GROUP BY time, importance
-- гранулярность секундаPARTITION BY toDate(time)
ORDER BY (toDate(time), importance)
-- гранулярность деньAggregatingMergeTree
схлапывает по своему ORDER BY
, оно вообще не в курсе что есть MV, AggregatingMergeTree
живет отдельной жизнью`_date` Date
зачем вообще ?AC
DC
S
D
20.13.1.5273
create table trg(A Int64, S String) Engine=MergeTree order by A;
cl -q ' select toInt64(number) A, toString(number) S from numbers(100000000) format TSV' > t.tsv
cl --max_insert_block_size=100000000 -q 'insert into trg format TSV' <t.tsv
select count(), min(rows), max(rows) from system.parts where active and table='trg'
┌─count()─┬─min(rows)─┬─max(rows)─┐
│ 1 │ 100000000 │ 100000000 │
└─────────┴───────────┴───────────┘
truncate table trg;
cl -q ' select toInt64(number) A, toString(number) S from numbers(100000000) format Native' > t.native
cl --max_insert_block_size=100000000 -q 'insert into trg format Native' <t.native
select count(), min(rows), max(rows) from system.parts where active and table='trg'
┌─count()─┬─min(rows)─┬─max(rows)─┐
│ 6 │ 890935 │ 32293965 │
└─────────┴───────────┴───────────┘
AM
D
AC
MV
C
DC
D
MV
DC
DC
D