184 похожих чатов

А тут, если без структуры как равномерно развернуть все массивы

в строки, когда это понадобится?

17 ответов

20 просмотров

могу написать пример или дать ссылку, если вы предоставите create table из трех полей, + insert, + и что нужно на выходе

Ekaterina- Автор вопроса
Denny [Altinity]
могу написать пример или дать ссылку, если вы пред...

У меня, вроде, получилось, как мне надо без Nested, просто поля SimpleFunction(grouparrayarray). И select выдал, что нужно, завтра всю структуру замучу с мат вью. Если будут еще вопросы, предоставлю пример. Спасибо!)

Ekaterina- Автор вопроса
Denny [Altinity]
могу написать пример или дать ссылку, если вы пред...

ver 21.11.4.14 ; --таблица источник для мат. вью - компании CREATE OR REPLACE TABLE Test.Company ( concern String, branch Int32, company String, inn String ) ENGINE = MergeTree ORDER BY (concern, branch) ; --таблица, аггрегирующая данные компаний по концернам и веткам во вложенную структуру CREATE OR REPLACE TABLE Test.Concern ( concern String, branch Int32, company SimpleAggregateFunction(groupArrayArray, Array(String)), inn SimpleAggregateFunction(groupArrayArray, Array(String)) ) ENGINE = AggregatingMergeTree ORDER BY (concern, branch) ; INSERT INTO Test.Company (concern, branch, company, inn) VALUES('concern1', 1, 'company1', '1234') ; INSERT INTO Test.Company (concern, branch, company, inn) VALUES('concern1', 1, 'company2', '2345') ; --при прямой вставке данных в аггрегирующую таблицу Test.Company из Test.Company массивы заполняются, как надо INSERT INTO Test.Concern (concern, branch, company, inn) SELECT concern, branch, array(company), array(inn) FROM Test.Company ; concern branch company inn concern1 1 ['company1','company2'] ['1234','2345'] ; SELECT concern, branch, company, inn FROM Test.Company ; SELECT concern, branch, company, inn FROM Test.Concern ; SELECT concern, branch, company, inn, inn_dif FROM Test.Concern ARRAY JOIN inn as inn_dif ; DROP TABLE Test.mv_Concern ; ------ИСПОЛЬЗОВАНИЕ МАТ. ВЬЮ --мат. вью вариант 1 CREATE MATERIALIZED VIEW Test.mv_Concern TO Test.Concern AS SELECT concern, branch, array(company), array(inn) FROM Test.Company ; --мат. вью вариант 2 CREATE MATERIALIZED VIEW Test.mv_Concern TO Test.Concern AS SELECT concern, branch, groupArray(company), groupArray(inn) FROM Test.Company GROUP BY concern, branch ; -- при вставке данных в таблицу - источник для мат. вью Test.Company, массивы в Test.Concern пустые concern branch company inn concern1 1 [] [] concern1 1 [] []

Ekaterina- Автор вопроса
Denny [Altinity]
могу написать пример или дать ссылку, если вы пред...

в общем, с мат.вью, почему-то не получилось, в коде выше все описано

Ekaterina
в общем, с мат.вью, почему-то не получилось, в код...

Я бы сказал, что это ожидаемое поведение. И почему это не выходит на первом слайде https://www.youtube.com/watch?v=1LVJ_WcLgF8&list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597s

Ekaterina- Автор вопроса
Константин
Я бы сказал, что это ожидаемое поведение. И почему...

я понимаю, что вставляются в указанную в мат.вью не из таблицы источника, а вставляется блок и в целевую таблицу и в мат. вью, но он же содержит нужные данные, но я, все равно не поняла, почему он эти данные не может превратить в массив, можно для идиотов на пальцах? о_О и, есть ли, все-таки, вариант накапливать данные во вложенных структурах внутри Clickhouse, без работы внешних сервисов?

Ekaterina
я понимаю, что вставляются в указанную в мат.вью н...

Ещё раз посмотрите видео, вы не поняли. Каждая вставка разбивается на несколько десятков потоков, и каждый поток отдельно обрабатывает MV

Ekaterina- Автор вопроса
Ekaterina
ver 21.11.4.14 ; --таблица источник для мат. вью -...

я идиота кусок, дело в алиасах в запросе в мат. вью, вопрос снимается, но если есть предложения сделать это лучше, буду рада!

Ekaterina
я идиота кусок, дело в алиасах в запросе в мат. вь...

лучше не сделать. вариант мат вью без групбай вставляет больше строк, но optimize_on_insert включен по дефолту поэтому это не важно, AggregatingMergeTree само сделает групбай в момент инсерта. вариант мат вью с групбай вставляет меньше строк, но ест больше памяти. наверное надо тестировать какой вариант быстрее

Ekaterina- Автор вопроса
Denny [Altinity]
лучше не сделать. вариант мат вью без групбай вст...

понял, я просто еще думала, может с Nested удасться это провернуть, чтобы потом в select делать array join с одним полем - вложенная структура, а не с каждым, которое просто массив

Ekaterina- Автор вопроса
Denny [Altinity]
лучше не сделать. вариант мат вью без групбай вст...

в любом случае, спасибо, буду тестировать оба варианта мат.вью

Ekaterina
понял, я просто еще думала, может с Nested удаст...

чтож вы все никак не хотите понять про синтаксический сахар. Там же просто колонки в таблице надо с точкой назвать типа A.a, A.b это тоже самое что и A Nested (a .., b..)

Ekaterina- Автор вопроса
Denny [Altinity]
чтож вы все никак не хотите понять про синтаксичес...

у меня таблица с названиями с точкой f.concern, f.branch не создается - ошибка

Ekaterina
у меня таблица с названиями с точкой f.concern, f....

мне из канады не видно ошибку, очень далеко. подозреваю что вы не указываете кавычки вокруг имен, либо двойные ", либо бэктики ` типа `A.a` Int64, `A.b` String

Ekaterina- Автор вопроса
Denny [Altinity]
мне из канады не видно ошибку, очень далеко. подо...

CREATE OR REPLACE TABLE Test.Concern ( concern String, branch Int32, f.company SimpleAggregateFunction(groupArrayArray, Array(String)), f.inn SimpleAggregateFunction(groupArrayArray, Array(String)) ) ENGINE = AggregatingMergeTree ORDER BY (concern, branch) Code: 62. DB::Exception: Syntax error: failed at position 237 ('.') (line 6, col 3): .company SimpleAggregateFunction(groupArrayArray, Array(String)), f.inn SimpleAggregateFunction(groupArrayArray, Array(String)) ) ENGINE = AggregatingMer. Expected one of: nested table, ALIAS, identifier, DEFAULT, data type, MATERIALIZED. (SYNTAX_ERROR) (version 21.11.4.14 (official build))

Ekaterina- Автор вопроса
Denny [Altinity]
мне из канады не видно ошибку, очень далеко. подо...

все, через "" получилось, и работает, спасибо!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта