
Alex
10.10.2017
08:43:10
по времени выполнения

Nikolai
10.10.2017
08:44:25

Cargeh
10.10.2017
08:54:05
Я правильно понимю, что данное сообщение в логах:
Merge sorted 154000 rows, containing 16 columns (1 merged, 15 gathered)
говорит о том, что кликхаус отсортировал 154 тыс колонок? Если я отсортирую до вставки - это облегчит жизнь?
Или что значат данные в скобках?

Konstantin
10.10.2017
08:55:46

Google

Alex
10.10.2017
08:56:31
просто выбрать уникальные значения из стобца
столбца*
так хочеться чтобы оно быстрей отрабатывало:)
ненасытный)

Konstantin
10.10.2017
08:58:19
наверное оптимизировать особо не получится, можно было бы сделать материализованное представление в котором хранились бы уникальные значения country

Alex
10.10.2017
08:58:59
хм. не слышал про материализованное представления. надо читкануть.

Ilya
10.10.2017
09:03:18

Alex
10.10.2017
09:08:55
Может есть какие-то особенные настройки сервера (системы), которые могут замедлять работу? про своп я читал. выключить надо
стоит ubuntu 1604

Nikolai
10.10.2017
09:10:09

Cargeh
10.10.2017
09:10:38

Alex
10.10.2017
09:12:06
Для небольших объемов данных (до ~200 Гб в сжатом виде) лучше всего использовать столько памяти не меньше, чем объем данных.
Это цитата. как понять что это? типа 200 гигов оперативы надо?

Google

Paul
10.10.2017
09:17:12

Nikolai
10.10.2017
09:17:46

Alex
10.10.2017
09:18:47
у вас запрос немного по другому, чем я пробовал с дистинктом. я его просто поставил между селектом и тостринг

Nikolai
10.10.2017
09:19:52
Да, второй вариант без явного group by чуть быстрее сработал.

Alex
10.10.2017
09:20:15
проверяю щас.
SELECT toStringCutToZero(country) FROM ( SELECT DISTINCT country FROM audience_statistic_segments ) FORMAT Null
SELECT toStringCutToZero(country)
FROM
(
SELECT DISTINCT country
FROM audience_statistic_segments
)
FORMAT Null
124 rows in set. Elapsed: 284.901 sec. Processed 6.72 billion rows, 470.62 GB (23.60 million rows/s., 1.65 GB/s.)
:) SELECT toStringCutToZero(country) FROM audience_statistic_segments group by country FORMAT Null
SELECT toStringCutToZero(country)
FROM audience_statistic_segments
GROUP BY country
FORMAT Null
124 rows in set. Elapsed: 125.884 sec. Processed 6.72 billion rows, 470.65 GB (53.41 million rows/s., 3.74 GB/s.)
а получил деградацию(
хотя количество строк отличаются у меня
Николай я смотрю у вас скрость обработки 12+ г в секунду
что за железо? или у вас 450 нод))
на 6 датацентрах)
@kochetovnicolai


Nikolai
10.10.2017
09:40:50
да, наверное, из-за разницы в количестве строк. Можно еще поиграться с настройками preferred_block_size_bytes (или preferred_block_size_bytes)
нет, машина одна :)

Alex
10.10.2017
09:41:29
разница в 12 раз)
точней в 10)
а что за машина?
я так понимаю моя амазоновская кусок пластмассы)))
c4.xlarge 4 ядра и 8 гигов оперативы
но оператива вижу вообще не юзается

Google

Nikolai
10.10.2017
09:44:03
значит, наверное, дело в диске. хотя, у нас разные данные

Alex
10.10.2017
09:44:15
а что у вас за железо?
думаю может амазон слабо выдает

Nikolai
10.10.2017
09:45:36
или, например, вот из-за этого:
┌─divide(countIf(notEquals(DeviceModel, \'\')), count(DeviceModel))─┐
│ 0.20725478303925826 │
└───────────────────────────────────────────────────────────────────┘

Alex
10.10.2017
09:47:15
можете поясгнить что это?

Ilya
10.10.2017
09:48:50
Какая версия CH? На каком запросе ошибка?
Что говорит
select distinct _table from ...
?
:) select distinct _table from events limit 10
SELECT DISTINCT _table
FROM events
LIMIT 10
┌─_table───┬─_table───┐
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
│ dst_dv02 │ dst_dv02 │
└──────────┴──────────┘
10 rows in set. Elapsed: 0.017 sec. Processed 1.18 million rows, 2.36 MB (70.89 million rows/s., 141.77 MB/s.)
:)

Nikolai
10.10.2017
09:49:12

Ilya
10.10.2017
09:49:17
Версия 1.1.54245
Причём в любом запросе столбец _table возвращается:
:) select count() from events2
SELECT count()
FROM events2
┌─_table───┬───count()─┐
│ dst_dv02 │ 140190634 │
└──────────┴───────────┘
1 rows in set. Elapsed: 0.033 sec. Processed 140.19 million rows, 280.38 MB (4.30 billion rows/s., 8.61 GB/s.)
:)

Nikolai
10.10.2017
09:57:26
интересно. может быть, колонка _table есть в таблицах, над которыми Merge?

