@clickhouse_ru

Страница 90 из 723
Pavel
16.03.2017
15:05:48
а в чем особенность EC2 в сравнении с не EC2? :)

CH очень гуманен к нагрузке на диск, что обычно узкое место в облаках

Dig
16.03.2017
15:06:18
Диски EBS

Pavel
16.03.2017
15:07:54
у нас на SATA работает прилично

Google
Dig
16.03.2017
15:08:57
Я правильно понимаю, что нужно три инстансы, на которых запустить по ZooKepeerу и на них же по серверу СН?

Andrey
16.03.2017
15:10:00
CH там не обязателен. Зукиперу просто нужен кворум

т.е. можно на 2х поставить CH и зукипер, а на третьем только зукипер

не знаю зачем, но такой конфиг будет работать

Dig
16.03.2017
15:11:35
Так как правильно создать конфигурацию? Сколько машин нужно, для "спать спокойно"?

Pavel
16.03.2017
15:11:52
3/5/7+

Fike
16.03.2017
15:12:18
2N + 1, где N - число машин, потерю которых вы планируете пережить

Andrey
16.03.2017
15:13:46
Самому CH пофиг сколько будет нод. А вот зукиперу который держит состояние кластера, нужно нечетное количество чтобы избежать split brain (когда сервера теряют связанность пополам)

Vitaliy
16.03.2017
15:14:41
@milovidov_an Алексей, здравствуйте. Поясните, пожалуйста, такой момент. 1. создал две таблицы CREATE TABLE wssg.sales_access_logs_local (Date Date, TimeStamp DateTime, HostName String, Method String, UriPath String, UriParam String, HttpStatus Int16, UpstreamTime Float32, RecieveBytes UInt64, UserId String, Ip String, SessionId String, AuthType String, AuthSource String, UserIpHash UInt64, UserUriPathHash UInt64, UserUriHash UInt64, UserUriIpHash UInt64, UserSessionHash UInt64, UserSessionIpHash UInt64, UserSessionUriPathHash UInt64, UserSessionUriHash UInt64, UserSessionUriIpHash UInt64) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{logsshard}/sales_access_logs', '{replica}', Date, (TimeStamp, UserId), 8192) CREATE TABLE wssg.sales_access_logs (Date Date, TimeStamp DateTime, HostName String, Method String, UriPath String, UriParam String, HttpStatus Int16, UpstreamTime Float32, RecieveBytes UInt64, UserId String, Ip String, SessionId String, AuthType String, AuthSource String, UserIpHash UInt64, UserUriPathHash UInt64, UserUriHash UInt64, UserUriIpHash UInt64, UserSessionHash UInt64, UserSessionIpHash UInt64, UserSessionUriPathHash UInt64, UserSessionUriHash UInt64, UserSessionUriIpHash UInt64) ENGINE = Distributed(logs, wssg, sales_access_logs, rand()); 2. начал писать в Distributed таблицу и select из неё же, появились ошибки, что типа привышен лимит одновременных запросов. В списке процессов были вставки в Distributed таблицу. 3. мне подсказали, что лучше вставлять в локальные таблицы. 4. решил удалить созданные талицы. Локальные удалились нормально, а вот Distributed только после перезапуска нод clickhouse. После этого в списке процессов было пусто. 5. создал снова таблицы. сделал show processlist, и там опять вставка в Distributed таблицу. что то я не понимаю как работает система :) Расскажите, пожалуйста.
А на пункте 4 в process list'e были активные вставки в distributed-таблицу? Если да, то она не могла удалиться так как была заблокирована активными вставками. Почему вставки длились так долго - отдельный вопрос.

Dig
16.03.2017
15:15:54
Для зукипера нужно минимум 3. Можно ли на эти же машины ставить СН для репликации? Извините, если вопросы глупые.

Andrey
16.03.2017
15:16:52
Если ставить вместе с СН то при падении сервера целиком, пропадет и нода зукипера и это ок. Остальные ноды разрулят ситуацию

Google
Dig
16.03.2017
15:18:52
Спасибо, буду пробовать разобраться.

Andrey
16.03.2017
15:21:38
Я например частенько использую такую схему. На всех серверах с CH стоит Zookeeper + еще один Zookeeper на сервере клиентского приложения(если оно серверное). Таким образом при разрывах сети, вероятность того что мастером станет та часть которая "видна" клиентскому приложению, выше.

т.е. я сохраню не просто доступность CH, а доступность CH для клиентского приложения