Ilya
10.10.2017
09:58:02
:) create table tmp2 engine=MergeTree(date, date, 8192) as select date,_table from events2 limit 100
CREATE TABLE tmp2 ENGINE = MergeTree(date, date, 8192) AS
SELECT
date,
_table
FROM events2
LIMIT 100
Received exception from server:
Code: 15. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Duplicate column _table in block.
0 rows in set. Elapsed: 0.033 sec.
:)
А если попросить вставить ещё и солбец _table то тоже получаем закономерную ошибку


Bulat
10.10.2017
10:00:18

Ilya
10.10.2017
10:01:37

Nikolai
10.10.2017
10:03:11
Было первое о чём я подумал. Но нет.
Ясно. А можете воспроизвести на простом примере?
Ну или описать структуру всех таблиц (Merge и то, над чем Merge), чтобы я смог у себя воспроизвести?

Ilya
10.10.2017
10:06:10

Тефтеля
10.10.2017
10:06:33
Всем привет, где можно почитать milestone для кх? Хочется узнать, планируется ли транзакицонность?)

Ilya
10.10.2017
10:06:35
Мне кажется проблема началась после добавления новых столбцов.

Nikolai
10.10.2017
10:07:46

Google

Bulat
10.10.2017
10:07:57

Тефтеля
10.10.2017
10:08:12

Bulat
10.10.2017
10:08:21
вроде как нет и не планируется. слишком дорого и сложно

Dasha
10.10.2017
10:25:21
Добрый день! А верно, что в Tableau таблицу из ClickHouse нельзя открыть на вкладке DataSource. У меня пока вышло только sql запрос простой написать. Какие тут еще есть ограничения на работу с ClickHouse?

Alexander
10.10.2017
10:46:05
Здравствуйте, необходимо использовать СУБД для хранения всякой истории, так же необходимо делать выборку по истории(Посчитать что-либо). Ключевые поля типа string(на первый взгляд). По идее задача вписывается в рамки данной СУБД. Что вы можете сказать по этому поводу?
Но: бест практис это сделать много колонок типов инт и считать по ним(ну это для статы). Однако здесь получается варьируемое поле string

Ivan
10.10.2017
10:49:57
привет, я поднял кластер из двух шардов по две реплики в каждом, создал на них ReplicatedMergeTree-таблицу с датой в качестве ключа и Distributed, которая на неё смотрит. когда делаю даже простейшую выборку, SELECT *, в Distributed ровно в два раза больше элементов по сравнению с replicated (у каждого есть дубль). я что-то делаю не так, или это ожидаемый эффект? вставляю в Distributed.

Nikolai
10.10.2017
10:55:17

Ivan
10.10.2017
10:55:27
да, но такое было даже при false

Nikolai
10.10.2017
10:56:36
можете показать конфигурацию кластера?

Ivan
10.10.2017
10:58:20
да, разумеется. https://paste.yandex-team.ru/306144
replica в макросах у всех разная

Александр
10.10.2017
11:05:01
Даже с like запросами. Данные в пределах одной ноды, без шардинга

Nikolai
10.10.2017
11:08:06

Alexander
10.10.2017
11:08:08
фейково партиционированы? можно bin(md5()) ?)

Александр
10.10.2017
11:08:49

Ivan
10.10.2017
11:08:54

Александр
10.10.2017
11:09:02
Пока партиционирование только по дате

Google

Nikolai
10.10.2017
11:09:48

Иван
10.10.2017
11:10:09
Гайз, где-нибудь есть мануал по добавлению функций в локальный кликхаус? (Нужно расстояние левенштейна)

Andrey
10.10.2017
11:16:23

Ivan
10.10.2017
11:19:20

Алексей
10.10.2017
11:34:56
господа, а что можно сделать что бы на ридонли конекшене избежать уставновки max_result_rows в jdbc подключении через datagrip ?

Иван
10.10.2017
11:38:38

Alex
10.10.2017
11:42:29
При INSERT ... SELECT в случае несоответствия полей падает вся реплика. У кого-то бывало такое? лог https://pastebin.com/wXR6sRUa

Andrey
10.10.2017
11:44:26
Есть ли (или когда появится) возможность переименовывать столбцы? В документации нет rename на колонку.

Nikolai
10.10.2017
11:44:40

Alex
10.10.2017
11:45:19
@kochetovnicolai а вот эти амазоновские EBS они лучше, чем купить отдельные диски SSD на сервер?
и что вообще кликхаус больше любит, диск или проц?

Nikolai
10.10.2017
11:52:38
второе зависит от запроса. если надо что-то прочитать из диапазона, то диск. Если что-то более сложное, то может упереться в проц и память. Лучше смотреть узкие места для конкретных случаев.
Про сравнение с EBS сказать не могу. Интуиция подсказывает, что лучше купить отдельные SSD, но не более.

Alex
10.10.2017
12:44:12
Добрый день. Скажите, в какую партицию попадают данные с датой меньше 1970 года?
Тип таблицы MergeTree

Roman
10.10.2017
12:53:54

Alex
10.10.2017
12:54:52
Roman костыль на амазоне?