Dmitry
16.03.2017
15:22:30
Вообще зависит конечно от размера кластера, если кластер большой, лучше выносить ЗК отдельно

Dig
16.03.2017
15:24:02
И еще вопрос - приложение работает с одним сервером, он упал, переключаемся на другой?

Andrey
16.03.2017
15:24:05
Согласен. У меня речь идет о 20-30 нодах

И еще вопрос - приложение работает с одним сервером, он упал, переключаемся на другой?
да. Только вот не знаю умеет ли это клиент делать автоматически.

Dmitry
16.03.2017
15:33:40
балансер поверх натянуть

Andrey
16.03.2017
15:35:04
кстати да. Какой нибудь haroxy еще и умные метрики даст

Pavel
16.03.2017
15:38:10
с учетом таймаутов это будет крайне сложно

у нас CH за балансером и это задрало честно говоря

достаточно задать чуточку более сложный вопрос и оно сбрасывает коннект до первого бэкэнда и отправляет на второй и там тоже обламывается и валится

время выполнения крайне сложно прогнозировать, а балансер без него смысла особого не имеет

Andrey
16.03.2017
15:40:39
можно выкрутить таймауты и добавить проверку живости ноды.

Fike
16.03.2017
15:41:53
можно действительно отслеживать по какому-нибудь хелсу (SELECT 1), а не времени выполнения запроса

насколько помню, у хапрокси с этим все в порядке было

Andrey
16.03.2017
15:43:20
да, у запрокси есть админский сокет через который можно управлять ею скриптами

Pavel
16.03.2017
15:46:38
если кто молодец, поделиьесь практикой :)

Andrey
16.03.2017
15:51:05
Практикой чего, управления haproxy?

Pavel
16.03.2017
15:52:45
ага, под CH

Google
Pavel
16.03.2017
15:52:51
со скриптами :)

Andrey
16.03.2017
16:45:48
> > >Также пользователь default используется при распределённой обработки запроса - система ходит на удалённые серверы под ним. Поэтому, у пользователя default должен быть пустой пароль и не должно быть выставлено существенных ограничений или квот - иначе распределённые запросы сломаются. Эта информация из документации актуальна? То есть пользователь default - фактически админский пользователь в бд, которому при этом пароль нельзя прописать не поломав функциональность бд?

Dmitry
16.03.2017
16:47:50
можно явно указать под каким пользователем делать распределенные запросы

Andrey
16.03.2017
16:49:43
можно явно указать под каким пользователем делать распределенные запросы
А, ну то есть документация в этом месте не совсем корректна.

Спасибо

Dmitry
16.03.2017
16:50:45
Pull request'ы в документацию приветствуется :))

Алексей
16.03.2017
17:09:36
т.е. можно на 2х поставить CH и зукипер, а на третьем только зукипер
у нас так кластер навернулся:) CH и ZK были на одной машине, она стала недоступна, соответственно развалился кластер зукипера и кликхаус перешел в режим только чтение

Andrey
16.03.2017
17:18:34
у нас так кластер навернулся:) CH и ZK были на одной машине, она стала недоступна, соответственно развалился кластер зукипера и кликхаус перешел в режим только чтение
Ну собственно на это случай и делается несколько нод. Чтобы при выходе из строя одной, остальные продолжали работать.

Vladimir
16.03.2017
17:27:52
А в кликхаус нет функций для распаковки base64, да? Судя по поиску по сорцам, в libpoco-то есть функции для работы с base64, но в КХ — нет...

А есть в КХ внешние функции на разных языках программирования?

f1yegor
16.03.2017
17:33:38
спасибо. буду теперь добавлять графики в графану.
Можете проверить мой дашборд и переделать род графит https://grafana.com/dashboards/882

Рассказывают сейчас одному таварищу про КХ.

f1yegor: В исходниках проекта NYC benchmark поищи

@milovidov_an может статьёй опубликовать?

Pavel
16.03.2017
19:14:43
ребят, не допираю, что-то не так с коннектом на локалхост, какой-то он у вас особенный

https://gist.github.com/pavel-odintsov/49a8adcebbe5df1e654fe107d64df712

перевесил CH на 127.0.0.1 по соображениям безопасности и отвалился клиент.

Google
Pavel
16.03.2017
19:15:16
clickhouse-client ClickHouse client version 1.1.54164. Connecting to localhost:9000. Code: 210. DB::NetException: Connection refused: (localhost:9000, ::1)

стало быть, пытается он на localhost

стало быть:

ping localhost -c 1 PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.052 ms —- localhost ping statistics —- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.052/0.052/0.052/0.000 ms

на 127.0.0.1

но если указать локалхост:

clickhouse-client —host localhost ClickHouse client version 1.1.54164. Connecting to localhost:9000. Code: 210. DB::NetException: Connection refused: (localhost:9000, ::1)

сбой

а если указать 127.0.0.1 - все ОК

Dmitry
16.03.2017
19:15:53
Он пытается на ::1 подключиться

Pavel
16.03.2017
19:15:55
clickhouse-client —host 127.0.0.1 ClickHouse client version 1.1.54164. Connecting to 127.0.0.1:9000. Connected to ClickHouse server version 1.1.54164. :) Bye.

Dmitry
16.03.2017
19:16:02
Ipv6

Pavel
16.03.2017
19:16:03
ах, айпи ви сикс этот ваш.

Dmitry
16.03.2017
19:16:34
А повесили вы его только на v4

Pavel
16.03.2017
19:16:35
ок, переживем) значит фича, а не бага

Dmitriy
16.03.2017
19:20:18
подскажите пожалуйста, а можно заставить КХ слать метрики в графит чаще чем одну минуту?

nikoinlove
16.03.2017
19:29:26
Обещали сделать но пока вроде нет

prll
16.03.2017
19:54:34
https://github.com/yandex/ClickHouse/pull/603

Pavel
16.03.2017
22:34:10
а конвертации 32битных чисел между little и bigendian нету? :(

и следом вопрос - в каком даныне пожмутся лучше, если я их в CH волью как little или как big endian? Подразумевая, что машина, конечно же, little endian

Google
Pavel
16.03.2017
23:52:40
select dstAsn, count(dstAsn) as cnt from traffic group by dstAsn order by cnt desc limit 10 SELECT dstAsn, count(dstAsn) AS cnt FROM traffic GROUP BY dstAsn ORDER BY cnt DESC LIMIT 10 ┌─dstAsn─┬───cnt─┐ │ 12345 │ 37709 │ │ 41341 │ 2590 │ │ 123123 │ 1837 │ │ 4414 │ 1326 │ │ 4123 │ 1285 │ │ 3123 │ 843 │ │ 4123 │ 798 │ │ 11 │ 678 │ │ 123 │ 555 │ │ 33 │ 550 │ └────────┴───────┘

похвастаюсь рабочей бд трафика под sflow/netflow/span:) закончил, наконец-то :)

papa
17.03.2017
00:01:03
в каком виде числа лучше пожались?

Pavel
17.03.2017
00:09:52
хрен знает) я полагаю C++ либа конвертирует их в литтл эндиан либо наоборот, пришлось вкостыливать еще одну конверсию

Рулон
17.03.2017
06:38:47
Привет! Скажите пожалуйста. Добавил новый столбец ALTER TABLE [db].name ADD а в движке ENGINE = MergeTree( ..не появилось новое поле)

hamper ?
17.03.2017
07:28:21
А кто чем обычно мигрирует кх?

Рулон
17.03.2017
08:22:25
Andrey
17.03.2017
08:22:55
Что простите?)
весь запрос покажите

Slach
17.03.2017
08:23:17
полный запрос на ALTER TABLE и текущую структуру таблицы =)

Рулон
17.03.2017
08:24:50
ALTER TABLE table1 ADD COLUMN network_id Int64 DEFAULT 0;

Alex
17.03.2017
08:29:10
А где он должен был появиться в движке? Там же только столбцы с датой и столбцы первичного ключа.

Рулон
17.03.2017
08:37:09
а как надо было?

Vitaliy
17.03.2017
08:38:11
А чего вы хоите добиться? Можете показать show create table до и после?

Рулон
17.03.2017
08:38:52
Ну задача добавить поле network_id

Alex
17.03.2017
08:40:34
Новый столбец же не добавится в первичный ключ

Первичный ключ при альтерах нельзя менять, иначе придётся всю таблицу пересортировывать

Vitaliy
17.03.2017
08:41:48
Ок, просто вы сказали движок, и люди подумали, что вы хотите поменять первичный ключ таблицы (т.е. все что после ENGINE в ответе SHOW CREATE TABLE)

Рулон
17.03.2017
09:53:32
Спасибо!

Добавлю это в Faq )

Страница 90 из 723