• 01 December 2019 (3 messages)
  • @ArmenakBaburyan #130261 01:27 AM, 01 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Pythagor #130262 06:08 PM, 01 Dec 2019
    Joined.
  • @UMSynergy #130263 09:20 PM, 01 Dec 2019
    Joined.
  • 02 December 2019 (103 messages)
  • https://t.me/clickhouse_ru
    @zhdanov_alexander #130264 03:32 AM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @combot #130266 b o t 06:04 AM, 02 Dec 2019
    Alert! eSandesh Support Bacha is a known spammer and is CAS banned. Ban is strongly recommended.
  • https://t.me/clickhouse_ru
    @sker_is #130269 07:12 AM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @sker_is #130270 07:18 AM, 02 Dec 2019
    добрый день. столкнулся с проблемой
    (version 19.15.3.6 (official build)) (from thread 47) Received signal Segmentation fault (11).
    2019.12.02 08:03:40.646387 [ 48 ] {} <Fatal> BaseDaemon: Address: NULL pointer. Access: read. Address not mapped to object.
    2019.12.02 08:03:40.646512 [ 48 ] {} <Fatal> BaseDaemon: 3. 0x55575e9ae116 DB::Block::bytes() const /usr/bin/clickhouse
    2019.12.02 08:03:40.646554 [ 48 ] {} <Fatal> BaseDaemon: 4. 0x55575ea13106 DB::BlockStreamProfileInfo::update(DB::Block&) /usr/bin/clickhouse
    2019.12.02 08:03:40.646585 [ 48 ] {} <Fatal> BaseDaemon: 5. 0x55575ea19e83 DB::IBlockInputStream::read() /usr/bin/clickhouse
    2019.12.02 08:03:40.646615 [ 48 ] {} <Fatal> BaseDaemon: 6. 0x55575b8e87ed DB::TCPHandler::receiveData() /usr/bin/clickhouse
    2019.12.02 08:03:40.646642 [ 48 ] {} <Fatal> BaseDaemon: 7. 0x55575b8e92eb DB::TCPHandler::receivePacket() /usr/bin/clickhouse
    2019.12.02 08:03:40.646674 [ 48 ] {} <Fatal> BaseDaemon: 8. 0x55575b8e942e DB::TCPHandler::readDataNext(unsigned long const&, int const&) /usr/bin/clickhouse
    2019.12.02 08:03:40.646728 [ 48 ] {} <Fatal> BaseDaemon: 9. 0x55575b8e99be DB::TCPHandler::readData(DB::Settings const&) /usr/bin/clickhouse
    2019.12.02 08:03:40.646754 [ 48 ] {} <Fatal> BaseDaemon: 10. 0x55575b8e9c31 DB::TCPHandler::processInsertQuery(DB::Settings const&) /usr/bin/clickhouse
    2019.12.02 08:03:40.646780 [ 48 ] {} <Fatal> BaseDaemon: 11. 0x55575b8eb26d DB::TCPHandler::runImpl() /usr/bin/clickhouse
    2019.12.02 08:03:40.646806 [ 48 ] {} <Fatal> BaseDaemon: 12. 0x55575b8eb4fb DB::TCPHandler::run() /usr/bin/clickhouse
    2019.12.02 08:03:40.646834 [ 48 ] {} <Fatal> BaseDaemon: 13. 0x55575f71f3c0 Poco::Net::TCPServerConnection::start() /usr/bin/clickhouse
    2019.12.02 08:03:40.646860 [ 48 ] {} <Fatal> BaseDaemon: 14. 0x55575f71fadd Poco::Net::TCPServerDispatcher::run() /usr/bin/clickhouse
    2019.12.02 08:03:40.646889 [ 48 ] {} <Fatal> BaseDaemon: 15. 0x555760da9901 Poco::PooledThread::run() /usr/bin/clickhouse
    2019.12.02 08:03:40.646916 [ 48 ] {} <Fatal> BaseDaemon: 16. 0x555760da76ac Poco::ThreadImpl::runnableEntry(void*) /usr/bin/clickhouse
    2019.12.02 08:03:40.646942 [ 48 ] {} <Fatal> BaseDaemon: 17. 0x55576151ceb0 ? /usr/bin/clickhouse
    2019.12.02 08:03:40.646980 [ 48 ] {} <Fatal> BaseDaemon: 18. 0x7f28ef0b06db start_thread /lib/x86_64-linux-gnu/libpthread-2.27.so
    2019.12.02 08:03:40.647017 [ 48 ] {} <Fatal> BaseDaemon: 19. 0x7f28ee9cd88f clone /lib/x86_64-linux-gnu/libc-2.27.so
    гугление не помогло - пишут дескать в моей версии этот баг уже устранён, ан нет, я с ним таки столкнулся. можете подсказать как мне решить мою проблему?
  • https://t.me/clickhouse_ru
    @leidruid #130271 07:24 AM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #130272 08:10 AM, 02 Dec 2019
    всем привет, столкнулись с багом - на таблицу  MT добавили индексы, после чего перестало работать условие WHERE 1 = 1
  • https://t.me/clickhouse_ru
    @Sablast #130273 08:10 AM, 02 Dec 2019
    Code: 49, e.displayText() = DB::Exception: ColumnUInt8 expected as Set index condition result. (version 19.14.6.12 (official build))
  • https://t.me/clickhouse_ru
    Это баг и скорее всего уже пофикшен https://github.com/ClickHouse/ClickHouse/pull/7685
    Forbidden to use column name more than once in insert query. by alesapin · Pull Request #7685 · ClickHouse/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en Changelog category (leave one): Bug Fix Changelog entry (up to few sentences, not needed for non-signific...

  • https://t.me/clickhouse_ru
    @Alesapin #130275 08:14 AM, 02 Dec 2019
    обновитесь до последней 19.15
  • https://t.me/clickhouse_ru
    @sker_is #130276 08:15 AM, 02 Dec 2019
    так я же и привожу второй строчкой версию 19.15.3.6 (official build)
  • https://t.me/clickhouse_ru
    @Alesapin #130277 08:16 AM, 02 Dec 2019
    а последняя 19.15.6.21
  • https://t.me/clickhouse_ru
    @sker_is #130278 08:16 AM, 02 Dec 2019
    а, благодарю, сейчас попробую
  • @SashaGromenko #130279 08:31 AM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @papok #130280 08:31 AM, 02 Dec 2019
    Привет!
    Может кто то знает почему
    select
    15730567168 - toFloat32(15730567168+1) as a11;
    дает 0 ?

    Версия КХ последняя официальная
  • https://t.me/clickhouse_ru
  • может потому что 15730567168 больше 32 бит?
  • @vstakhov #130283 08:44 AM, 02 Dec 2019
    мантисса в float32 вовсе не 32 бита JFYI
  • @vstakhov #130284 08:45 AM, 02 Dec 2019
    а всего лишь 24
  • @vstakhov #130285 08:45 AM, 02 Dec 2019
    все, что больше 2^24 - 1, будет терять точность на вычислениях с целыми числами, представленными в виде float
  • https://t.me/clickhouse_ru
    @papok #130286 09:08 AM, 02 Dec 2019
    @pavlov_m @cebka 😱
    спасибо !!
  • https://t.me/clickhouse_ru
    спасибо, помогло
  • @hoverhell #130288 09:29 AM, 02 Dec 2019
    Какоово положение дел по with (with <tablename> as (<subquery>) ...) в clickhouse? Мне казалось я где-то видел упоминание
  • https://t.me/clickhouse_ru
    @kudryavtsev #130289 09:33 AM, 02 Dec 2019
    а возможно ли как то сторить очередь кафки в сыром виде без построения агрегированных страниц ?
  • @gorshkovdn #130290 09:55 AM, 02 Dec 2019
    В версии 19.17.4.11 сломали условия на строковые поля или я что-то делаю не так?
    Получаю ошибку: DB::Exception: Method createColumn() is not implemented for data type Set (version 19.17.4.11 (official build))
    Ни строковые функции не прямое сравнение не отрабатывает в секции WHERE
  • https://t.me/clickhouse_ru
    Так напишите MAT VIEW без выражений агрегации и сторите куда хотите
  • https://t.me/clickhouse_ru
    @WladySpb #130292 10:00 AM, 02 Dec 2019
    Добрый день. Если в запросе словарь по ключу может вернуть два и более ответа, и ответ словаря используется в группировке - будет ли в ответе две строки на ключ, или такое поведение не предусмотренно?
  • https://t.me/clickhouse_ru
    Скорее всего при загрузке словаря в КХ, вы не сможете по ключу получить два и более ответа. Т.е. в словаре дубли по ключу есть, а в КХ - не будет
  • @680937316 #130294 10:58 AM, 02 Dec 2019
    Joined.
  • @viphunter_real #130295 11:00 AM, 02 Dec 2019
    ку куб а можно ли как то транспонировать двойной массив или хотя бы взять и-тый елемент массива?
  • https://t.me/clickhouse_ru
    @Nicklaos #130296 11:02 AM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    можете пример показать
  • https://t.me/clickhouse_ru
    Как-то так https://pastebin.com/gKfciiy1
    CREATE TABLE kafka ( data String,) ENGINE = Kafka;CREATE TABLE data_from_k - Pastebin.com

    Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

  • @460254773 #130299 11:31 AM, 02 Dec 2019
    всем привет
    подскажите пожалуйста
    с чем может быть связано такая ошибка?
    Cannot enqueue replicated DDL query for a replicated shard

    такое выдают реплки время от времени
  • https://t.me/clickhouse_ru
    круто, спасибо большое
  • @460254773 #130301 11:35 AM, 02 Dec 2019
    2019.11.29 02:29:13.567212 [ 173 ] {98e13427-775e-4622-a13b-a4c682f04974} <Error> executeQuery: Code: 48, e.displayText() = DB::Exception: There was an error on [clickhouse-node1:9000]: Cannot enqueue replicated DDL query for a replicated shard (version 19.6.2.11 (official build)) (from 192.197.12.1:49911) (in query: ALTER TABLE test.cpm_statistics_page_time_13 ON CLUSTER test DELETE WHERE (widget_goods, geo_group, device, page, day_type, time_id) IN (SELECT widget_goods, geo_group, device, page, day_type, time_id FROM test.cpm_statistics_page_time_13 GROUP BY widget_goods, geo_group, device, page, day_type, time_id HAVING maxMerge(updated_time) < (now() - (((3 * 24) * 60) * 60))) ), Stack trace:
  • @460254773 #130302 11:35 AM, 02 Dec 2019
    вплоть до того что оом киллер потом просто прибивает кх на всех репликах)
  • https://t.me/clickhouse_ru
    @mephisto_ak #130303 12:23 PM, 02 Dec 2019
    Добрый день, проблема со словарями, при добавление внешнего словаря он не отобразился в system.dictionaries, при попытке его обновить ручками "system reload dictionary dict_name" запрос зависает, и кильнуть запрос не получается "kill query where query_id = '1234'", есть варианты починить это, не перезапуская кх?
  • Попадал на такую ситуацию, помогал только restart
  • https://t.me/clickhouse_ru
    @mephisto_ak #130305 12:26 PM, 02 Dec 2019
    Пытался оставить пустой тэг <dictionaries>, после удалил, но не помогло
  • https://t.me/clickhouse_ru
    @mephisto_ak #130306 12:27 PM, 02 Dec 2019
    Не очень понятно, почему проблема одного словаря, может сломать весь механизм
  • https://t.me/clickhouse_ru
    @mephisto_ak #130307 12:28 PM, 02 Dec 2019
    Предполагаю, что проблема возникла, после добавления неудачного словаря, который я починил, но после все сломалось
  • https://t.me/clickhouse_ru
    А какая версия КХ?
  • https://t.me/clickhouse_ru
    @mephisto_ak #130309 12:29 PM, 02 Dec 2019
    19.9.2.4
  • https://t.me/clickhouse_ru
    @mephisto_ak #130310 12:29 PM, 02 Dec 2019
    Select version()
  • https://t.me/clickhouse_ru
    @Alesapin #130311 12:31 PM, 02 Dec 2019
    в 19.10 очень сильно улучшалась загрузка словарей, не хотите обновиться?
  • https://t.me/clickhouse_ru
    @mephisto_ak #130312 12:32 PM, 02 Dec 2019
    Хочется, но это не просто и не быстро)
  • https://t.me/clickhouse_ru
    @mephisto_ak #130313 12:32 PM, 02 Dec 2019
    А проблему, хотелось решить сейчас
  • https://t.me/clickhouse_ru
    @mephisto_ak #130314 12:34 PM, 02 Dec 2019
    Попробую, воспроизвести такую ситуацию на локальной машине с новой версией, посмотрим, что получиться
  • https://t.me/clickhouse_ru
    @combot #130316 b o t 12:44 PM, 02 Dec 2019
    Alert! А is a known spammer and is CAS banned. Ban is strongly recommended.
  • https://t.me/clickhouse_ru
    @sker_is #130318 01:21 PM, 02 Dec 2019
    SELECT 'all', 'all', 'all', count(1) FROM event_photo_upload LEFT JOIN event_delete_photo ON event_delete_photo.photoId=event_photo_upload.photoId WHERE placeId IN('bljtd77heqe9e0tuu68x') AND toString(event_delete_photo.photoId)==''
    вот такой запрос вызывает реакцию DB::Exception: Method createColumn() is not implemented for data type Set. при чём тут Set и как переписать запрос, чтобы он работал? версия 19.17.4.11
  • https://t.me/clickhouse_ru
    У вас точно в запросе написан "=="? В КХ такого нет
  • https://t.me/clickhouse_ru
    Есть) Проблема похожа на https://github.com/ClickHouse/ClickHouse/issues/7799.
    19.17 Method createColumn() is not implemented for data type Set. · Issue #7799 · ClickHouse/ClickHouse

    The test case: ClickHouse client version 19.17.2.4 (official build). Connecting to localhost:9000 as user default. Connected to ClickHouse server version 19.17.2 revision 54428. :) select count() F...

  • https://t.me/clickhouse_ru
    @sker_is #130321 01:53 PM, 02 Dec 2019
    0_0 откатил версию до 19.15.6.21 и всё заработало. == таки есть, да
  • Сегодня потратил на это полдня, решил путем подзапроса с WHERE, а затем JOIN
  • https://t.me/clickhouse_ru
    @danil_k0pyl0v #130323 01:57 PM, 02 Dec 2019
    Есть задача создать отказоустойчивый кластер с КХ и Зукипером. Есть у кого опыт, кластеризации между разными ДЦ и хостерами ?
  • https://t.me/clickhouse_ru
    зависит от нагрузки

    1. ноды зукипера в одном дацентре. В крайнем случае в датацентрах с летенси <50мс С ОЧЕНЬ надежной сетью между.
    2. писать в реплики КХ которые близко к Зукиперу (летенси <100мс), другим репликам запретить становится лидерами таблиц.
  • https://t.me/clickhouse_ru
    а ноды зукипера разносить в разные хостеры ? летенси имеет значение ?
  • https://t.me/clickhouse_ru
    @korol_and #130327 02:07 PM, 02 Dec 2019
    использует ли clickhouse партиции для оптимизации запросов?
  • @grinias #130328 02:07 PM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    см 1
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    partitioning is not intended to speed up SELECT queries (ORDER BY key is sufficient to make range queries fast). Partitions are intended for data manipulation (DROP PARTITION, etc).
  • https://t.me/clickhouse_ru
    @den_crane #130333 02:13 PM, 02 Dec 2019
    >partitioning is not intended to speed up SELECT queries

    тут имеется в виду что speed up самый минорый фактор для выбора стратегии партиционирования, и только для тех кто понимает как на самом деле работает insert
  • @fibersel #130334 02:59 PM, 02 Dec 2019
    а никто не сталкивался с зависаниями кх в случае,когда таблица создается через движок HDFS, из 40000 файлов?
  • @fibersel #130335 02:59 PM, 02 Dec 2019
    может,есть какие-то неявные ограничения?
  • @sr_maks1 #130336 03:02 PM, 02 Dec 2019
    Привет всем. Кто то сталкивался с тем что запрос с мат вью и аналогичный запрос из исходной таблицы возвращает отличающееся друг от друга цифры? Есть идея что это связано с каким то мержем. Мат вью был создан давно без POPULATE. Такой же вью созданный параллельно возвращает правильные данные
  • https://t.me/clickhouse_ru
    всавка в MV и таблицу неатомарны, нужно постоянно следить за ошибками инсертов и чинить руками
  • то есть может получится что вставка в таблицу прошла а MV нет. Так ?
  • https://t.me/clickhouse_ru
    да, у меня такая фигня бывает раз в неделю, отвал зукипера, отвал сети между КХ и заливалкой и т.д.. Я чиню MV вручную, довствляя кусок который не вставился в MV.
  • https://t.me/clickhouse_ru
    Что такое "вью созданный параллельно"?
  • @sr_maks1 #130341 03:11 PM, 02 Dec 2019
    а какой алгоритм вставки - сначала идет вставка в основную таблицу, а потом в MV? Тогда понятно
  • https://t.me/clickhouse_ru
    да, приблизительно
  • а как вставить недостающую? также как в обычную таблицу?
  • https://t.me/clickhouse_ru
    да
  • @sr_maks1 #130345 03:12 PM, 02 Dec 2019
    Спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #130346 03:14 PM, 02 Dec 2019
    И ретрай insert-а не помогает. При ретрае проверяется что блок в таблице уже есть и вставка пропускается и в таблицу и в MV.
  • @nikita_vaganov #130347 03:21 PM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @filippchistiakov #130348 03:23 PM, 02 Dec 2019
    Ребят а что случилось с WHERE 1 = 1 ?
  • https://t.me/clickhouse_ru
    @filippchistiakov #130349 03:23 PM, 02 Dec 2019
    Почему перестало это работать?
  • https://t.me/clickhouse_ru
    @436455138 #130350 03:25 PM, 02 Dec 2019
    А версия какая?
  • https://t.me/clickhouse_ru
    @filippchistiakov #130351 03:26 PM, 02 Dec 2019
    19.14.6.12
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130352 03:34 PM, 02 Dec 2019
    where 1 тоже не работает?
  • @kissex #130353 04:01 PM, 02 Dec 2019
    День добрый. Проблема с odbc. 19.15.3.6
    select *
    from odbc('DSN=host;UID=user-name;PWD=password;', 'public', 'table') AS t
    выдаёт
    FATAL: password authentication failed for user "{user-name}"
    проверил на стороне postgres дейтсивтельно приходит
    {user-name}
    . Как можно заэкранировать -?
  • https://t.me/clickhouse_ru
    @den_crane #130354 04:08 PM, 02 Dec 2019
    может прокатит UID="user-name";
    но проще сделать пользователя без -, и пароль без @ и $
  • @kissex ↶ Reply to #130354 #130355 04:09 PM, 02 Dec 2019
    DB::Exception: ODBC connection string parameter value is unescaped and contains illegal character
    не помогло
  • https://t.me/clickhouse_ru
    @den_crane #130356 04:09 PM, 02 Dec 2019
    значит никак
  • @460254773 #130357 04:56 PM, 02 Dec 2019
    всем привет!

    обновили одну из реплик шарда
    19.6.2.11 до 19.17.4.11
  • @460254773 #130358 04:57 PM, 02 Dec 2019
    на реплике с версией 19.6.2.11

    2019.12.02 08:53:01.890495 [ 15 ] {} <Error> stats.reach_meter_data_1558962677 (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match (version 19.6.2.11 (official build)). Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
  • https://t.me/clickhouse_ru
    в 19.7 поменялся lz4
  • https://t.me/clickhouse_ru
    @den_crane #130360 04:58 PM, 02 Dec 2019
    надо на всех репликах сделать либо <19.7 либо >19.7
  • https://t.me/clickhouse_ru
    @den_crane #130361 04:58 PM, 02 Dec 2019
    либо не использовать lz4
  • @460254773 #130362 05:03 PM, 02 Dec 2019
    @den_crane спасибо !
  • @460254773 #130363 05:45 PM, 02 Dec 2019
    откатил, реплика завелась и ошибки на других репликах прекратились
  • https://t.me/clickhouse_ru
    @elvis_live #130366 09:49 PM, 02 Dec 2019
    а есть orm для явы, поддерживающий clickhouse ?
  • https://t.me/clickhouse_ru
    @den_crane #130367 09:59 PM, 02 Dec 2019
    слава богу, нету.
  • https://t.me/clickhouse_ru
    должно хватить базового encode URI. Например в javascript - encodeURIComponent(). Полученные логин/пароль после должны проходить валидацию
  • @988047272 #130369 11:32 PM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @combot #130370 b o t 11:32 PM, 02 Dec 2019
    Alert! Marcos is a known spammer and is CAS banned. Ban is strongly recommended.
  • @868663526 #130371 11:32 PM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @combot #130372 b o t 11:33 PM, 02 Dec 2019
    Alert! James Daves is a known spammer and is CAS banned. Ban is strongly recommended.
  • @911620113 #130373 11:33 PM, 02 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @combot #130374 b o t 11:33 PM, 02 Dec 2019
    Alert! Lity Mariya is a known spammer and is CAS banned. Ban is strongly recommended.
  • 03 December 2019 (163 messages)
  • @khelyor #130375 07:27 AM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Спамеров привалило///
  • https://t.me/clickhouse_ru
    @testudinateklev #130377 08:18 AM, 03 Dec 2019
    Привет 🖖 Подойдёт ли КликХаус для хранения данных временных рядов ?
  • https://t.me/clickhouse_ru
    @436455138 #130378 08:19 AM, 03 Dec 2019
    Да, подойдет
  • @bayandoo2 #130379 08:26 AM, 03 Dec 2019
    Joined.
  • @bayandoo2 #130380 08:27 AM, 03 Dec 2019
    день добрый подскажите как правильно настроить config файл кликзауса?
  • Стоит начать с документации, а если будет не понятно что-то конкретное, задать вопрос
  • @bayandoo2 #130383 08:30 AM, 03 Dec 2019
    отсюда?
  • @409323044 #130385 08:31 AM, 03 Dec 2019
    Добрый день! Какой setting ограничивает объем выгрузки из таблицы CH в текстовый файл (CSV,JSON)?
  • ?
  • @andreyvaslv #130387 08:42 AM, 03 Dec 2019
    Лучше все просмотреть
  • @andreyvaslv #130388 08:42 AM, 03 Dec 2019
    Что понадобится зависит от вашей задачи
  • @andreyvaslv #130389 08:43 AM, 03 Dec 2019
    Конфиг по умолчанию без измененией уже позволяет начать работать
  • https://t.me/clickhouse_ru
    @recoilme #130390 08:54 AM, 03 Dec 2019
    Joined.
  • @bayandoo2 #130391 08:58 AM, 03 Dec 2019
    что делать если селект вываливается с ошибкой, что не хватате памяти?
  • https://t.me/clickhouse_ru
    @yarlanzey #130392 08:59 AM, 03 Dec 2019
    добавить память или лимитировать в конфиге
  • https://t.me/clickhouse_ru
    @436455138 #130393 08:59 AM, 03 Dec 2019
    Памяти добавить или объем выборки уменьшить
  • @bayandoo2 #130394 09:00 AM, 03 Dec 2019
    да вот не могу понять где ее добавить?
  • @dice2slice #130395 09:00 AM, 03 Dec 2019
    Если запускать через клиент, то можно так clickhouse-client --max_memory_usage 50000000000 использовать
  • @bayandoo2 #130396 09:01 AM, 03 Dec 2019
    max_memory_usage находииться в cd /etc/clickhouse-server/config.xml
    ?
  • https://t.me/clickhouse_ru
    в сервер
  • сюда?
    max_memory_usage находииться в cd /etc/clickhouse-server/config.xml
  • https://t.me/clickhouse_ru
    @recoilme #130399 09:04 AM, 03 Dec 2019
    Добрый день. У меня есть такая проблема. Пул серверов шлет инсерты в КХ, примерно так:

    клиент 1 - INSERT INTO table3 (c1, c2, c3) VALUES ('v1', 'v2', 'v3')
    клиент 2 - INSERT INTO table3 (c1, c2, c3) VALUES ('v4', 'v5', 'v6')
    ..

    Ему тяжеловато от этого. Я хочу их тупо запайплайнить, и слать пакет одним запросом, вот так:

    прокси1 - INSERT INTO table3 (c1, c2, c3) VALUES ('v1', 'v2', 'v3')\r\nINSERT INTO table3 (c1, c2, c3) VALUES ('v4', 'v5', 'v6')

    И отправлять одним запросом раз в секунду - накопленное количество.

    - поддерживает ли парсер КХ вот такой вот, или какой то другой пайплайнинг?
    - поможет ли это КХ зажить весело и счастливо, или мне надо всенепременно упарываться парсером, переформатировать и слать вот так: INSERT INTO table3 (c1, c2, c3) VALUES ('v1', 'v2', 'v3')('v4', 'v5', 'v6') ?

    Заранее спасибо!
  • @bayandoo2 #130400 09:07 AM, 03 Dec 2019
    где поправить этот параметр не могу понять max_memory_usage
  • @bayandoo2 #130401 09:07 AM, 03 Dec 2019
    в каком файле?
  • Memory buffer не поможет?
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    @easya #130404 09:08 AM, 03 Dec 2019
    в профиле пользователя, в users.xml
  • @scheparukhin #130405 09:08 AM, 03 Dec 2019
    Вообще поддерживает
  • @bayandoo2 #130406 09:13 AM, 03 Dec 2019
    max_memory_usage какое оптимальное значение для сервера 64 гб ОЗУ?
  • @bayandoo2 #130407 09:16 AM, 03 Dec 2019
    55 гигов хватит?
  • @bayandoo2 #130408 09:16 AM, 03 Dec 2019
    сейчас 37
  • @bayandoo2 #130409 09:20 AM, 03 Dec 2019
    повлияет ли это на что то?
  • попробуйте clickhouse-bulk
  • @khelyor #130411 09:24 AM, 03 Dec 2019
    GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

    Collects many small inserts to ClickHouse and send in big inserts - GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

  • @bayandoo2 #130412 09:25 AM, 03 Dec 2019
    а какая настройка отвечат за количество ядер что может юзать кликхаус?
  • https://t.me/clickhouse_ru
    Попробовал. 16.987g в свопе после вставки 100к, 18, после вставки следующих 100к.
  • https://t.me/clickhouse_ru
    why?
  • https://t.me/clickhouse_ru
    я предполагаю что вот этот запрос: INSERT INTO table3 (c1, c2, c3) VALUES ('v1', 'v2', 'v3')
    Внутри - превращается вот в такой пул запросов:
    с1 -> v1
    с2 -> v2
    Тк КХ - колоночная субд => нет никакого смысла приводить запросы к виду:
    INSERT INTO table3 (c1, c2, c3) VALUES ('v1', 'v2', 'v3')('v4', 'v5', 'v6')
    Так как все равно распарсится на примитивы. Но.

    Всё зависит от реализации записи. Если они делают так:
    file.write(с1, v1)
    file.fsync()
    То будет тормозить. А если делают fsync по таймеру, раз в секунду, например - то тормозить не будет. Обычно - красавчики делают fsync по таймеру - или отдают это ОС. Но если они не красавчики, то нужно запилить парсер и слать одним запросом(
  • https://t.me/clickhouse_ru
    @recoilme #130416 09:44 AM, 03 Dec 2019
    но это все мои предположения )
  • https://t.me/clickhouse_ru
    @scratty #130417 09:47 AM, 03 Dec 2019
    Добрый день. Столкнулся с проблемой при установке clickhouse-client на Mac OS. Утанавливаю как здесь написано: (https://github.com/arduanov/homebrew-clickhouse)
    Во время установки выдает варнинг, но устанавливается. А при попытке запустить clickhouse-client падает ошибка. Кто-то сталкивался с подобным?
  • @NikolayKrupiy #130418 09:51 AM, 03 Dec 2019
    Joined.
  • @NikolayKrupiy #130419 09:58 AM, 03 Dec 2019
    Moscow Data Meetups

    ПОДРОБНЕЕ О СПИКЕРАХ И ДОКЛАДАХ: Павел Денисенко, главный архитектор данных X5 Retail Group, занимался проектированием логической архитектуры аналитических платформ, моделей и потоков данных. За его плечами проекты построения DWH в МегаФоне, М.Видео, Tinkoff, Икано Банке, X5 Retail Group. На нашем митапе Павел выступит с докладом «Адаптация методологии DataVault 2.0 для задачи построения Enterprise Data Warehouse в X5». Ключевые моменты: - как выглядит целевая логическая архитектура EDW; - какую роль в EDW играет #DataVault 2.0; - опыт применения DV2: вопросы/ решения, не описанные в книжках; - автоматизация разработки DV2; - открытые вопросы. ----------------- Сфера деятельности Алексея Рябова, архитектора DWH в Tinkoff, включает репликацию данных из операционных источников в несколько кластеров Greenplum, синхронизацию данных между несколькими кластерами Greenplum и другие инфраструктурные проекты DWH. Его доклад «Проект DUET: синхронизация данных между несколькими кластерами Greenpum. Опыт в Tinkoff»…

  • @bayandoo2 #130420 10:06 AM, 03 Dec 2019
    какой параметр в конфиг файле отвечаете за CPU?
  • @bayandoo2 #130421 10:06 AM, 03 Dec 2019
    сколько ядер юзать и дт
  • https://t.me/clickhouse_ru
    @kthx000 #130422 10:23 AM, 03 Dec 2019
    а что теперь есть вторичные индексы https://clickhouse.yandex/docs/ru/query_language/alter/#manipuliatsii-s-indeksami ?
  • да, с какой-то версии

    https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/#table_engine-mergetree-data_skipping-indexes
  • https://t.me/clickhouse_ru
    интересно, спасибо
  • https://t.me/clickhouse_ru
    @sker_is #130425 10:33 AM, 03 Dec 2019
    посдкажите, а какие ограничения на именования таблиц? а то в документации найти не могу
  • https://t.me/clickhouse_ru
    @hombit #130426 10:52 AM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hombit #130427 10:54 AM, 03 Dec 2019
    Подскажите, я правильно понимаю, что невозможно к существующей таблице добавить непустую колонку? То есть в новой колонке навсегда первые н записей останутся пустыми?
  • https://t.me/clickhouse_ru
    @436455138 #130428 11:00 AM, 03 Dec 2019
    ADD COLUMN [IF NOT EXISTS] name [type] [default_expr] [AFTER name_after]
    Добавляет в таблицу новый столбец с именем name, типом type и выражением для умолчания default_expr (смотрите раздел Значения по умолчанию).
  • https://t.me/clickhouse_ru
    @436455138 #130429 11:00 AM, 03 Dec 2019
    Можно задать значение по умолчанию
  • https://t.me/clickhouse_ru
    @hombit #130430 11:03 AM, 03 Dec 2019
    Но нельзя заполнить из SELECT, скажем?
  • https://t.me/clickhouse_ru
    @436455138 #130431 11:10 AM, 03 Dec 2019
    Вроде бы нет
  • https://t.me/clickhouse_ru
    @hombit #130432 11:10 AM, 03 Dec 2019
    Спасибо!
  • https://t.me/clickhouse_ru
    А можно задать значение по умолчанию в виде выражения сразу? Оно хранится как выражение или пересчитается физически?
  • Значение по умолчанию высчитается при SELECT-е
  • https://t.me/clickhouse_ru
    @matwey_kornilov #130435 11:27 AM, 03 Dec 2019
    Класс, спасибо
  • @460254773 #130436 11:40 AM, 03 Dec 2019
    всем привет!
    а есть в кх настройка чтоб он сначала загрузил словари а потом уже таблицы при старте
  • @460254773 #130437 11:40 AM, 03 Dec 2019
    ?
  • https://t.me/clickhouse_ru
    @ilyachimytov #130438 11:43 AM, 03 Dec 2019
    Joined.
  • @WestDragon #130439 11:45 AM, 03 Dec 2019
    Коллеги добрый день. Подскажите пожалуйста как такое возможно
  • @WestDragon #130441 11:47 AM, 03 Dec 2019
    таблица создана при помощи запроса
  • @WestDragon #130442 11:47 AM, 03 Dec 2019
    CREATE TABLE i_general_cancellation_date
    (
    id UUID,
    general_cancellation_date Date
    ) ENGINE = MergeTree()
    PARTITION BY toYYYYMM(general_cancellation_date)
    PRIMARY KEY id
    ORDER BY (id);
  • https://t.me/clickhouse_ru
    Баг в dataGrip
  • https://t.me/clickhouse_ru
    @skuligin #130444 11:57 AM, 03 Dec 2019
    Там на самом деле 0000-00-00
  • @WestDragon #130445 11:57 AM, 03 Dec 2019
    Понял. Спасибо. Да в доке вижу подпись о 0000-00-00
  • @WestDragon #130446 11:58 AM, 03 Dec 2019
    👍
  • https://t.me/clickhouse_ru
    @ilyachimytov #130447 12:05 PM, 03 Dec 2019
    Коллеги, доброго времени, подскажите пожалуйста, версия кх 1.1.54380 , можно ли как-то адекватно удалить из таблы записи с фильрацией по условию?
  • https://t.me/clickhouse_ru
    @qwblnp #130448 12:06 PM, 03 Dec 2019
    такой вопрос, есть таблица, в которой около 10 мил. записей, но часть этих записей - не валидны, (разные id при идентичных значениях) как можно перенести только валидные данные в другую таблицу, что бы потом ее уже использовать как основную, при условии, что все валидные id имеются?
  • https://t.me/clickhouse_ru
    Только перелить нужные данные в новую таблицу, а старую удалить
  • https://t.me/clickhouse_ru
    @ilyachimytov #130450 12:14 PM, 03 Dec 2019
    спасибо!
  • https://t.me/clickhouse_ru
    Переливаете нужные данные в новую таблицу, а старую таблицу удаляете. Затем работаете с новой таблицей
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #130451 #130452 12:19 PM, 03 Dec 2019
    я изначально в вопросе указал, что "можно перенести только валидные данные в другую таблицу, что бы потом ее уже использовать как основную", осталось решить - как это сделать лучше, в этом и вопрос.
  • https://t.me/clickhouse_ru
    @436455138 #130453 12:20 PM, 03 Dec 2019
    Insert From Select
  • https://t.me/clickhouse_ru
    @qwblnp #130454 12:20 PM, 03 Dec 2019
    ок, спасибо
  • https://t.me/clickhouse_ru
    Есть несколько вариантов, смотря чем определяется валидность данных:

    OPTIMIZE DEDUPLICATE (есди PRIMARY KEY это id за исключением ключей партиции)
    INSERT SELECT + GROUP BY id
    INSERT SELECT + LIMIT 1 BY id
    ALTER TABLE DELETE WHERE
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #130455 #130456 01:09 PM, 03 Dec 2019
    валидность тут скорее условная, дело в том, что данные в CH льются из postgresql, но оказалось, что часть данных на постгрес - была физически удалена, и те id что есть в постгрес - валидны, а то, что успело залиться в CH - становится не валидным из за дублирования данных под разными id

    надеюсь понятно описал

    что делаю сейчас - выгружаю csv с id из постгрес, подключаю файлик как внешние данные и буду заливать в новую таблицу данные по insert into new_table select * from old_table where id in (csv_file)

    если есть способ лучше и быстрее - поделитесь
  • @460254773 #130458 01:13 PM, 03 Dec 2019
    всем привет!
    а есть в кх настройка чтоб он сначала загрузил словари а потом уже таблицы при старте кх сервера?

    к чему такой вопрос
    у нас есть несколько таблиц поля которых заполняются из мускул словарей
    до обновления с 19.6.2.11 до 19.17.4.11 всё было нормально, с таким не сталкивались
    сейчас же при старте кх сервера получаю ошибку и в цикле кх перезапускается
    error: DB::Exception: No such external dictionary 'g_blocks'., stack trace:
    0. 0x559a8a58af60 StackTrace::StackTrace() /usr/bin/clickhouse
    пример такого поля
    widget_goods_parent UInt32 DEFAULT toUInt32(dictGetInt32OrDefault('tickers_composite_widgets', 'uid', toUInt64(dictGetUInt32OrDefault('tickers_composite_relations', 'parent_tickers_composite_id', toUInt64(dictGetUInt32OrDefault('g_blocks', 'tickers_composite_id', toUInt64(widget_goods), toUInt32(0))), toUInt32(0))), toInt32(0))),

    2019.12.03 14:57:29.820554 [ 1 ] {} <Error> Application: DB::Exception: Cannot create object 'widget_clicks_goods' from query ATTACH TABLE widget_clicks_goods
    вываливает всю структуру
    error: DB::Exception: No such external dictionary 'g_blocks'., stack trace:
  • https://t.me/clickhouse_ru
    @rinat_safarov #130459 01:14 PM, 03 Dec 2019
    Joined.
  • @460254773 #130460 01:15 PM, 03 Dec 2019
    когда откатываю на 19.6.2.11 всё загружается
  • https://t.me/clickhouse_ru
    Есть параметр что-то там Dictionary lazy load ?

    Вообще словарь должен загрузится как и раньше. Сделайте тикет с полным логом в виде файла, чтобы было видно три попытки загрухки словаря.
  • https://t.me/clickhouse_ru
    Не совсем понял ситуацию, так как, если делать так id IN(), то туда могут попасть одинаковые id, если они есть в файле.
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #130462 #130463 01:32 PM, 03 Dec 2019
    в файле будут уникальные id из PG ибо там это primary Key
  • https://t.me/clickhouse_ru
    @msg_kurt #130464 01:37 PM, 03 Dec 2019
    Подскажите пожалуйста, апдейт config.xml кушается на лету, или надо рестартовать сервер?
  • https://t.me/clickhouse_ru
    Это понятно. Но если в PG есть id = 1
    А в CH есть id = 1, который повторяется 2 раза
    То строки с id = 1 так же повторно скопируются, если написать id IN(1)

    Возможно я не так понял
  • пробовал менять параметр lazy load
    к сожелению не помогло
    до загрузки словарей не успевает дойти
  • https://t.me/clickhouse_ru
    Большинство настроек на лету применяется
  • https://t.me/clickhouse_ru
    Налету обновляется большинство натсроек, но не все

    Сразу после измненеия проверьте значение настройки так
    >SELECT * FROM system.settings WHERE name = 'имя настройки'
  • https://t.me/clickhouse_ru
    понял, спасибо! речь о доступе с не только локалхоста
  • https://t.me/clickhouse_ru
    Надо рестартовать. В config.xml только словари и описание кластера без перезагрузки
  • https://t.me/clickhouse_ru
    благодарю
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #130465 #130473 01:44 PM, 03 Dec 2019
    все верно, но это подходит под условия моей проблемы.

    что бы понимать лучше опишу ситуацию чуть подробнее
    у нас тут один... гм... не очень хороший человек, написал функционал, который для исправления одной ошибки, физически удаляет данные в PG и пересоздает запись, под новым ID (он уже знает что так делать не надо, и функционал, который он делал - исправлен, но вот данные остались и с ними нужно что-то делать)

    в это время, на другом серваке, кафка, каждые 2 минуты, вытягивает данные из PG и поливает ими CH, как следствие в CH есть данные и по удаленным записям, и по пересозданным
    в итоге каунт с одними и теми же условиями, выдает разницу в несколько сот тысяч записей, которые нужно как-то ликвидировать на CH
  • https://t.me/clickhouse_ru
    Добрый день! Пожалуйста, подскажите с одним вопросом.

    Есть запрос таково вида:

    SELECT id, A.count
    FROM table
    WHERE id IN( SELECT 1 FROM A)

    Таблица А - вычисляемая таблица, время вычиление неколько секунд (от 1 до 60).
    id - первичный ключ, просто перенести A в JOIN, убрав WHERE не получится

    Текущее решение:
    SELECT id, A.count
    FROM table
    JOIN A
    WHERE id IN( SELECT 1 FROM A)

    Данное решение увеличивает время запроса в 2 раза. Хочется этого избежать.
  • https://t.me/clickhouse_ru
    Для миллиона строк решение вполне вменяемое
  • https://t.me/clickhouse_ru
    @klermonte #130476 02:04 PM, 03 Dec 2019
    select * from a any inner join table using(id), тогда правда у вас вся таблица будет в память вычитываться, если она очень большая то это решение не подойдет
  • https://t.me/clickhouse_ru
    @unamedrus #130477 02:10 PM, 03 Dec 2019
    хм, topK возвращает только 10 результатов
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #130478 02:13 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stufently #130479 02:15 PM, 03 Dec 2019
    А как посмотреть в кх очередь заданий ddl ?
  • https://t.me/clickhouse_ru
    @stufently #130480 02:27 PM, 03 Dec 2019
    А в кх не появилась возможность добавлять колонки в distibuted таблицу ? или чтобы она автоматом подхватывала если изменились колонки в таблице на которую она смотрит
  • @Shazo_Rus #130481 02:35 PM, 03 Dec 2019
    ALTER возможен на distributed, а так проще же пересоздать?
  • https://t.me/clickhouse_ru
    @olomix #130482 02:55 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @andmkv #130483 03:19 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Korablev77 #130484 03:58 PM, 03 Dec 2019
    Joined.
  • @simpl1g ↶ Reply to #85062 #130485 04:03 PM, 03 Dec 2019
    Всем привет, подскажите, кто-то смог решить эту задачу через runningAccumulate или надо использовать массивы + arrayCumSum?
  • Привет. Мы увеличили размер чанка, однако, это помогло лишь в уменьшении производительности. groupArray -> arrayCumSum
    решило все проблемы.
  • @simpl1g #130487 04:04 PM, 03 Dec 2019
    понял, спасибо
  • @a_sima10 #130488 04:05 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    пересоздание подразумевает удаление таблицы то есть какой то простой а это не айс
  • @to0n1 #130490 04:26 PM, 03 Dec 2019
    Joined.
  • @a_sima10 #130491 04:32 PM, 03 Dec 2019
    всем привет, видел тут уже кто-то боролся с ошибкой
    DB::Exception: Too many parts (316). Merges are processing significantly slower than inserts..
    и у них был доступ к CH серверу, а у меня нет доступа, что можно сделать, без доступа к серверу? заливаю файлы так
    cat $file | clickhouse-client --host $host --user $user --password=$password --query="INSERT INTO table.daily(\
    EventDate,EventTime,Name,Node,Country,Url,Delay,Code,Error,Price,Cur,Img,ImgRich,Title,Winner,Domain\
    ) FORMAT TabSeparated"

    в файлах примерно 50к-70к строк, новые файлы появляются каждую минуту
  • https://t.me/clickhouse_ru
    что такое SELECT 1 FROM A

    SELECT id, A.count
    FROM table
    JOIN A
    WHERE id IN( SELECT 1 FROM A)
  • Если нет возможности обеспечить период обслуживания, то да alter на distributed
  • https://t.me/clickhouse_ru
    Раньше альтера не было на дистрибьютед, завтра проверю
  • Не знаю насколько стара ваша версия, но с 18.14 есть
  • https://t.me/clickhouse_ru
    @filippchistiakov #130496 04:40 PM, 03 Dec 2019
    Как то можно в arraymap передать countif?
  • https://t.me/clickhouse_ru
    Спасибо, недавно обновился до последней
  • Важно в первую очередь как часто вы делаете инсерт, во сколько одновременно партиций.

    На каждую партицию каждой вставки создается парт. У вас их много генерится и кх не успевает мерджить.
  • https://t.me/clickhouse_ru
    всегда был alter на дистрибьютед, с самой первой версии
  • https://t.me/clickhouse_ru
    И можно было добавить колонку разве? У меня в памяти сидит мысль что я читал документацию и там было только пересоздание для дистрибьютед для добавления колонки
  • https://t.me/clickhouse_ru
    можно было
  • https://t.me/clickhouse_ru
    у countIf один аргумент
  • insert делается примерно раз в минуту на каждый файл с 70к строк
  • Ключ партиционирования в таблице какой? Может инсерт один на файл, но при этом там ключ партиционирования по странам и вставка порождает инсерт * число стран.
  • https://t.me/clickhouse_ru
    Ты путаешь.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • таблица была создана так
    CREATE TABLE table.daily ( EventDate Date, EventTime DateTime, Name String, Node String, Country String, Url String, Delay Int32, Code Int32, Error String, Price Float64, Cur String, Img String, ImgRich String, Title String, Winner Int8, Domain String) ENGINE = Distributed('cluster', buffer, daily, rand())

    я глянул SELECT partition, name, table FROM system.parts WHERE active

    ┌─partition─┬─name────────────────────────┬─table────────────┐
    | 20191203 │ 20191203_21864_21892_2 │ daily │
    │ 20191203 │ 20191203_21893_21899_1 │ daily │
    │ 20191203 │ 20191203_21900_21907_1 │ daily │
  • https://t.me/clickhouse_ru
    ясно, ну да фигню какую-то пытаетесь сделать
  • https://t.me/clickhouse_ru
    arraySum(i-> i > 10), или arrayFilter
  • https://t.me/clickhouse_ru
    @filippchistiakov #130511 05:06 PM, 03 Dec 2019
    А ну да точно
  • https://t.me/clickhouse_ru
    @filippchistiakov #130512 05:06 PM, 03 Dec 2019
    Спасибо
  • и да вы угадали в файлах используются страны, примерный формат файлов такой
    2019-12-03 1575390441 adport USA 129969 204 noWinner 0 0 new-chart-5594c6898b-8dnk4
    2019-12-03 1575390441 epom BGR 3413397 204 noWinner 0 0 new-chart-5594c6898b-8dnk4
    2019-12-03 1575390441 porate LBN 13598922 204 noWinner 0 0 dnew-chart-5594c6898b-8dnk4
  • @ArmenakBaburyan #130514 05:19 PM, 03 Dec 2019
    Привет! Во-первых, спасибо разработчикам ClickHouse, действительно клевая база данных. Есть несколько вопросов.

    Дано:

    * Одна нода - сервер на DO 16 CPU, 32 GB RAM, attached volume на 3 ТБ
    * Таблица 5 млрд записей

    CREATE TABLE impression.impression (
    `date` Date,
    `timestamp` DateTime,
    `unique_id` UUID,
    `client` String,
    `campaign` String,
    `publisher` String,
    `application` String,
    `click_id` String,
    `os_name` String,
    `os_version` String,
    `pclick` String,
    `idfa` String,
    `gaid` String,
    `ip_address` String,
    `country_code` FixedString(2),
    `city` String,
    `isp` String,
    `latitude` Float64,
    `longitude` Float64,
    `referrer` String,
    `user_agent` String
    ) ENGINE = MergeTree(date, unique_id, 8192)
    * Запись в таблицу производится с нескольких серверов батчами по 10к записей

    1. Первоначально требовалось быстро искать по полю unique_id. Поэтому именно это поле я и выбрал как первичный ключ. Позже появилось требование искать еще по полю click_id. Пытался разметить таблицу следующим образом: ENGINE MergeTree() PARTITION BY date ORDER BY (date, unique_id, click_id) SETTINGS index_granularity=8192. Но это не помогло. Подскажите, какой первичный ключ (ключ сортировки) надо было выбрать? Или CH для этого класса задач не подходит? Вообще стоило ли добавлять date в начало ключа сортировки?

    2. Второй класс задач - группировки (GROUP BY) по различным полям (дата, client, campaign, publisher, ...) с фильтрацией (WHERE по выбранным client, campaign, publisher) за определенный период времени. Что наилучшим образом повлияет на ускорение запросов? MatView, репликация, шардирование, иной Primary Key?

    3. Планирую переход с одной ноды на кластер. Сейчас в таблицу записывается 200 млн/сутки, в перспективе будет 1 млрд/сутки. Порекомендуйте, пожалуйста, конфигурацию кластера и характеристики серверов.
  • https://t.me/clickhouse_ru
    PARTITION BY date ORDER BY (date,

    date в ORDER BY смысла не имеет, там всегда одно значение, из-за PARTITION BY date

    1. Если действительно хочется быстро искать (это вообще неправильный вопрос для OLAP), делайте две таблицы одна ORDER BY unique_id вторая ORDER BY click_id и все храните два раза. Но проблема в вашем неправильном желании. Скоро появится zorder индекс который несколько облегчит.

    2. фильтровать через таблицу отсортированную по creative_id, который вычисляется из client, campaign, publisher

    3. 700 серверов, в каждом по 600ГБ озу
  • https://t.me/clickhouse_ru
    @den_crane #130516 05:43 PM, 03 Dec 2019
    сделайте POC из двух шардов, да померяйте, кто знает как у вас данные сожмутся и запросы может данные за 6 лет будут считать.
  • https://t.me/clickhouse_ru
    @ajIeks #130517 06:56 PM, 03 Dec 2019
    Привет всем, если необходимо чтобы КХ повторно "потрогал" парты, для применения изменений к старым данным, это же вроде можно имитировать через мутацию?
  • https://t.me/clickhouse_ru
    речь про запись добавленных алтером column default на диск?
  • https://t.me/clickhouse_ru
    @ajIeks #130519 07:00 PM, 03 Dec 2019
    скорее skip index хочу накатить
  • https://t.me/clickhouse_ru
    @ajIeks #130520 07:00 PM, 03 Dec 2019
    ALTER TABLE [db.]table MATERIALIZE INDEX name IN PARTITION partition_name похоже где-то в доке рядом с этим, читаю )
  • https://t.me/clickhouse_ru
    а сразу нельзя было это сказать? дедушка партизан?
  • https://t.me/clickhouse_ru
    @ajIeks ↶ Reply to #130521 #130522 07:02 PM, 03 Dec 2019
    сорян )
  • @kinoman400 #130523 07:24 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @TechNights #130524 07:47 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @emanaev #130525 07:50 PM, 03 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @imelekhin #130526 07:58 PM, 03 Dec 2019
    Joined.
  • Спасибо за ответы! Вы могли бы детальнее раскрыть пункт 2?
  • https://t.me/clickhouse_ru
    client, campaign, publisher это ведь атрибуты баннера не правда ли?
  • @ArmenakBaburyan #130529 08:06 PM, 03 Dec 2019
    Да
  • https://t.me/clickhouse_ru
    ну вот показали баннер желтые труселя, даже если он персонализирован, и там написано special for you Denny, все равно у этого баннера есть id, где он у вас в таблице?
  • https://t.me/clickhouse_ru
    @den_crane #130531 08:09 PM, 03 Dec 2019
    не конкретный баннер, а сам криэтив
  • @ArmenakBaburyan #130532 08:13 PM, 03 Dec 2019
    В таблице логгируются не показы баннеров, а клики по ним. ID клика - поле click_id. creative тоже есть, но колонка разряженная. Пример
    click-house 🙂 select unique_id, creative from impression where date = today() limit 10

    SELECT
    unique_id,
    creative
    FROM impression
    WHERE date = today()
    LIMIT 10

    ┌────────────────────────────unique_id─┬─creative─────┐
    │ 81f2e18c-2a9e-400a-8000-0081eea700b8 │ │
    │ 8a517785-ce97-44a7-8000-00b993a65257 │ │
    │ 31cf4466-0d5e-43dc-8000-00f6e8cc7371 │ │
    │ fbc5ac3a-1416-42c9-8000-0127fd6b4dff │ │
    │ 8a73b52d-542d-4462-8000-0235cd57a4ff │ │
    │ bc890a0a-5714-4a26-8000-028069868516 │ │
    │ a4a118e3-aec7-4ad8-8000-02b55370430d │ │
    │ 9c3b902a-5c60-4889-8000-035738884b05 │ │
    │ a25d62d3-c40c-4044-8000-03bd12a6862f │ │
    │ aac63a8c-21b2-4b4b-8000-03be453a9538 │ listen - ios │
    └──────────────────────────────────────┴──────────────┘

    10 rows in set. Elapsed: 0.166 sec. Processed 90.11 thousand rows, 1.54 MB (543.72 thousand rows/s., 9.29 MB/s.)
  • * поле unique_id
  • https://t.me/clickhouse_ru
    @den_crane #130534 08:16 PM, 03 Dec 2019
    все это не то, видимо разговор слепого с глухим
  • @ArmenakBaburyan #130535 08:18 PM, 03 Dec 2019
    Ну, ладно. Все равно спасибо!
  • Подскажите, delta encoding можно применить к полю timestamp? LowCardinality был бы эффективен для поля user_agent, как я понял из вебинара Secrets of ClickHouse Query Performance by Altinity Ltd...
  • https://t.me/clickhouse_ru
    тут пишут про бОльшее количество
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    >Подскажите, delta encoding можно применить к полю timestamp?
    да, помогает, если отсортировано по timestamp

    >LowCardinality был бы эффективен для поля user_agent,
    да
  • 04 December 2019 (152 messages)
  • @313839957 #130540 05:32 AM, 04 Dec 2019
    Joined.
  • @193401048 #130541 05:38 AM, 04 Dec 2019
    Joined.
  • @vtiaily #130542 05:43 AM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @filippchistiakov #130543 05:45 AM, 04 Dec 2019
    У меня есть таблица

    user_id
    order_id
    price
    status
    dt - datetime

    к ней наджойнина таблица с пользователями
    users_table.reg_dt - дата регистрации пользователя

    Я хочу получить для каждого пользователя арреи в котором будет сумма price для каждой его нумерованной недели с момента регистрации

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

    WITH (SELECT groupArray(number) FROM numbers(1, 52)) as week_n
    SELECT
    users_table.user_id
    , array(sumIf(table.price,
    table.status = 1 AND
    toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt) = 1),
    sumIf(table.price,
    table.status = 1 AND
    toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt) = 2),
    sumIf(table.price,
    table.status = 1 AND
    toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt) = 3),

    ~~~~~~~~~

    sumIf(table.price,
    table.status = 1 AND
    toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt) = 52)
    ) AS array_prices

    GROUP BY users_table.user_id

    Пробовал:

    1) запускаеться но дублирует значение первой недели на все

    , arrayJoin(weeks) as week_n
    , array(sumIf(table.price,
    table.status = 1 AND
    (toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt)) = week_n)) AS array_prices
    2) не запускаеться

    , arraySum(tupl -> (
    tupleElement(tupl, 3)
    )
    , array(
    tuple( groupArray(table.price)
    , week_n
    , groupArray(toRelativeWeekNum(table.dt) - toRelativeWeekNum(users_table.reg_dt))
    , groupArray(table.status)
    )
    )
    ) as test

    Вопрос:

    Таких полей кроме price достаточно много и явно не правильно всех из перечилслять так, хочеться понять как можно считать это не хардкодя
  • https://t.me/clickhouse_ru
    @leviostas #130544 05:56 AM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nryanov #130545 07:21 AM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @153320011 #130546 08:00 AM, 04 Dec 2019
    Привет, как узнать что выполняет ClickHouse в данный момент?
    Хочу отследить причину нагрузки
  • https://t.me/clickhouse_ru
    @ProffUst #130547 08:01 AM, 04 Dec 2019
    SHOW PROCESSLIST
  • https://t.me/clickhouse_ru
    @ProffUst #130548 08:02 AM, 04 Dec 2019
    Можно еще мержи и мутации посмотреть, в доке ищи
  • @chamaeleon_rex #130549 08:08 AM, 04 Dec 2019
    Привет! А можно ли при запросе к КХ посмотреть сколько данных он вытянул с шардов на мержущую машину, чтобы чутка оптимизировать группировки если надо?
  • https://t.me/clickhouse_ru
    Можно добавить hostName() в ключ группировки и включить настройку distributed_group_by_no_merge
  • @chamaeleon_rex #130551 08:13 AM, 04 Dec 2019
    хм, спасибо, попробую
  • https://t.me/clickhouse_ru
    Это условный запрос, там столбцы с агрегацией
  • https://t.me/clickhouse_ru
    @sc0rp10 #130553 08:48 AM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @sc0rp10 #130554 08:50 AM, 04 Dec 2019
    господа, приветствую
    есть проблема с наливкой копии продакшн-базы из бэкапа
    используется этот спосок https://clickhouse.yandex/docs/ru/operations/backup/#manipuliatsii-s-partitsiiami
    проблема в том, что там отсутствуют таблицы с Engine=Log и их нет в бэкапе
    подскажите, пожалуйста, можно ли, используя этот способ, получить бэкап и лог таблиц тоже?
  • https://t.me/clickhouse_ru
    @hombit #130555 09:04 AM, 04 Dec 2019
    Добрый день! При попытке залить таблицу упираюсь либо в ошибку выделения памяти, либо в ограничение на память для запроса. Какую настройку подкрутить, чтоб не покупать больше RAM?
  • https://t.me/clickhouse_ru
    @e_consul #130556 09:17 AM, 04 Dec 2019
    Добрый день. Я вставляю данные по 100 000 строк. Как вставить только уникальные по паре полей? Чтобы не заморачиваться предварительной вычиткой и отбором.
  • https://t.me/clickhouse_ru
    Вставлять в replacingmergetree
  • https://t.me/clickhouse_ru
    @blinkovivan #130558 09:26 AM, 04 Dec 2019
    Мы сейчас занимаемся приоритезацией задач по дальнейшему улучшению документации ClickHouse и чтобы сделать это правильно, нам нужна обратная связь от вас. Если готовы помочь нам, заполните, пожалуйста, вот эту небольшую форму: https://forms.yandex.ru/surveys/10014882

    Тем временем, следующий ClickHouse митап в Москве состоится уже через неделю, 11 декабря: https://yandex.ru/promo/clickhouse/moscow-december-2019
    Количество мест ограничено, так что стоит поспешить записаться, но live трансляцию тоже собираемся делать.
  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @marshalov #130560 09:33 AM, 04 Dec 2019
    Подскажите, как узнать виртуальные столбцы таблицы? Есть ли у ReplacingMergeTree возможность получить версию?
  • https://t.me/clickhouse_ru
    почитал, сомнительный вариант
    никто не знает, когда обновление произойдет
    есть варианты прямо в INSERT условие вставить?
    в гугле есть варианты, но поддерживаются ли они CH?
  • select database,table,columns_version from system.replicas

    под виртуальными, что имеется в виду?
  • https://t.me/clickhouse_ru
    Например, в distributed есть _table, _part и еще несколько, вдруг в ReplacingMT есть что-то вроде _version
  • https://t.me/clickhouse_ru
    Я не понял, что такое columns_version, у меня там 0
  • Если вы изменяете набор колонок, то там должна измениться цифра. Если вы про это спрашивали.
  • https://t.me/clickhouse_ru
    Нет, речь про версию записи в ReplacingMT
  • https://t.me/clickhouse_ru
    @Tiggers_dont_like_honey #130567 09:41 AM, 04 Dec 2019
    Добрый День.
    Подгружаю bash-ом данные на КХ:
    "cat mytext | clickhouse-client --format_csv_delimiter="$" --format_csv_allow_double_quotes=0 --format_csv_allow_single_quotes=0 --query "insert into schema.my_table FORMAT CSV ";"
    В файле редко попадаются битые строчки с лишним кол-вом столбцов. На этих битых строчек процесс загрузки падает.
    Какая опцию прописать при загрузке, чтобы пропускать строчки, которые нельзя проинсертить?
  • Версия, это изменения партов после мерджей?
  • https://t.me/clickhouse_ru
    А почему всего 140 символов?
  • https://t.me/clickhouse_ru
    @marshalov #130570 09:45 AM, 04 Dec 2019
    Нет, это когда добавляешь две записи с одинаковым ключом, а он берет последнюю по его версии, она может быть указана явно (в виде реального столбца) или не указываться и КХ решает сам
  • https://t.me/clickhouse_ru
    input_format_skip_unknown_fields
    input_format_allow_errors_num
    input_format_allow_errors_ratio
    Можно поиграться с этими параметрами
  • https://t.me/clickhouse_ru
    Спасибо за помощь.
    Есть ли возможность включить лог ошибок в внешний файл или табличку в КХ, если строчку не принимает?
    Есть ли опция по регулированию размера батча при такой загрузке?
  • https://t.me/clickhouse_ru
    видимо случайно, убрал
  • https://t.me/clickhouse_ru
    использование SELECT FINAL помогает, но тормозит запросы
    есть ли варианты эффективнее?
    или альтернатива только предварительная очистка данных?
  • https://t.me/clickhouse_ru
    @lazuka23 #130575 10:12 AM, 04 Dec 2019
    Привет
    Подскажите, при вставке данных по HTTP-протоколу может ли КХ вернуть ответ, но при этом дообработать вставку в фоне?
  • https://t.me/clickhouse_ru
    Насколько большие вставки у тебя и как много повторов?
  • https://t.me/clickhouse_ru
    Если идёт вставка в distributed таблицу, то так и будет
  • https://t.me/clickhouse_ru
    @inv2004 #130578 10:18 AM, 04 Dec 2019
    Вопрос тем кто использует clickhouse-backup - он работает удалённо по сети?
  • https://t.me/clickhouse_ru
    Вставка в не-distributed
  • https://t.me/clickhouse_ru
    по 100 000 вставки
    во время разработки дубликаты по несколько раз в день
    в продакшене раз в неделю, примерно
  • https://t.me/clickhouse_ru
    @inv2004 #130581 10:19 AM, 04 Dec 2019
    clickhouse-backup, есть упоминание параметра host, но запускать рекомендуется от "Run as 'root' or 'clickhouse' user" - что намекает на локальное использование.
  • https://t.me/clickhouse_ru
    Тогда вопрос, в том
    Что такое поведение нужно получить, или как раз не нужно?
  • https://t.me/clickhouse_ru
    @lazuka23 #130583 10:23 AM, 04 Dec 2019
    Просто хочется понять, бывает ли такое, и если бывает, то какой код при этом возвращается, 200 или какой-то другой
  • https://t.me/clickhouse_ru
    Емнип, в таком случае вставка сразу обрабатывается и если пришло, 200 ok, то данные вставлены
  • https://t.me/clickhouse_ru
    А где-то можно уточнить это поведение, чтобы быть на 100% уверенным?
  • https://t.me/clickhouse_ru
    Гарантированного варианта, вставить только уникальные записи в clickhouse, что бы не было некого промежутка времени между вставкой и чисткой дубликатов нет, ну окромя select final и group by
  • https://t.me/clickhouse_ru
    Т.е., предварительная очистка. Это эффективнее, чем селекты тормозить.
  • https://t.me/clickhouse_ru
    Есть же несколько сценариев использования CH
    Один из них акцентирован на максимально быстрой записи большого объема информации. Так получается сейчас. Грубо говоря, сидит разработчик и анализирует тонны логов. Логи постоянно и помногу пишутся, а разработчик один. Тогда за скорость выборки можно не так волноваться.
    А другой - на максимально компактном хранении и быстром чтении для использования. Пользователей и информации много, а новая информация записывается, но не так чтобы уж очень много. Тогда надо не так критична скорость записи.
    Не планируются варианты движков с такими оптимизациями?
  • зачем быстро писать, если не критична скорость выборки? Можно не быстро писать)
  • https://t.me/clickhouse_ru
    данных много на входе?
  • @Shazo_Rus #130592 11:02 AM, 04 Dec 2019
    Их можно оптимально приготовить - объединить в батчи, выбрать уникальные или только нужные же. Тут вопрос скорее где у вас больше ресурсов и что важнее.
  • https://t.me/clickhouse_ru
    так я и делаю
    хотел узнать, можно ли это переложить на саму бд
  • если я правильно понял, то должно быть как раз наоборот.
    если читается редко то и записывать можно не сильно часто батчами
    если читается часто и нужна актуальность, то пишется мелкими батчами но часто.
  • https://t.me/clickhouse_ru
    @matwey_kornilov #130595 11:05 AM, 04 Dec 2019
    Привет. А я не понял, это прямо для всех поддержка или для кого надо поддержка?
    https://clickhouse.yandex/docs/ru/introduction/info/
  • https://t.me/clickhouse_ru
    @matwey_kornilov #130596 11:07 AM, 04 Dec 2019
    Ну просто как-то очень уж фантастически звучит, что в три часа ночи по бесплатному телефону со мной кто-то поговорит про ClickHouse.
  • https://t.me/clickhouse_ru
    телефон доверия КХ
    вы хотите поговорить об этом? )
  • https://t.me/clickhouse_ru
    Да да, примерно
  • https://t.me/clickhouse_ru
    Алиса
  • https://t.me/clickhouse_ru
    это чтобы вы не повесились )
  • тут скорее отзывы и предложения, не более, вряд ли вам помогут с запросами по телефону)
  • https://t.me/clickhouse_ru
    @matwey_kornilov #130602 11:10 AM, 04 Dec 2019
    Да я просто узнать, не очень люблю вообще формат общения голосом по телефону 😊
  • https://t.me/clickhouse_ru
    @Marketing_mr #130603 11:13 AM, 04 Dec 2019
    Joined.
  • @AlexNov89 #130604 11:29 AM, 04 Dec 2019
    всем привет.
    я использую графану, чтобы рисовать графики по данным из таблицы MATERIALIZED VIEW ENGINE = AggregatingMergeTree()
    В столбце даты и времени в этой таблице могут быть пропуски.
    соответсвенно, пропуски хотелось бы заполнять нулевыми значеними, чтобы отрисовывать графики корректно.
    подскажите, как это можно сделать?
  • это будет работать, когда есть временная метка, на сколько я понимаю, а метки нет, она пропущена в таблице вообще.
    ну то есть у меня например получается такая ситуация сейчас:
    DateTime |Count
    2019-12-04 12:50:00|35
    2019-12-04 13:05:00|50

    А мне бы хотелось получить в результате запроса так:
    DateTime |Count
    2019-12-04 12:50:00|35
    2019-12-04 12:55:00|0
    2019-12-04 13:00:00|0
    2019-12-04 13:05:00|50
  • @slnnk #130607 11:40 AM, 04 Dec 2019
    Добрый день, подскажите, есть ли смысл использовать distributed-таблицы в кластере из одного шарда и нескольких реплик? Читал, что при конфигурации с одним шардом, select-запросы не могут выполняться параллельно на разных узлах. Так ли это?
  • https://t.me/clickhouse_ru
    null as zero будет рисовать 0 даже если не существует записи
  • Вообще в кх есть модификатор WITH FILL. Сам не пользовался, но это похоже на то, что вам нужно.
  • https://t.me/clickhouse_ru
    @sc0rp10 #130610 11:45 AM, 04 Dec 2019
    с виду это графана решает
  • https://t.me/clickhouse_ru
    See max_parallel_replicas setting
  • https://t.me/clickhouse_ru
    @nvartolomei #130612 12:12 PM, 04 Dec 2019
    Но для этого не нужна Distributed таблица.
  • @slnnk ↶ Reply to #130611 #130613 12:13 PM, 04 Dec 2019
    Спасибо, посмотрим.
  • @telega_s_kotom #130614 12:14 PM, 04 Dec 2019
    Все привет. Слежу за скоростью работы КХ, и самая проблемная часть, судя по логам, - Merging aggreagted data. Чем больше нагрузка (select-запросы) на КХ, тем больше времени начинает занимать этот этап. Что в это время происходит? При этом ресурсы сервера не использованы на 100%: есть запас по процессору и памяти. В iowait процессор не крутится. Не могу понять, куда копать.
  • https://t.me/clickhouse_ru
    @hombit #130615 12:46 PM, 04 Dec 2019
    Добрый день! А здесь есть разработчики CH? Хочу написать новую функцию, вижу, что другие наследуют IFunction, но в исходниках перед её объявлением стоит коммент «Previous function interface». Значит ли это, что для новых функций я должен использовать что-то другое?

    https://github.com/ClickHouse/ClickHouse/blob/master/dbms/src/Functions/IFunction.h#L351
  • https://t.me/clickhouse_ru
    @hombit ↶ Reply to #130616 #130617 12:49 PM, 04 Dec 2019
    Спасибо!
  • @iliax #130618 12:58 PM, 04 Dec 2019
    Всем привет. Есть вопрос по дедупликации. Есть таблица, партицированная по дням. Пишу батч сообщений, который затрагивает несколько партиций (на стыке дней). Могу ли я надеятся на атомарность и дедупликацию такого инсерта?
  • https://t.me/clickhouse_ru
    @kthx000 #130619 12:59 PM, 04 Dec 2019
    Привет, как сделать словарь в кх вида id->tuple(String)? сами данные в tsv
  • https://t.me/clickhouse_ru
    Нет. Нет.
  • https://t.me/clickhouse_ru
    @dzarlax #130621 12:59 PM, 04 Dec 2019
    А никто не ловил вот такую ошибку при попытке подключиться к MDB Яндекс.Облака драйвером clickhouse-driver? SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    мне в другую сторону
  • https://t.me/clickhouse_ru
    а я понял. нельзя.
  • https://t.me/clickhouse_ru
    @kthx000 #130626 01:04 PM, 04 Dec 2019
    видимо придется сложить в String и делать split, спасибо
  • https://t.me/clickhouse_ru
    @inv2004 #130627 01:22 PM, 04 Dec 2019
    Призываю в чат людей использующих clickhouse-backup и TTL совместно.
  • https://t.me/clickhouse_ru
    @inv2004 #130628 01:23 PM, 04 Dec 2019
    если я поставлю TTL - то, вроде как самая поздняя партиция будет постоянно меняться => она будет улетать в backup в постоянно порезанном виде. Как этого избегают ?
  • @debychkov #130629 01:34 PM, 04 Dec 2019
    Joined.
  • на MergeTree есть настройка ttl_only_drop_parts вот ее надо включить, чтобы партиции только целиком убивались когда они полностью протухнут
  • https://t.me/clickhouse_ru
    o, спасибо, вот прямо именно этого очень и хотелось!
  • с 13:40 - 14:00 в таблице пропуски.
    то есть он не проставил нули, хотя и стоит null as zero
  • https://t.me/clickhouse_ru
    @sc0rp10 #130633 02:21 PM, 04 Dec 2019
    там еще чот есть про это
  • ну вот я буду признателен, если подскажете что еще нужно сделать, чтобы заработало как нужно)
  • https://t.me/clickhouse_ru
    @sc0rp10 #130635 02:26 PM, 04 Dec 2019
    попробую найти как до компа доберусь
  • @GordeevEvgenii #130636 02:32 PM, 04 Dec 2019
    Вопрос по конструированию троллейбусов из буханок хлеба:
    Можно ли каким-то образом получить репликейтед таблицу на движке "Buffer" не прибегая к шаманству "селект-инсерт" в таблицу на репликейтедМержТри?
  • @mobydi #130637 02:35 PM, 04 Dec 2019
    Туплю с запросом. Хочу дропнуть все партиции у таблицы старше месяца. ALTER WHERE не поддерживает. Как выкрутиться?
  • @mobydi #130638 02:41 PM, 04 Dec 2019
    А еще как поменять SETTINGS у таблицы? Есть ALTER?
  • https://t.me/clickhouse_ru
    повторю вопрос, с позволения
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да, есть ALTER TABLE ... MODIFY SETTING
  • https://t.me/clickhouse_ru
    нет. Таблицы с движками Log нельзя использовать для долговременного хранения. Они только для краткого хранения (секунды при заливке), ребут МОГУТ не пережить
  • @mobydi ↶ Reply to #130640 #130643 02:46 PM, 04 Dec 2019
    Это очень долго. Я могу получить список старых партиций из system.parts и сразу грухнуть ALTER TABLE DROP PARTITION. Вопрос как это скреить в один запрос?
  • https://t.me/clickhouse_ru
    написать скрипт который тебе создаст нужное кол-во таких запросов и выполнит их? ты программист или чо?
  • @mobydi ↶ Reply to #130644 #130645 02:48 PM, 04 Dec 2019
    Я или чо. По этому и спрашиваю
  • https://t.me/clickhouse_ru
    один clickhouse-client генерит скрипт дропа и подает на вход другому

    cat drop.sql|clichouse-client -mn | clickhouse-client -mn
  • @mobydi ↶ Reply to #130646 #130647 02:51 PM, 04 Dec 2019
    Спасибо.
  • https://t.me/clickhouse_ru
    @den_crane #130648 02:52 PM, 04 Dec 2019
    drop.sql например

    select concat('alter table ',table, ' drop partition ',partition, ';')
    from system.parts
    where active = 1 and table = 'xxx' --and partition like '%201906%'
    group by database,table,partition
    order by database,table,partition

    в system.parts есть поля min_time max_date
  • https://t.me/clickhouse_ru
    @dzarlax #130649 02:56 PM, 04 Dec 2019
    Кто-нибудь пробовал подключать Metabase к MDB Clickhouse?
  • https://t.me/clickhouse_ru
    @sc0rp10 #130650 02:57 PM, 04 Dec 2019
    я
  • https://t.me/clickhouse_ru
    @sc0rp10 #130651 02:57 PM, 04 Dec 2019
    ну либо я вопрос не распарсил
  • https://t.me/clickhouse_ru
    И как?
  • https://t.me/clickhouse_ru
    @sc0rp10 #130653 02:57 PM, 04 Dec 2019
    да хз, суперсет удобнее с виду
  • https://t.me/clickhouse_ru
    @sc0rp10 #130654 02:57 PM, 04 Dec 2019
    тут все какое-то мультяшное и сложное
  • https://t.me/clickhouse_ru
    У меня он на сертификат ругается
  • https://t.me/clickhouse_ru
    @sc0rp10 #130656 02:58 PM, 04 Dec 2019
    а так вроде работает
  • https://t.me/clickhouse_ru
    @sc0rp10 #130657 02:58 PM, 04 Dec 2019
    вероятно я вопрос не понял
  • https://t.me/clickhouse_ru
    @sc0rp10 #130658 02:58 PM, 04 Dec 2019
    потому что понятия не имею о каком вообще сертификате идет речь
  • https://t.me/clickhouse_ru
    @dzarlax #130659 02:59 PM, 04 Dec 2019
    MDB в Яндекс.Облаке)
  • https://t.me/clickhouse_ru
    @dzarlax #130660 02:59 PM, 04 Dec 2019
    там нужно SSL сертификат поверх наложить
  • https://t.me/clickhouse_ru
    ах сорян, и правда не распарсил
  • https://t.me/clickhouse_ru
    @r0den #130662 03:08 PM, 04 Dec 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #130663 b o t 03:08 PM, 04 Dec 2019
  • https://t.me/clickhouse_ru
    @VariousVar #130664 03:16 PM, 04 Dec 2019
    Добрый день.
    Подскажите, есть ли новости или планы по изменению движка регулярок? Мне нужны негативные регулярки, в re2 не поддерживаются.
  • @githubreleases_bot #130665 b o t 03:23 PM, 04 Dec 2019
    yandex/ClickHouse tagged: v19.11.14.1-stable
    Link: https://github.com/ClickHouse/ClickHouse/releases/tag/v19.11.14.1-stable
    Release notes:
    v19.11.14.1-stable
    ClickHouse/ClickHouse

    ClickHouse is a free analytics DBMS for big data. Contribute to ClickHouse/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @CompletelyNuts #130666 03:42 PM, 04 Dec 2019
    Всем привет. Подскажите, плиз, есть ли какие-то best practices по перегону данных из одной таблицы в другую в рамках одного инстанса? Есть одна табличка (~500m записей), нужно перегнать их в другую с немного изменённой структурой. INSERT SELECT подходит прекрасно за исключением одного момента. Есть несколько materialized views. Их тоже надо как-то перегнать и мне интересно, как лучше это сделать. Пробовал создать на новой таблице и после этого перегонять данные — падает с ошибкой о лимите памяти на запрос. Такая же история если просто делать INSERT INTO new_matview_name SELECT ... FROM old_matview_name. Пока что крутится в голове просто переливать данные постепенно, небольшими кусочками, но выглядит так, будто есть способ проще/эффективнее. Clickhouse-copier вряд ли подойдёт, т.к. всего 1 инстанс, зукипер не используем.
  • https://t.me/clickhouse_ru
    @baltazorbest #130667 03:44 PM, 04 Dec 2019
    так а какая разница для clickhouse-copier один инстанс или нет
  • https://t.me/clickhouse_ru
    @baltazorbest #130668 03:44 PM, 04 Dec 2019
    таблицы то разные
  • https://t.me/clickhouse_ru
    @matwey_kornilov #130669 03:44 PM, 04 Dec 2019
    Господа, а есть какой-то аналог EXPLAIN ANALYZE?
  • https://t.me/clickhouse_ru
    Мы зукипер не заводили, а только ради этого его поднимать не хочется
  • https://t.me/clickhouse_ru
    1. сколько памяти у сервера?
    2. что такое в MV что оно жрет память? Join ?
    3. попробуйте set max_block_size=10000, max_insert_block_size=100000 перед insert в таблицу с MV.
  • https://t.me/clickhouse_ru
    set send_logs_level = 'debug'

    у КХ нет оптимизатора, там все прямое как палка
  • https://t.me/clickhouse_ru
    1. 32GB, кажется
    2. На первый взгляд ничего такого, просто табличка
    3. Попробую, спасибо
  • https://t.me/clickhouse_ru
    >32GB
    set max_memory_usage=20000000000, max_bytes_before_external_sort=15000000000, max_bytes_before_external_group_by=15000000000

    >2. На первый взгляд ничего такого, просто табличка
    ну group by / order by там есть?
  • https://t.me/clickhouse_ru
    Буду смотреть, спасибо!
  • https://t.me/clickhouse_ru
    Order by безусловно есть
  • https://t.me/clickhouse_ru
    @nimas93 #130677 03:52 PM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    гм, в select-e order by ? нафига? он там только память жрет и тормозит.
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    Надо подумать)
  • https://t.me/clickhouse_ru
    Сама таблица MergeTree(), matviews с другими движками (например, SummingMergeTree())
    Order by, соответственно, в качестве первичного ключа
  • https://t.me/clickhouse_ru
    я спрашивал про order by в select. При чем тут первичный ключ движка.
  • https://t.me/clickhouse_ru
    А, пардон, в таком случае нет
  • https://t.me/clickhouse_ru
    @CompletelyNuts #130684 04:04 PM, 04 Dec 2019
    Селект просто втупую забирает данные из таблицы
  • @robikrom #130685 04:11 PM, 04 Dec 2019
    Joined.
  • Не добрался?))
  • @dan198x #130687 04:34 PM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @135305218 #130689 06:35 PM, 04 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @bralbral #130690 11:06 PM, 04 Dec 2019
    Подскажите! ситуация подталкивает к использованию таблиц merge, собственно и возник вопрос , хотя ответ , скорее всего будет - "нет" , но все же. Есть 2 таблицы - данные идентичны , различия только в order by. Обращение идёт к таблице merge , к примеру , по ключу сортировки из первой таблицы. Какой вернётся результат ? Двойной- поскольку данные идентичны , или же мердж подумает , что за предикат и будет искать только в той таблице , где это актуально?
  • https://t.me/clickhouse_ru
    @bralbral #130691 11:07 PM, 04 Dec 2019
    Этот вопрос из-за того, что смутила фраза в документации " При чтении будут использованы индексы тех таблиц, из которых реально идёт чтение, если они существуют "
  • https://t.me/clickhouse_ru
    двойной
  • https://t.me/clickhouse_ru
    имеется в виду что если индекс есть подходящий, он будет использован
  • https://t.me/clickhouse_ru
    @den_crane #130694 11:17 PM, 04 Dec 2019
    Кстати с merge не работает optimize_move_to_prewhere (надо писать prewhere вручную)
  • 05 December 2019 (183 messages)
  • https://t.me/clickhouse_ru
    Благодарю!
  • @290393139 #130696 05:34 AM, 05 Dec 2019
    Добрый день! Подскажите, пожалуйста, можно ли как то решить проблему с ограничением для даты: Range of values in the Unix timestamp: [1970-01-01 00:00:00, 2105-12-31 23:59:59].? Есть даты (дата рождения и пр.), которые меньше 1970 года и при этом нужно сохранить тип дата, положить в string нам не подходит(
  • https://t.me/clickhouse_ru
    @Dmgburg #130697 05:49 AM, 05 Dec 2019
    Мы Int64 таймстемпы сохраняем
  • https://t.me/clickhouse_ru
    @ajIeks #130698 06:24 AM, 05 Dec 2019
    Всем привет, сталкивался кто-нибудь с таким поведение: есть две таблицы, обычный ReplicatedMergeTree и AggregatingReplicatedMergeTree, связаны через MV. Данные перетекают из первой во вторую, все ок. Но в некоторые моменты (похоже на мержи) данные за последний час (время до часа округляется) перепрыгивают в 00:00:00, в итоге первый час постепенно растет, а последующие как получится. Что-то не пойму куда копать. Версия 19.17.4.11
  • https://t.me/clickhouse_ru
    @ajIeks #130699 07:36 AM, 05 Dec 2019
    Время каждой новой записи >= предыдущей
    ┌──────────────────ts─┬─────X─┐
    │ 2019-12-05 06:00:00 │ 42360 │
    │ 2019-12-05 07:00:00 │ 4824 │
    └─────────────────────┴───────┘
    спустя некоторое время
    ┌──────────────────ts─┬─────X─┐
    │ 2019-12-05 06:00:00 │ 43428 │
    │ 2019-12-05 07:00:00 │ 5052 │
    └─────────────────────┴───────┘
    это уже в отдельной, свеже созданной таблице, т.е. воспроизводится. Смотрел данные, все корректно со значением времени.
  • https://t.me/clickhouse_ru
    Если имелось ввиду перепрыгивают в 00:00, то проверьте часовой пояс серверов и clickhouse-server, если сервера разные
  • https://t.me/clickhouse_ru
    @ajIeks #130701 07:44 AM, 05 Dec 2019
    UTC, это смотрел, на примере выше перепрыгивает в 6 часов (так как значений раньше нет) и если бы были проблемы с поясом то прыгало на оффсет максимум, а тут с текущего в первый в пределах партишена
  • https://t.me/clickhouse_ru
    @ajIeks #130702 07:46 AM, 05 Dec 2019
    причем если перелить партишен целиком, все ок 😕
  • https://t.me/clickhouse_ru
    @ajIeks #130703 08:06 AM, 05 Dec 2019
    Либо я дурак, либо лыжи не едут https://gist.github.com/fuCtor/cd51dc0313d6652469c76b8fa6bda939
    response.txt

    GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
    @ajIeks #130704 08:06 AM, 05 Dec 2019
    полностью воспроизвелось на другом инсте, в гисте SQL и все ответы Clickhouse
  • https://t.me/clickhouse_ru
    @ajIeks #130705 08:10 AM, 05 Dec 2019
    тчерт =( таки сам дурак, забыл в order by вложить ts, вот он и схлопывает
  • https://t.me/clickhouse_ru
    @rheinx #130706 08:20 AM, 05 Dec 2019
    Ребят, а flush_interval_milliseconds для query_log/part_log применяется без рестарта?
  • @1017753153 #130707 09:11 AM, 05 Dec 2019
    Joined.
  • @409323044 #130708 09:56 AM, 05 Dec 2019
    Всем привет! Пробую CollapsingMergeTree - у меня он совсем ничего не схлопывает. Есть исходная строка с id = 1 и sign = 1. Затем, добавляю сторно строку с id = 1 и sign = -1 и сразу же новую строку id = 1 и sign = 1. Но я еще не видел, чтобы исходная и сторнирующая строки схлопнулись (сами) за несколько дней. Естесственно, помогает select ... final и optimize ... final и group by id можно использовать. Но хотелось бы без final обойтись. Версия 19.13.1.11
  • https://t.me/clickhouse_ru
    HAVING SUM(flag) > 0
  • https://t.me/clickhouse_ru
    @m1khal3v #130710 10:01 AM, 05 Dec 2019
    а блин, не увидел про group by
  • https://t.me/clickhouse_ru
    @odaykhovskaya #130711 10:01 AM, 05 Dec 2019
    Joined.
  • @409323044 #130712 10:02 AM, 05 Dec 2019
    я про то, что обещанное схлопывание не происходит
  • https://t.me/clickhouse_ru
    @odaykhovskaya #130713 10:04 AM, 05 Dec 2019
    Всем привет!
    Помогите разобраться пожалуйста, почему такой баг

    https://github.com/ClickHouse/ClickHouse/issues/8030
    `Exception: Number of columns doesn't match` while inserting with UNION ALL into AggregatingMergeTree table · Issue #8030 · ClickHouse/ClickHouse

    I get an exception when trying to insert data into table. It looks like floating bug, or I just cannot understand why this is happening. Code: 20. DB::Exception: Received from host:port. DB::Except...

  • https://t.me/clickhouse_ru
    @Gargundentel #130714 10:05 AM, 05 Dec 2019
    Всем привет! Ни кто случайно не пробовал коннектиться из qlik к базе КХ? Вроде как это можно сделать через ODBC, но пока не получается разобраться как именно ^_^
  • https://t.me/clickhouse_ru
    Наверное просто мало данных и кх решает, что вообще можно не мержить их пока.
    Можете принудительно схлопнуть с optomize, ну или нагенерить больше данных.
  • @409323044 #130716 10:09 AM, 05 Dec 2019
    Так я специально делаю: сторнирую исходные данные за последний месяц и вставляю актуальные данные за месяц без проверки на реальные изменения, т.е. утраиваю их при каждом проходе
  • если только несколько десятков миллионов строк это мало и collapsing работает только от миллиардов строк.
  • https://t.me/clickhouse_ru
    @forward32 #130718 10:14 AM, 05 Dec 2019
    Не, миллионов должно хватать)
    Покажите создание таблицы.
  • https://t.me/clickhouse_ru
    @antonroubtsov #130719 10:16 AM, 05 Dec 2019
    Joined.
  • CREATE TABLE
    edw.fact_table
    (
    id Int32,
    creation_datetime DateTime,
    deposit_creation_date Nullable(Date),
    amount Decimal(18,3),
    sign Int8,
    load_datetime DateTime('UTC')
    )
    ENGINE = CollapsingMergeTree(sign)
    PARTITION BY toYYYYMM(creation_datetime)
    ORDER BY (id);;
  • https://t.me/clickhouse_ru
    @forward32 #130721 10:18 AM, 05 Dec 2019
    А у вас данные за несколько месяцев? Схлопывание работает в пределах одной партиции, если у вас данные размазаны на несколько - будут дубликаты в select *.
  • https://t.me/clickhouse_ru
    @forward32 #130722 10:19 AM, 05 Dec 2019
    Сделайте запрос с отсечением по creation_datetime и посмотрите на дубликаты там
  • https://t.me/clickhouse_ru
    @forward32 #130723 10:19 AM, 05 Dec 2019
    (чтобы из одной партиции взялись)
  • сейчас только практически 1 партиция: ноябрь и начало декабря. Дубли есть естесственно и внутри партиции (ноябрь)
  • @409323044 #130725 10:21 AM, 05 Dec 2019
    т.е., скажу больше - вообще ничего не схлопывалось еще, при том что дублей сильно больше чем актуальных данных
  • @409323044 #130726 10:22 AM, 05 Dec 2019
    может это баг 19.13 версии?
  • https://t.me/clickhouse_ru
    @forward32 #130727 10:24 AM, 05 Dec 2019
    Не уверен, есть ли проблема в том, что sign - не последнее поле в таблице у вас. Еще можно логи посмотреть на предмет того, что он по какой-то причине не может смержить. Куда-то он об этом пишет (в описании CollapsingMT видел что-то про это).
  • https://t.me/clickhouse_ru
    @ablagov #130728 10:27 AM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @apbodrov #130729 10:32 AM, 05 Dec 2019
    Всем привет. А подскажите, пожалуйста, про ArrayIf
    В доке написано, что Комбинаторы -If и -Array можно сочетать. При этом, должен сначала идти Array, а потом If. Примеры: uniqArrayIf(arr, cond), quantilesTimingArrayIf(level1, level2)(arr, cond). Из-за такого порядка получается, что аргумент cond не должен быть массивом.
    А как тогда указывать условие на элемент массива cond?
  • @aopetrov86 #130730 10:46 AM, 05 Dec 2019
    Оно так и так не должено быть массивом. Это же фильтр для строк которые попадут или нет в итоге в функцию агрегации.
  • @aopetrov86 #130731 10:46 AM, 05 Dec 2019
    Соответственно это UInt8
  • @aopetrov86 #130732 10:47 AM, 05 Dec 2019
    Т.е. в данном случае это условие на массив целиком а не на его элементы.
  • https://t.me/clickhouse_ru
    например так
    SELECT sumIfArray(v, c)
    FROM
    (
    SELECT
    [1, 2, 3] AS v,
    [1, 0, 1] AS c
    )
    ┌─sumIfArray(v, c)─┐
    │ 4 │
    └──────────────────┘
  • https://t.me/clickhouse_ru
    @apbodrov #130734 10:51 AM, 05 Dec 2019
    гм, я думал оно должно работать как фильтр на элементы массива (
  • @aopetrov86 #130735 10:53 AM, 05 Dec 2019
    Если надо фильтровать массив, можно попробовать что-то типа arraySum: https://clickhouse.yandex/docs/ru/query_language/functions/higher_order_functions/#higher_order_functions-array-sum
  • https://t.me/clickhouse_ru
    вот фильтр на элементы массива
    select arrayFilter(x -> x > 2, [1,2,3,4,5])
  • https://t.me/clickhouse_ru
    @apbodrov #130737 10:54 AM, 05 Dec 2019
    а вот мне нужно было countIf. но я сделал в итоге через arrayJoin
  • https://t.me/clickhouse_ru
    @apbodrov #130738 10:54 AM, 05 Dec 2019
    спасибо!
  • посмотрю, спасибо
  • https://t.me/clickhouse_ru
    @nfm4v ↶ Reply to #128349 #130740 11:16 AM, 05 Dec 2019
    CREATE DICTIONARY {dict_name} ( key UInt64, value UInt16 ) PRIMARY KEY key SOURCE(CLICKHOUSE(HOST '{client.host()}' PORT {client.port()} TABLE '{table}' DB '{db}' USER 'default')) LIFETIME(MIN 0 MAX 0) LAYOUT(HASHED());
  • @645041698 #130741 11:22 AM, 05 Dec 2019
    ребят, хелп

    есть

    table1 (MergeTree)
    - userId
    - etc.

    table2 (MergeTree)
    - userId
    - etc

    пытаюсь джоинить:

    SELECT tab1.*, tab2.* FROM "table1" tab1 JOIN "table2" tab2 ON tab1.userId = tab2.userId

    на что получаю:

    Memory limit (for query) exceeded: would use 9.32 GiB

    в table1 примерно 40 тысяч строк

    в table2 примерно 350 миллионов строк

    вопросики:

    1. так понимаю table2 кликхаус в память берет и поэтому Memory limit

    2. как правильно сделать? может структура не верная?
  • https://t.me/clickhouse_ru
    Ребят, может кто-то знает?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @VariousVar #130744 11:30 AM, 05 Dec 2019
    Значит без шансов. Спасибо)
  • https://t.me/clickhouse_ru
    @kushneryk #130745 11:32 AM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @sc0rp10 #130746 11:34 AM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    поменять местами таблицы?
  • фишка в том, что нужна инфа именно по userId из table1

    в случае смены местами получим много ненужной инфы
  • https://t.me/clickhouse_ru
    а что нужно? последнее значение etc?
  • надо примерно так

    table1.userId table1.etc table2.data

    по факту ищем все идшники из table1 и сопоставляем из таблицы table2

    или иначе сказать:

    ищем данные для идшек (table1) из данных table2
  • https://t.me/clickhouse_ru
    меняете местами, убираете лишнее
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130752 11:48 AM, 05 Dec 2019
    правая таблица должна умещаться в лимит
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130753 11:50 AM, 05 Dec 2019
    можно правую таблицу сгруппировать по user_id и groupArray(table2.data)
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130754 11:50 AM, 05 Dec 2019
    если поместится в память
  • попробую сейчас

    но скорее всего не то будет
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130756 11:52 AM, 05 Dec 2019
    можно добавить костыль в правую таблицу: Where user_id in (select user_id from table1 Where 1...)
  • я думаю что кодом буду работать

    читаю из table1 и далее бегаю в table2 за данными
  • @645041698 #130758 11:54 AM, 05 Dec 2019
    иного варианта не вижу сейчас
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130759 11:54 AM, 05 Dec 2019
    есть ощущение, что можно переделать запрос
  • еще разок

    table1:
    - userId (UUID)
    - campaign

    table2:
    - userId
    - os
    - code

    и надо в такой форме данные получить:

    userId : campaign : table2.os : table2.code
  • https://t.me/clickhouse_ru
    user_id уникальны? если нет, группировка, фильтр и джойн
  • уникальность не гарантирует кликхаус

    в table1 не повторяются (гарантия кодом)

    в table2 на один userId может быть множество записей
  • https://t.me/clickhouse_ru
    вам в table2 нужны все user_id?
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130764 12:08 PM, 05 Dec 2019
    если в правой таблице есть лишние user_id, фильтруем условием выше
  • в table2 нужны данные по всем userId из table1
  • есть, да

    есть пример как сделать? или где прочитать?
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130767 12:11 PM, 05 Dec 2019
    можно добавить костыль в правую таблицу: Where user_id in (select user_id from table1 Where 1...)
  • https://t.me/clickhouse_ru
    @dmitrii_wh #130768 12:16 PM, 05 Dec 2019
    скопируйте сюда запрос, будет проще
  • https://t.me/clickhouse_ru
    @Dori_Grey #130769 12:18 PM, 05 Dec 2019
    Joined.
  • @TokhaNN #130770 12:23 PM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @shcherbakan #130771 01:12 PM, 05 Dec 2019
    Всем привет, нужен совет, кто обновлял клихаус просто с краторным разрывом от текущей версии)) Есть база примерно 0.5T, кликхаус 1.1.54336. Обновляться сразу до последней, я боюсь. У меня есть вторая нода там сейчас 19.17.4.11, я перекинул данные просто копированиаем файлов на обновленную ноду, вроде все работает и проблем как таковых нет. Кто-то знает могут ли быть какието проблемы в дальнейшем и стоит ли так вообще перекидывать? Стопать продовскую ноду на долго не вариант
  • @MaoShultz #130772 01:19 PM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Дмитрий предложил вам ограничить набор из table2 , чтобы он поместился в оперативную память. Это можно сделать множеством способов. Например первый способ : select * from table1 all inner join (select * from table2 where field1 in (select distinct field1 from table1)) as a1 on a1.field1 = table1.field1
  • https://t.me/clickhouse_ru
    @radya100 #130774 01:38 PM, 05 Dec 2019
    И второй способ - на мой взгляд более правильный. Дело в том что скорее всего вы будете в конечном рекордсете данные группировать, или фильтровать (если конечно речь не идет про батч загрузку данных в другой источник). Поэтому лучше сделать эту обработку непосредственно в подзапросе. Пример 2 : select * from table1 all inner join (select field1, max(field2) as f2 from table2 where field1 in (select distinct field1 from table1) group by field1) as a1 on a1.field1 = table1.field1
  • https://t.me/clickhouse_ru
    @radya100 #130775 01:41 PM, 05 Dec 2019
    Второй вариант - предпочтительнее - он существенно ограничит расходование оперативной памяти. Просто примените нужную вам агрегатную функцию , или ограничьте подзапрос с помощью where
  • https://t.me/clickhouse_ru
    пол терабайта с гигабитной сеткой скопируют через командную строку (сlickHouse-client) в течении часа - двух без остановки продовской ноды. Может быть просто перекинуть данные через конвейер ? Есть и более модные варианты - например clickhouse-copier (https://clickhouse.yandex/docs/ru/operations/utils/clickhouse-copier/)
  • https://t.me/clickhouse_ru
    Я тоже думаю что по времени это много не займет. Спасибо, сейчас пощупаю clickhouse-copier)
  • https://t.me/clickhouse_ru
    @radya100 #130778 02:06 PM, 05 Dec 2019
    Например - есть 2 одинаковые таблицы на 2-х серверах srv1(version1) и srv2(version 19) create table tab (col1 int) Engine = MergeTree order by col1. В командной строке второго сервера : $clickHouse-client -h srv1 -q "select col1 from tab format TSV" | clickHouse-client -h srv2 -q "insert into tab(col1) format TSV"
  • https://t.me/clickhouse_ru
    @tratatataass #130779 02:16 PM, 05 Dec 2019
    подскажите пожалуйста, если я делаю INSERT INTO lcal_table SELECT * FROM remote(...) и выборка будет большая, оно же не будет сначала в память все грузить? Или нужно селект на пачки разбить?
  • https://t.me/clickhouse_ru
    @radya100 #130780 02:23 PM, 05 Dec 2019
    ; )) Попробуйте сделать так как я буквально постом выше предложил. Будет быстрее скорее всего
  • https://t.me/clickhouse_ru
    @den_crane #130781 02:35 PM, 05 Dec 2019
    Какой-то бред. Зачем насиловать все insert-ми, если можно просто скопировать файлы?
  • https://t.me/clickhouse_ru
    вы все сделали правильно.

    Проблемы будут у приложения. Тестируйте приложение.
  • https://t.me/clickhouse_ru
    как раз этим и занимаемся)
  • https://t.me/clickhouse_ru
    Кто-то сталкивался с таким?
    Code: 20. DB::Exception: Received from host:port. DB::Exception: Number of columns doesn't match.

    Какой-то плавающий баг, возникающий в рандомных местах 🤷‍♀️
    Подробнее эту дичь описала здесь https://github.com/ClickHouse/ClickHouse/issues/8030
    `Exception: Number of columns doesn't match` while inserting with UNION ALL into AggregatingMergeTree table · Issue #8030 · ClickHouse/ClickHouse

    I get an exception when trying to insert data into table. It looks like floating bug, or I just cannot understand why this is happening. Code: 20. DB::Exception: Received from host:port. DB::Except...

  • https://t.me/clickhouse_ru
    было очень много изменений в sql. Например SELECT count(*) FROM table WHERE 0 выдает другой результат (empty_result_for_aggregation_by_empty_set) Читайте changelog Backward incompatible changes.
  • https://t.me/clickhouse_ru
    ну баг и что? Никто кроме вас так инсерты делать еще не догадался.
    Это вообще какой странный подход. Непонятно зачем так делать инсерты.
    По-моему вы шли в библиотеку, зашли в лес, потерялись, и спрашиваете где север. Я не знаю где север, знаю где библиотека.
  • https://t.me/clickhouse_ru
    А как еще инсертить в столбцы AggregateFunction?
    У вас есть другие предложения?

    You can’t use a normal INSERT to insert a row in a table containing AggregateFunction columns, because you can’t explicitly define the AggregateFunction value. Instead, use INSERT SELECT with ‘-State’ aggregate functions for inserting data. (пруф https://clickhouse-docs.readthedocs.io/en/latest/table_engines/aggregatingmergetree.html)
  • https://t.me/clickhouse_ru
    @den_crane Нет , не бред - при всем уважении к вам. Я предположил , что структура таблиц , может быть изменена на новом сервере. Ну как минимум - использован новый синтаксис в создании таблиц
  • https://t.me/clickhouse_ru
    >А как еще инсертить в столбцы AggregateFunction
    конечно знаю 🙂 .

    создаете null таблицу, навешиваете на нее MV и вставляете в null. Я только так и делаю.
    https://gist.github.com/den-crane/f7382cd4f1f859ff6ac46afe7dc9925a
  • https://t.me/clickhouse_ru
    Так и где ТС просил переделывать таблицу? Где ему в ответе написали что все можно переделать при этом?
    а copier вообще требуют кучу мозговых усилий и зукипер.
  • https://t.me/clickhouse_ru
    Но это же не значит , что мое предложение - бред ? ; )) это еще один из вариантов решения задачи. На самом деле я сам не раз переносил файлами - это конечно же быстрее
  • https://t.me/clickhouse_ru
    @radya100 #130792 02:55 PM, 05 Dec 2019
    Повторюсь - это позволит как минимум избавиться от depricated методов создания таблиц.
  • https://t.me/clickhouse_ru
    Интересный подход, но если честно выглядит как костыль
    Хотелось бы инсертить напрямую
  • https://t.me/clickhouse_ru
    вы инстертите медленным парсером (из-за select-в), что вообще не подходит для bigdata.
    напрямую можно новой функцие input , которая позволяет в insert
    INSERT INTO example SELECT id, ifNull(num, -1) FROM input('id UInt32, num Nullable(Int32)') format JSONEachRow {"id": 1, "num": null};

    и еще вам можно использовать SimpleAggregateFunction

    create table test_table
    (
    x Int64,
    cnt UInt32,
    min_ts SimpleAggregateFunction(min, UInt64) Codec(LZ4),
    max_ts SimpleAggregateFunction(max, UInt64) Codec(LZ4)
    )
    engine = AggregatingMergeTree() order by x

    insert into test_table values (1,1,1,1);

    insert into test_table values (1,1,2,2);

    optimize table test_table final
    select * from test_table
  • https://t.me/clickhouse_ru
    @den_crane #130795 03:01 PM, 05 Dec 2019
    SimpleAggregateFunction для sum / min / max работает быстрее и занимает меньше места, чем функции со стейтами
  • https://t.me/clickhouse_ru
    👍
  • @kreuzerkrieg #130797 03:04 PM, 05 Dec 2019
    Коллеги, вопрос по зукиперу
  • @kreuzerkrieg #130798 03:05 PM, 05 Dec 2019
    Как его сетапить в смысле скейла? я тут пытаюсь играться с реплицируеми таблицами и у меня ЗК умирает каждые несколько дней, по непонятным причинам. Проц на 100% и сервер не отвечает
  • @kreuzerkrieg #130799 03:06 PM, 05 Dec 2019
    тестовые таблицы у меня по несколько сотен миллиардов строк, может бросить больше cpu power на все это?
  • @kreuzerkrieg #130800 03:06 PM, 05 Dec 2019
    а больше это сколько? есть какие нибудь guidelines как конфигурировать ЗК под КХ?
  • https://t.me/clickhouse_ru
    FixedString(50) -- лучше чем просто String только в случае если там действительно 50 символов, иначе надо использовать String

    https://t.me/clickhouse_ru/87609
    Alexey Milovidov in ClickHouse не тормозит

    FixedString имеет смысл использовать только в тех случаях, когда строки действительно имеют фиксированную длину. В остальных случаях, преимущества по скорости не будет, или даже скорость работы будет хуже.

  • https://t.me/clickhouse_ru
    Там действительно fixed, +- несколько символов
  • https://t.me/clickhouse_ru
    ноды заняли всю память и jvm ушла в gc?
  • @kreuzerkrieg #130804 03:13 PM, 05 Dec 2019
    вроде нет, секунда, гляну
  • https://t.me/clickhouse_ru
    и у вас будут проблемы скорее всего и с памятью и со скоростью. Первичный ключ в озу,
    у вас primary key (category, direction, field1, field2, field3, field4) , >200 байт.
    Не знаю какой размер будет у таблицы (в строках), я бы переделал на хеши (8 байт вместо 50).
  • нет, памяти было много свободной
    проц на 100%
  • https://t.me/clickhouse_ru
    сколько размер снепшота у зукипера? (у меня несколько таблиц по 400млрд, размер базы / снепшота 50МБ)
  • @kreuzerkrieg #130808 03:17 PM, 05 Dec 2019
    перезапуск не помогает, проц на нуле, но ноды не находят друг друга, не понятно почему
  • секунда, девопы их заресайзили сечас, думаю, даты там уже нет
  • @kreuzerkrieg #130810 03:17 PM, 05 Dec 2019
    проверяю
  • @kreuzerkrieg #130811 03:18 PM, 05 Dec 2019
    так, по памяти, 10% потребления
  • есть что то в этом, если мы стираем всю папку с датой то все работает несколько дней а потом опять сдыхает
  • https://t.me/clickhouse_ru
    эээ в каком смысле стираете?
  • rm -rf :)
  • @kreuzerkrieg #130815 03:20 PM, 05 Dec 2019
    это тестовый сетап, можно и стереть все
  • https://t.me/clickhouse_ru
    все ясно, это херня какая-то
  • таки мы потеряли всю дату при ресайзе кластера
  • https://t.me/clickhouse_ru
    >напрямую можно новой функцие input , которая позволяет в insert
    INSERT INTO example SELECT id, ifNull(num, -1) FROM input('id UInt32, num Nullable(Int32)') format JSONEachRow {"id": 1, "num": null};

    А если столбец типа AggregateFunction?
  • Это невероятная херня, ни я (ну у меня опыт с ЗК нулевой) ни девопы не могут понять что ему не так, по логам ничего не понять
  • @kreuzerkrieg #130820 03:23 PM, 05 Dec 2019
    сеичас поставили более жирные инстансы, посмотрим что будет.
  • @kreuzerkrieg #130821 03:23 PM, 05 Dec 2019
    а что там со снепшотами? я предполагаю они довольно жирные будут
  • https://t.me/clickhouse_ru
    зукипер простой как палка, у меня аптайм у нод зукипера по 4 года, это самая надежная вещь на этой планете, после заббикса.
  • https://t.me/clickhouse_ru
    размер базы зукипера зависит от прямоты ваших рук. От размера базы КХ почти не зависит.
  • Протестую! У нас админы заббикс сами ломают, а вот зукипер не смогли ещё завалить хоть и пытались 😀
  • хм... а какая у тебя версия? древняя какая то, раз аптайм 4 года? может в этом и дело?
  • насчет прямоты рук, поподробнее плиз, мы то сами ничего с ним не делаем, там КХ что то пишет и пишет, мы тут причем?
  • https://t.me/clickhouse_ru
    create table mv_z_store(a date, max_b AggregateFunction(MAX,Int64)) ENGINE = AggregatingMergeTree Partition by toYYYYMM(a) order by a;
    INSERT INTO mv_z_store SELECT a, maxState(b) FROM input('a Date, b Int64') group by a format CSV "2019-12-05",1
    INSERT INTO mv_z_store SELECT a, maxState(b) FROM input('a Date, b Int64') group by a format Values ('2019-12-05',1);
  • https://t.me/clickhouse_ru
    @stryuktura #130828 03:32 PM, 05 Dec 2019
    Всем привет! Кто-нибудь знает, можно ли в clickhouse сделать map для массива? нужно выбрать из массива элементы, которые удовлетворяют некоторым условиям
  • https://t.me/clickhouse_ru
    не в этом. Сколько памяти у сервера? Это выделенный сервер? ЗК и кликхауз нельзя ставить вместе
    Ищите OOM в линуксе sudo dmesg | tail
  • https://t.me/clickhouse_ru
    Скорее всего про бомбу замедленного действия - читали ? https://clickhouse.yandex/docs/ru/single/#zookeeper
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    Вы задаете партиционирование и регулируете правильность (по партициям) и частоту инсертов
  • https://t.me/clickhouse_ru
    ну место на диске кончится, при чем падения зукипера?
  • https://t.me/clickhouse_ru
    Вариант, попробую
    Спасибо
  • https://t.me/clickhouse_ru
    Да, спасибо!)
  • 32Г, 16vCPU, выделенные машины, кластер из трех. сколько надо? если надо больше, поставим больше, не вопрос
  • https://t.me/clickhouse_ru
    Что-то я действительно сегодня - много предполагаю.
  • https://t.me/clickhouse_ru
    SELECT arrayStringConcat(arrayMap(i -> x[-i], arrayEnumerate(extractAll('Misha', '.') AS x)))
    ┌─z─────┐
    │ ahsiM │
    └───────┘
  • https://t.me/clickhouse_ru
    спасибо!))
  • видели, место было, 78% диска было свободно
  • https://t.me/clickhouse_ru
    32ГБ достаточно. Единственное что у меня настроено -Xms8g
    Смотрите размер снепшота в момент заливки, может у вас вылетает за 32ГБ и надо тогда разбираться почему

    еще echo mntr|nc localhost 2181 показывает размер базы в zk_approximate_data_size
  • о... это уже что то... ок, через пару дней он загнется, буду смотреть что его убивает...
    Xms емнип это начальный размер памяти у jvm? так?
  • https://t.me/clickhouse_ru
    да, и еще этот парамерт задает цель гарбадж коллектору, к которой надо стремится.
  • Понятно. Будем проверять. спасибо за подсказки
  • https://t.me/clickhouse_ru
    еще момент. Если реплика КХ выключается, она перестает читать и чистить свою очередь репликации и база ЗК естественно начинает расти, раньше она росла до бесконечности, теперь вроде есть какой-то предохранитель.
  • https://t.me/clickhouse_ru
    @den_crane #130846 03:50 PM, 05 Dec 2019
    И еще ЗК нужны SSD, иначе медленно работает, у жестких дисков только 200 seek/sec, <200 транзакций ЗК.
  • о.... это очень важный момент, потому что это то что у меня происходит... я поднимаю кластер КХ, делаю импорт на 400млрд строк, потом у меня это все наворачивается, я выкидываю кластер и поднимаю новый, навая база данных, новые таблицы. Т.е. количество даты у меня растет постоянно. Это с одной стороны, с другой стороны, ну сколько уже там той даты? не гигабайты. А какой предел у ЗК? там на самом деле стереть реплицируемую таблицу из ЗК берет больше часа, то еще мозгоклюйство...
  • @kreuzerkrieg #130848 03:53 PM, 05 Dec 2019
    насчет дисков, у меня EBS, SSDишный, но там IOPS не айс все равно, могу NVMe воткнуть, но он зараза эфемерный, не самая лучшая идея
  • https://t.me/clickhouse_ru
    @den_crane #130849 03:55 PM, 05 Dec 2019
    у начальных EBS 3000iops -- тоже нормально.

    >стереть реплицируемую таблицу из ЗК берет больше часа
    что-то неправильно, слишком много партиций?
  • @kreuzerkrieg #130850 03:55 PM, 05 Dec 2019
    можно конечно provisioned EBS взять, но он дорогой... к скольки IOPS мы должны стремиться? я хочу потестить его с fio
  • Море партиций, и тут мы выходим к следующему вопросу :)
    Но сначала давай с ЗК закончим
    3k IOPS по твоему достаточно? если так то хорошо, одной головной болью меньше
  • @479837600 #130852 04:02 PM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    3k достаточно. В консоли у сервера(cloudwatch) видно сколько он жрет iops, проверьте есть там полочки из 3к или нет

    и партиционирование важно, меняем PARTITION BY получаем разницу в 100 раз

    You should not. When you insert every 5 minutes and your inserted rows cover 1 (sometimes 2) hour and the insert creates only one part.

    I was talking about another case. Partition by (toStartOfHour(), other_column). If the batch (1 mil. rows) contains many (i.e. 10) different values of other_column (covers 10 partition) the batch (insert) will be separated to 10 parts. It has negative impact on performance.
    For this case it should be 10 inserts (10 batches) with 1mil. rows each with only one other_column value.

    CREATE TABLE bad
    ( k Int64, s String)
    ENGINE = ReplicatedMergeTree ('/clickhouse/{cluster}/tables/bad','{replica}')
    PARTITION BY k ORDER BY s;

    insert into bad select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 3.829 sec.
    insert into bad select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 1.347 sec.
    insert into bad select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 0.874 sec.

    CREATE TABLE good
    ( k Int64, s String)
    ENGINE = ReplicatedMergeTree ('/clickhouse/{cluster}/tables/good','{replica}')
    PARTITION BY tuple() ORDER BY s;

    insert into good select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 0.032 sec.
    insert into good select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 0.013 sec.
    insert into good select number, 'x' from numbers(110);
    0 rows in set. Elapsed: 0.008 sec.
  • @kreuzerkrieg #130854 04:04 PM, 05 Dec 2019
    Чорт! Девопы то все посносили, уже ничего не могу проверить... Ладно, давай оставим это до тех времен пока оно снова не навернется, что бы было больше конкретики...
  • https://t.me/clickhouse_ru
    @oroborosus #130855 04:07 PM, 05 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @AterCattus #130856 04:12 PM, 05 Dec 2019
    Всем привет.
    А может кто-нибудь подсказать, как понять, чем занята мутация? Запущена давно, счетчик партиций уменьшается понемногу, на нагрузка на сервер почти что никакущая. Чего он ждет, во что упирается?
  • https://t.me/clickhouse_ru
    @Deniallugo #130857 04:13 PM, 05 Dec 2019
    Есть ли какая-то, дефолтная агрегирующая функция у AggregatingMergeTree для Decimal колонок?
  • У меня партицирование по месяцам, проблема в том что есть параллельные вставления, они плодят парты, пока файлы мелкие получается много партов, и я вставляю через Buffer Engine что бы их было поменьше. В конце я имею не так уж много партов на месяц, штуки три, ну максимум пять. но это одна сторона медали, вторая сторона связана с моим вторым вопросом. И да, я не правильно итерпретировал твой вопрос, партиций не много, много партов.
  • https://t.me/clickhouse_ru
    У меня на lcal_table завязаны еще мат вьюшки, которые по объемам больше исходных таблиц. Не хочу их же через сеть тащить. Думал создать пустые MV и сделать инсерт из remote.
  • https://t.me/clickhouse_ru
    если функция не упомянута в AggregatingMergeTree и поле не в ключе, для любого типа данных AggregatingMergeTree берет any
    т.е. при схлопывании строк по первичному ключу, будут вычислены state функции, для остальных столбцов подставится какое-то значение из любой строки.
  • https://t.me/clickhouse_ru
    @Deniallugo #130861 04:30 PM, 05 Dec 2019
    круто, спасибо
  • https://t.me/clickhouse_ru
    значит дело в чем-то другом. Парты это не проблема.
  • https://t.me/clickhouse_ru
    мне этого не понять.
    Инсерт вам даст максимум пару миллионов строк в секунду, файлы с партами у меня копируются со скоростью примерно в 500раз выше.
  • https://t.me/clickhouse_ru
    sar -d 1 100
  • https://t.me/clickhouse_ru
    Гляну. Но графана и нетдата ничего интересного не показывают.
  • https://t.me/clickhouse_ru
    Ну, там таже утилизация 20%, что и ожидалось. Бездельничает.
  • https://t.me/clickhouse_ru
    @Volkov #130867 05:34 PM, 05 Dec 2019
    Добрый вечер. Подскажите, имеется ли какой-либо калькулятор для примерного подсчета количества серверов/железа и т.д. для ClickHouse под определенный объём данных?
  • https://t.me/clickhouse_ru
    В общем, alter table T1 where (select from T2) очень плохо работает. А если заранее собрать ответ селекта, то alter table T1 where (1, 2,3,4 ...) работает отлично.
  • https://t.me/clickhouse_ru
    нет. У меня есть таблица А, загружаю в нее 100ГБ сырых, таблица получается 1ГБ, есть другая таблица B, заливаю в нее 100ГБ, получается 150ГБ
  • https://t.me/clickhouse_ru
    А вы что хотите подсчитать ?
  • https://t.me/clickhouse_ru
    @Volkov ↶ Reply to #130870 #130871 07:48 PM, 05 Dec 2019
    Про калькулятор «железа» я, наверное, всё-таки не в ту степь увёл :) но, скажем, мы в принципе хотим понять подойдёт ли нам CH, если нам необходимо залить в таблицу 150млрд записей, сколько она будет весить в CH, какой будет коэффициент сжатия. И будет ли ворочаться аналитика типа sum() group by...
  • https://t.me/clickhouse_ru
    @Volkov #130873 07:48 PM, 05 Dec 2019
    Пример данных:
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да, никто неподскажет вам. Тут же всё исключительно от данных ваших зависит. Какая кардинальность в каждом из столбцов.
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #130876 07:51 PM, 05 Dec 2019
    Выше приводили пример, что может ужаться из 100 ГБ в 1 ГБ, а может и 150 ГБ стать
  • https://t.me/clickhouse_ru
    Если вся таблица такая, то сожмётся очень хорошо. Тут много дублей.
  • https://t.me/clickhouse_ru
    берете 10млрд. и грузите в виртуалку в ноутбуке. Смотрите сколько получилось на диске, прогоняете group by.
  • 06 December 2019 (207 messages)
  • @AlexNov89 #130883 05:02 AM, 06 Dec 2019
    подскажите, как написать запрос так, чтобы он вернул что-то, в случае если при выполнении where ничего не найдено или результат, если нашлось что-то?
  • @sergey239 #130884 05:10 AM, 06 Dec 2019
    Сделать лефт джойн (константу с запросом)
  • https://t.me/clickhouse_ru
    @855437500 #130885 05:12 AM, 06 Dec 2019
    Доброе время суток, подскажите в какю сторону копать. Есть такая ошибка
    2019.12.05 14:17:21.982194 [ 337212 ] {606c4c80-5008-4b22-9bb9-4faa1559c5f6} <Error> executeQuery: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe, while writing to socket (ip:39432), e.what() = DB::NetException (from ip:39432) (in query: SELECT user_id, uid FROM my_table), Stack trace:
    2019.12.05 14:17:21.982356 [ 337212 ] {606c4c80-5008-4b22-9bb9-4faa1559c5f6} <Warning> TCPHandler: Client has gone away.

    На клиенте я получаю ошибку: bad connection
  • https://t.me/clickhouse_ru
    на чем написан клиент?
    какие firewall \ nat \ кубернетесы стоят между клиентом и сервером?
    какие таймауты на клиенте для TCP выставлены?
  • https://t.me/clickhouse_ru
    @Groxel #130887 06:11 AM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Клиент написан на Go и размещен в кубере, используется библиотека github.com/kshvakov/clickhouse.
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

    Golang driver for ClickHouse. Contribute to ClickHouse/clickhouse-go development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @dmitriy_ztsv #130889 06:49 AM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @855437500 #130890 06:49 AM, 06 Dec 2019
    Насчет таймаутов TCP посмотрю.
  • https://t.me/clickhouse_ru
    @149051052 #130891 07:06 AM, 06 Dec 2019
    Добрый день!

    Заранее извиняюсь, что задаю заезжанный вопрос, мало ли что-то имзенилось в новых версиях в JOIN

    >SELECT id, name FROM ids
    >JOIN (SELECT id, name FROM ids_names) USING id

    -- ids - миллоин строк
    -- ids_names - 100 строк
    -- результат 100 строк, прочитано миллон строк (fullscan)

    Как переписать запрос, чтобы не было fullscan без использования дополнительного подзапроса?
  • @479837600 #130892 07:45 AM, 06 Dec 2019
    Доброго дня! Подскажите пожалуйста есть ли какие то синтаксические особенности когда используешь nested поле внутри nested поля?
  • https://t.me/clickhouse_ru
    @241186216 #130893 07:52 AM, 06 Dec 2019
    Как может быть такое , что Optimize DEDUPLICATE не удалил дубликаты из таблицы,а FINAL удалил ?
  • https://t.me/clickhouse_ru
    @umbertolopes #130894 07:57 AM, 06 Dec 2019
    Для чего предназначена папка /var/lib/clickhouse/cores? У меня на тестовом сервере в этой папке штук 20 файлов с названиями вида core.nnnnn. Есть по 2гб, есть один 6гб
  • https://t.me/clickhouse_ru
    Попробуйте засунуть сабселект в IN, поместить id в ids в индекс.
  • https://t.me/clickhouse_ru
    Не совсем понятен вопрос. А как вы хотите без FS? Вы джойните 2 таблицы.
  • https://t.me/clickhouse_ru
    FS не должено быть в таких ситуациях. Сейчас реализуем через пдзапросы, временные таблицы или временные файлы.
    Так же USING может испоьзоваться в оптимизаторе запросов.
  • https://t.me/clickhouse_ru
    @241186216 #130900 08:22 AM, 06 Dec 2019
    FS какой таблицы ? КХ ведь делает hashjoin. Какую из двух таблиц вы не будите читать полностью ?
  • https://t.me/clickhouse_ru
    В IN можно перенести. Но JOIN тоже нужуен. Дополинтельный подзапрос делать не хотим.
  • https://t.me/clickhouse_ru
    @241186216 #130903 08:24 AM, 06 Dec 2019
    В in у вас не будет чего ? FS таблицы ids_names?
  • https://t.me/clickhouse_ru
    FS надо исключать везде где это возможно. Обе таблицы нельзя читать полностью, у них обоих есть индекс.
  • https://t.me/clickhouse_ru
    @dzarlax #130905 08:24 AM, 06 Dec 2019
    Привет! А подскажите пожалуйста, как перетащить из одной базы в другую большую табличку без зукипера?
  • https://t.me/clickhouse_ru
    @241186216 #130906 08:25 AM, 06 Dec 2019
    Они у вас в любом случае читаются полность. У вас join без фильтров .
  • @spavlovichev #130907 08:25 AM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @241186216 #130908 08:25 AM, 06 Dec 2019
    Как бы вы не делали. С In или с join.
  • https://t.me/clickhouse_ru
    В примере нет WHERE. Если добавить WHERE IN - не будет FS.
    Артем Зуйков уже озвучил верный полход. Но он все еще имеет минусы, так как подзапросы могут отличаться и каждый подзапрос будет делать лишнюю выборку. Это почти всегда лучше чем FS, но я наделся, что внутри разрабатывают оптимизацию USING с прокидыванием USING dj вне в WHERE.
    Либо что-то похожее. Инетерсно знать мылси разработчиков на этот счет.
  • https://t.me/clickhouse_ru
    Два запроса будут на мелкую таблицу. Если не подходит - можно из мелкой таблицы сделать словарь и доставать из нее name по id. Вариация на тему лукап джойна. Тема сделать один подзапрос для in и join интересная, но это надо делать (в in подмножество колонок из join)
  • https://t.me/clickhouse_ru
    @241186216 #130911 08:30 AM, 06 Dec 2019
    Не будет Fs, а что будет ? Как вы избежите полного чтения таблицы ids_names?
  • https://t.me/clickhouse_ru
    Да, я привел простой пример, на практике JOIN таблица может быть сложной и вычислемой.
  • https://t.me/clickhouse_ru
    @chertus #130913 08:34 AM, 06 Dec 2019
    Можете сформулировать задачу на гитхабе, чтоб не потерялось?
  • https://t.me/clickhouse_ru
    Простите, речь только про большую таблицу. Как избежать FS при USING. То что внутри JOIN не инетресует в рамках этого вопроса.
  • https://t.me/clickhouse_ru
    Если аналогичной уже нет, то сфорулию, спасибо.
  • https://t.me/clickhouse_ru
    @241186216 #130916 08:36 AM, 06 Dec 2019
    Объясните плиз. Вижу , что вы друг друга понимаете, а я не понимаю ).
  • https://t.me/clickhouse_ru
    Тут не понятно, какая будет лишняя выборка у подзапроса: лишнее будет чтение второй таблицы в in. Не у компа сейчас, давайте запрос с in + join напишем
  • https://t.me/clickhouse_ru
    @241186216 #130918 08:37 AM, 06 Dec 2019
    КХ же делает Hj.вот он построил по таблице справа Мапу и сканирует большую таблицу
    . Как избежать фулскан, если индекс разряжен ?
  • https://t.me/clickhouse_ru
    Добавить в скан первой таблицы in (select id from ids_names)
  • https://t.me/clickhouse_ru
    @chertus #130920 08:40 AM, 06 Dec 2019
    Но нам не достаточно только фильтра по id, надо достать еще names, поэтому нужен еще join или словарь id - name (из id _names)
  • https://t.me/clickhouse_ru
    @tkostyan #130921 09:29 AM, 06 Dec 2019
    Подскажите, а можно как-то в отладочных целях серверу "запретить" делать мёржи? Хочется посмотреть сколько кусков порождается после insert-а в таблицу.
  • https://t.me/clickhouse_ru
    @241186216 #130922 09:29 AM, 06 Dec 2019
    Можно остановить мержи
  • https://t.me/clickhouse_ru
    @241186216 #130923 09:30 AM, 06 Dec 2019
    Можно совсем остановить или для конкретной таблицы
  • https://t.me/clickhouse_ru
    @tkostyan #130924 09:30 AM, 06 Dec 2019
    спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Deniallugo #130927 10:02 AM, 06 Dec 2019
    Подскажите, как правильно сделать вставку в AggregationMergeTree с помощью JSONEachRow формата

    Есть таблица

    CREATE TABLE Table
    (
    id UInt64,
    column AggregateFunction(max, UInt64)
    )
    ENGINE = AggregatingMergeTree()
    ORDER BY (id)

    в нее прекрасно проходит запрос следущего вида.

    INSERT INTO Table (id, column) SELECT 1, maxState(toUInt64(15))

    Как сконструировать такой-же только с помощью JSONEachRow

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

    т.е. вот такой запрос
    INSERT INTO "Table" FORMAT JSONEachRow
    {"id": 1, "column": "maxState(15)"}

    вставляет в поле column буквально эту строку
  • https://t.me/clickhouse_ru
    @ValeriyaShanti #130929 10:46 AM, 06 Dec 2019
    Joined.
  • @mobydi #130930 10:54 AM, 06 Dec 2019
    Подскажите как правильно удалить шарж и перенести данные на другие?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @filippchistiakov #130932 10:57 AM, 06 Dec 2019
    Что я делаю не так?
  • https://t.me/clickhouse_ru
    @filippchistiakov #130933 10:59 AM, 06 Dec 2019
    Понял
  • https://t.me/clickhouse_ru
    @qwblnp #130934 11:08 AM, 06 Dec 2019
    подскажите плз, как можно посмотреть, что в данный момент грузит CH?
    достаточно легкие запросы по несколько секунд выполняться начали.
    SELECT * FROM system.processes - возвращает только мой запрос
  • https://t.me/clickhouse_ru
    @stepan_matrenin #130935 11:09 AM, 06 Dec 2019
    show processlist
  • https://t.me/clickhouse_ru
    @stepan_matrenin #130936 11:09 AM, 06 Dec 2019
    но лучше смотреть в логи
  • https://t.me/clickhouse_ru
    @qwblnp #130937 11:09 AM, 06 Dec 2019
    show processlist - пустой
  • https://t.me/clickhouse_ru
    @qwblnp #130938 11:09 AM, 06 Dec 2019
    в логах - сам черт ногу сломит, там самый дебажный дебаг включен
  • https://t.me/clickhouse_ru
    @m1khal3v #130939 11:13 AM, 06 Dec 2019
    Всем привет! Ловлю такую вот ошибку:
    DB::Exception: Missing columns: '--i.url_hash' while processing query

    Есть идеи?
  • https://t.me/clickhouse_ru
    @m1khal3v #130940 11:13 AM, 06 Dec 2019
    SELECT i.pictures.url_hash FROM item_distributed AS i выполняется нормально
  • https://t.me/clickhouse_ru
    @m1khal3v #130941 11:14 AM, 06 Dec 2019
    и до этого выполнял тесты, но без распределённых таблиц - всё было окей
  • https://t.me/clickhouse_ru
    Там группировка есть?
  • https://t.me/clickhouse_ru
    @m1khal3v #130943 11:20 AM, 06 Dec 2019
    есть groupArray
  • https://t.me/clickhouse_ru
    @filippchistiakov #130944 11:20 AM, 06 Dec 2019
    У меня бывает не находит колонку, когда неправильно группировку задаю
  • https://t.me/clickhouse_ru
    @filippchistiakov #130945 11:20 AM, 06 Dec 2019
    Или когда слишком много джоинов
  • https://t.me/clickhouse_ru
    Ух! INNER JOIN ON arrayJoin() сильно.
  • https://t.me/clickhouse_ru
    ну а как ещё Nested сджоинить)
  • https://t.me/clickhouse_ru
    @chertus #130948 11:21 AM, 06 Dec 2019
    множественные джойны переписываются с использованием алиасов начинающихся на --
  • https://t.me/clickhouse_ru
    @chertus #130949 11:22 AM, 06 Dec 2019
    заведите issue, видимо в arrayJoin не прокинулось или прокинулось без учета нестед i.pictures
  • https://t.me/clickhouse_ru
    @m1khal3v #130950 11:23 AM, 06 Dec 2019
    забавно, что до того как сделали распределённые таблицы - всё работало.
  • https://t.me/clickhouse_ru
    в теории можно вытащить в самом запросе, а в ON секции использовать алиас
  • https://t.me/clickhouse_ru
    Подскажите, пожалуйста.
  • https://t.me/clickhouse_ru
    @chertus #130953 11:25 AM, 06 Dec 2019
    у вас были падения, по этим файлам при помощи отладчика gdb можно посмотреть что было не так. делаете gdb path/to/clickhouse-server path/to/core, потом внутри bt
  • https://t.me/clickhouse_ru
    @umbertolopes #130954 11:26 AM, 06 Dec 2019
    Спасибо. А эти файлы можно удалить? Это просто дампы?
  • https://t.me/clickhouse_ru
    @chertus #130955 11:26 AM, 06 Dec 2019
    (по идее то же самое должно быть в логе с маркером - много #### ) - заведите issue на падения (лучше предварительно поискать такие же уже заведенные)
  • https://t.me/clickhouse_ru
    @chertus #130956 11:27 AM, 06 Dec 2019
    да, можно, но лучше предварительно посмотреть что там
  • https://t.me/clickhouse_ru
    Логи могут тоже грузить систему.
    Если процессов запрос не показывает - значит их нет.

    Можно выключить глобальные логи и продебажить конкретный запрос.
  • https://t.me/clickhouse_ru
    @umbertolopes #130958 11:29 AM, 06 Dec 2019
    Закончилось место для смонтированной директории. Там тестовый сервер. Спасибо за пояснение!
  • https://t.me/clickhouse_ru
    Такое может быть, если в партиции слишком много партов. Попробуйте сделать optimize или посмотрите сколько их.
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #130959 #130961 11:33 AM, 06 Dec 2019
    а где это можно посмотреть? не подскажете?
  • @Shazo_Rus #130962 11:36 AM, 06 Dec 2019
    на каждую вставку создается парт в партиции. По query_log можно попровать определить что происходит с запросов, куда он лазит.

    по таблице system.parts можно найти все парты по таблице.
  • https://t.me/clickhouse_ru
    @qwblnp #130963 11:38 AM, 06 Dec 2019
    select count() from(
    SELECT * FROM system.parts);
  • https://t.me/clickhouse_ru
    @qwblnp #130964 11:38 AM, 06 Dec 2019
    это много или не очень?
  • @Shazo_Rus #130965 11:39 AM, 06 Dec 2019
    это по всем вашим таблицам. Хз сколько их. Для 6 таблиц много на вскидку
  • https://t.me/clickhouse_ru
    @qwblnp #130966 11:39 AM, 06 Dec 2019
    таблиц 16
  • добавьте в условие where active, чтобы только активные парты. сгрупируйте по таблицам
  • https://t.me/clickhouse_ru
    @icetfoer #130968 11:40 AM, 06 Dec 2019
    Ребят, а есть у кого нибудь опыт импортирования avro файлов в clickhouse?
  • https://t.me/clickhouse_ru
    @qwblnp #130969 11:40 AM, 06 Dec 2019
    select count() from(
    SELECT * FROM system.parts where active);
    2519
  • под рукой такой есть запрос, тут есть лишняя инфа , но лень править

    SELECT
    database,
    table,
    count() AS count_parts,
    sum(rows) AS s_rows,
    sum(marks) AS s_marks,
    formatReadableSize(sum(marks_bytes)) AS s_marks_bytes,
    formatReadableSize(sum(primary_key_bytes_in_memory)) AS s_pri_key_in_mem,
    formatReadableSize(sum(primary_key_bytes_in_memory_allocated)) AS s_pri_key_in_alloc,
    formatReadableSize(sum(data_compressed_bytes)) AS s_compr_bytes,
    formatReadableSize(sum(data_uncompressed_bytes)) AS s_uncompr_bytes
    FROM system.parts
    WHERE active
    GROUP BY
    database,
    table
    ORDER BY s_rows ASC
  • https://t.me/clickhouse_ru
    @cp1251 #130971 11:41 AM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
  • @Shazo_Rus #130973 11:47 AM, 06 Dec 2019
    Банально по top серваки не нагружены? Мы не видем вашу систему, а из показаний только что "стали запросы медленно'.

    Информация о том что происходит есть в query_log и system.merges, ну и упомянутом show processlist;
  • @m_arefev #130974 11:49 AM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @qwblnp #130975 11:50 AM, 06 Dec 2019
    в любом случае - спасибо, направление получено
    а по htop сервака... гм... там просадка невозможна практически, очень большой запас
  • https://t.me/clickhouse_ru
    в продолжению к этой истории. попробовал убрать алиас i, т.к это основная таблица к которой джоинятся все остальные. В итоге получаю уже такую ошибку:

    DB::Exception: Cannot refer column 'pictures.url_hash' to table.

    при этом SELECT pictures.url_hash FROM item_distributed всё также прекрасно выполняется
  • https://t.me/clickhouse_ru
    @m1khal3v #130977 12:04 PM, 06 Dec 2019
    я так понимаю у меня выход только создавать issue)
  • https://t.me/clickhouse_ru
    В запросе есть звёздочки?

    Или есть ли таблица, используемая в двух join или where одновременно?
  • https://t.me/clickhouse_ru
    @kthx000 #130979 12:24 PM, 06 Dec 2019
    если не указывать PARTITION BY то партиционирования не будет или оно будет какое-то произвольное?
  • https://t.me/clickhouse_ru
    @149051052 #130980 12:24 PM, 06 Dec 2019
    Ещё стоит проверить что имя url hash используется один раз.

    Замечены ошибки, если дублируются alias столбцов
  • https://t.me/clickhouse_ru
    звездочек нет. таблицы джоянится по одному разу. но есть одна особенность что по сути за счет arrayJoin Nested массив сначала раскладывается и джоинится к другой таблице по хэшу, а потом результат этого джоина опять схлопывается до массива за счет groupArray(). эта схема работала на тестовых данных и даже на этих данных, но без distributed таблиц. но сейчас даёт сбой. хотим попробовать уйти от Nested в пользу обычных массивов и избавиться от таблицы которая требует groupArray(arrayJoin()) это должно помочь сто процентов, плюс нам все равно нужно избавляться от джоинов)
  • https://t.me/clickhouse_ru
    копайте в сторону того что кубер разрывает соединение, коннект к clickhouse из клиента через куберовский service идет? что в качестве CNI использутется.
  • https://t.me/clickhouse_ru
    Все в одну будет литься (с префиксом all_что-то там)
  • https://t.me/clickhouse_ru
    в запросе даже поля с одинаковым именем в разных подзапросах - под алиасами, потому что алиасы на таблицу в этом случае не спасали на одной из версий кх
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @artilligence #130986 12:43 PM, 06 Dec 2019
    Коллеги, юобрый день! Подскажите, пожалуйста, реализована ли в библиотеке clickhouse-go поддержка флага any_join_distinct_right_table_keys=1. Если нет, то как пользоваться старыми джоинами?
  • @mobydi #130987 01:14 PM, 06 Dec 2019
    Можно установить дефолтный storage_policy для всех таблиц?
  • https://t.me/clickhouse_ru
    @artilligence #130988 01:18 PM, 06 Dec 2019
    @kshvakov
  • https://t.me/clickhouse_ru
    @Vokeven #130989 01:25 PM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Если нет, но очень хочется, можно добавить самому) там есть файлик со всеми поддерживаемыми настройкамм, query_settings.go или вроде того (в драйвере).
  • https://t.me/clickhouse_ru
    просто нужно добавить одну строчку?
  • @tmp_brds #130992 01:32 PM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @forward32 #130993 01:32 PM, 06 Dec 2019
    Скорее всего да, попробуйте и если не получится - то можно посмотреть детальнее, что не так.
  • https://t.me/clickhouse_ru
    @Felixoid #130994 01:32 PM, 06 Dec 2019
    Подскажите, пожалуйста. Хочу вынуть при помощи запроса SELECT arrayReduce('sum', arrayFilter(x -> (x > 0), arrayDifference(groupArray(toUInt64(Value * 100))))) / 100 as time FROM graphite.data WHERE Path = 'some.path' AND (toStartOfMonth(Date) = toStartOfMonth(subtractMonths(today(), 1))) вынуть некий монотонно возрастающий параметр (время cpu), вычесть из каждого последующего текущий, выкинуть нули и отрицательные значения и просуммировать. Но результат всякий раз разный, я подозреваю, что данные перед аггрегацией не выстраиваются

    TL;DR
    В groupArray, судя по всему, прилетают несортированные данные
  • https://t.me/clickhouse_ru
    @Felixoid #130995 01:33 PM, 06 Dec 2019
    хотя, вроде бы, должны прилетать изначально сортированными, при создании таблицы указано ORDER BY (Path, Time)
  • https://t.me/clickhouse_ru
    @romask3 #130996 01:34 PM, 06 Dec 2019
    Всем привет. Подскажите, каким образом я могу посмотреть текущие открытые коннекты от клиентов? Ожидал, что это мне покажет SHOW PROCESSLIST, но он всегда возвращает 0 записей.
  • https://t.me/clickhouse_ru
    @as_yaa #130997 01:37 PM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Felixoid #130999 01:40 PM, 06 Dec 2019
    arrayReduce('sum', arrayDifference(groupArray(toUInt64(Value)))) всякий раз возвращает разный вариант
  • https://t.me/clickhouse_ru
    @slava9307 #131000 01:44 PM, 06 Dec 2019
    всем привет!
    давно не общался с sql
    а подскажите плиз, как в CH объявить переменную?

    DECLARE @StartTime DATE - ругается на синтаксис
  • https://t.me/clickhouse_ru
    ну у меня вопрос как раз с JSONEachRow.
    как из консоли это сделать я знаю)
  • https://t.me/clickhouse_ru
    Много потоков. Они читают разные куски. Кто успел первым получается в начале.
  • https://t.me/clickhouse_ru
    И как это сделать в консоли ?
    Какой из 3 способов вы попробовали?
  • https://t.me/clickhouse_ru
    Спасибо. Какой-то способ избежать этого, кроме max_threads=1 и подзапроса с order?
  • https://t.me/clickhouse_ru
    Order by необходим.
  • https://t.me/clickhouse_ru
    я делал с помощью
    INSERT (column) SELECT maxMerge(15)
  • https://t.me/clickhouse_ru
    если я просто добавляю order by Time (колонка со временем), то запрос ругается, что она не под группировкой
  • https://t.me/clickhouse_ru
    Вы понимаете -- это бред. Это не заливка потока. Так на проде вставлять не получится. Пробуйте способ 3 -- у вас все получится. В способе 2 написано что вам нажны simpleaggregstionfunction которые в 2 раза быстрее и занимают меньше места. Использовать надо способ 1.
  • https://t.me/clickhouse_ru
    @Deniallugo #131009 01:52 PM, 06 Dec 2019
    окей, спасибо.
  • https://t.me/clickhouse_ru
    Вот сюда добавьте https://github.com/ClickHouse/clickhouse-go/blob/master/query_settings.go и PR сделайте ;)
    ClickHouse/clickhouse-go

    Golang driver for ClickHouse. Contribute to ClickHouse/clickhouse-go development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @sitrix #131011 02:18 PM, 06 Dec 2019
    Прости кис, закрутился(
  • https://t.me/clickhouse_ru
    и это правильно, так и задумано.

    - Если указать DEDUPLICATE, то произойдет схлопывание полностью одинаковых строк (сравниваются значения во всех колонках), имеет смысл только для движка MergeTree.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    У меня они не схлопнулись почему то. Вот я так и ожидал. Движек реплэйсингмерджтри
  • https://t.me/clickhouse_ru
    повторяю: и это правильно, так и задумано.
  • https://t.me/clickhouse_ru
    И вообще final это не аналог DEDUPLICATE
  • https://t.me/clickhouse_ru
    @den_crane #131018 02:22 PM, 06 Dec 2019
    optimize table DEDUPLICATE
    optimize table DEDUPLICATE FINAL
    делают разное
  • https://t.me/clickhouse_ru
    @241186216 #131019 02:22 PM, 06 Dec 2019
    А что тогда значит deduplication в конструкции optimize?
  • https://t.me/clickhouse_ru
    @241186216 #131020 02:23 PM, 06 Dec 2019
    Что делает dedup с данными в таблице ?
  • https://t.me/clickhouse_ru
    - Если указать DEDUPLICATE, то произойдет схлопывание полностью одинаковых строк (сравниваются значения во всех колонках), имеет смысл только для движка MergeTree.

    optimize table DEDUPLICATE FINAL -- то произойдет схлопывание полностью одинаковых строк даже в партициях где один парт
  • https://t.me/clickhouse_ru
    только для движка MergeTree

    - Если указать DEDUPLICATE, то произойдет схлопывание полностью одинаковых строк (сравниваются значения во всех колонках), имеет смысл только для движка MergeTree.
  • https://t.me/clickhouse_ru
    @241186216 #131023 02:26 PM, 06 Dec 2019
    А точно по всем колонкам сравнивает а не по примари ключу ?
  • https://t.me/clickhouse_ru
    @241186216 #131024 02:27 PM, 06 Dec 2019
    ver — столбец с версией, тип UInt*, Date или DateTime. Необязательный параметр.

    При слиянии, из всех строк с одинаковым значением первичного ключа ReplacingMergeTree оставляет только одну:

    Последнюю в выборке, если ver не задан.

    С максимальной версией, если verзадан.

    Это из доки по КХ
  • https://t.me/clickhouse_ru
    create table D (A Int64, B Int64) Engine=MergeTree() order by tuple();

    insert into D values(1,1), (1,1);
    optimize table D deduplicate;

    SELECT *
    FROM D

    ┌─A─┬─B─┐
    │ 1 │ 1 │
    │ 1 │ 1 │
    └───┴───┘

    optimize table D final deduplicate;

    SELECT *
    FROM D

    ┌─A─┬─B─┐
    │ 1 │ 1 │
    └───┴───┘
  • https://t.me/clickhouse_ru
    @den_crane #131026 02:30 PM, 06 Dec 2019
    create table D (A Int64, B Int64) Engine=MergeTree() order by tuple();

    insert into D values(1,1);
    insert into D values(1,1);

    optimize table D deduplicate; <--------------

    SELECT *
    FROM D

    ┌─A─┬─B─┐
    │ 1 │ 1 │
    └───┴───┘
  • https://t.me/clickhouse_ru
    @den_crane #131027 02:34 PM, 06 Dec 2019
    В первом случае дубли в одном парте. Парт один. optimize без final ничего не делает.
  • https://t.me/clickhouse_ru
    @den_crane #131028 02:35 PM, 06 Dec 2019
    deduplicate -- имеет смысл только для MergeTree. У остальных движков схлапывание по первичному ключу.
  • https://t.me/clickhouse_ru
    1. Alter table Freeze
    2. rsync shadow на другой / другие в папку detached
    3. drop table
    4. на других шардах в папке detached
    let i=1;for f in `ls -1` ; do echo $i $f;((i++)); echo "alter table XXXX attach part '$f';"|clickhouse-client ; done
  • @githubreleases_bot #131030 b o t 03:03 PM, 06 Dec 2019
    yandex/ClickHouse tagged: v19.17.5.18-stable
    Link: https://github.com/ClickHouse/ClickHouse/releases/tag/v19.17.5.18-stable
    Release notes:
    v19.17.5.18-stable
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131031 03:36 PM, 06 Dec 2019
    Подскажите, пожалуйста, является ли нормальной практикой реплейсить партиции из таблицы т2 в таблицу т1, во время выполнения долгих селектов из т1 по этим же партициям? Движок мержтри.
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131035 03:54 PM, 06 Dec 2019
    кто подскажет
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131036 03:54 PM, 06 Dec 2019
    2019.12.06 18:48:04.069324 [ 7 ] {} <Error> bool DB::{anonymous}::checkPermissionsImpl(): Code: 412, e.displayText() = DB::Exception: Can't receive Netlink response: error -2, Stack trace:

    0. 0x55e8a3d58f60 StackTrace::StackTrace() /usr/bin/clickhouse
    1. 0x55e8a3d58d35 DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) /usr/bin/clickhouse
    2. 0x55e8a389fa6b ? /usr/bin/clickhouse
    3. 0x55e8a3d70668 DB::TaskStatsInfoGetter::TaskStatsInfoGetter() /usr/bin/clickhouse
    4. 0x55e8a3d707e9 DB::TaskStatsInfoGetter::checkPermissions() /usr/bin/clickhouse
    5. 0x55e8a3d5febb DB::ThreadStatus::initPerformanceCounters() /usr/bin/clickhouse
    6. 0x55e8a7227288 DB::ThreadStatus::initializeQuery() /usr/bin/clickhouse
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131037 03:55 PM, 06 Dec 2019
    гугление ничего не дало
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131038 03:55 PM, 06 Dec 2019
    запускаю как демон штатно
  • https://t.me/clickhouse_ru
    привет, как решил ошибку свою с 412 кодом, помоги. плиз
  • https://t.me/clickhouse_ru
    контейнер? LXC ? docker ? WSL ?
  • https://t.me/clickhouse_ru
    просто север CentOS без докера — как сервис демона и все — один сервер, без класера — накатил свежак и еще не успел нормально поработать залил 10 строк в одну таблицу через ява код и все. И уиедел косяк это, но так то база работает но стал смотреть логи так как линк с посгрес базой не смог сделать через линкованную таблицу jdbc моста
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131042 04:20 PM, 06 Dec 2019
    вот лог
  • https://t.me/clickhouse_ru
    в любой непонятной ситуации, возьмите полотенце, и отключите SELinux
  • https://t.me/clickhouse_ru
    ладно спасибо
  • https://t.me/clickhouse_ru
    я не шучу.
  • https://t.me/clickhouse_ru
    @den_crane #131046 04:22 PM, 06 Dec 2019
    Я однажды два дня убил разбираясь что за бред происходит. Оказалось SELinux
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131047 04:26 PM, 06 Dec 2019
    ок
  • https://t.me/clickhouse_ru
    @den_crane #131048 04:28 PM, 06 Dec 2019
    SELinux не дает сервисам делать нехорошее. Читать файлы которые они по его мнению не должны читать, ходить по сети и т.д.
  • https://t.me/clickhouse_ru
    выключен Selinux у меня —
    [kakunin@DCtestClickHouse ~]$ sestatus
    SELinux status: disabled
    [kakunin@DCtestClickHouse ~]$
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131050 04:39 PM, 06 Dec 2019
    может этот лог понятнее будет
  • https://t.me/clickhouse_ru
    @den_crane #131051 04:42 PM, 06 Dec 2019
    покажите вывод
    # getcap /usr/bin/clickhouse
  • https://t.me/clickhouse_ru
    [kakunin@DCtestClickHouse ~]$ getcap /usr/bin/clickhouse
    /usr/bin/clickhouse = cap_net_admin,cap_ipc_lock,cap_sys_nice+ep
    [kakunin@DCtestClickHouse ~]$
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131053 04:55 PM, 06 Dec 2019
    может дело в красных ошибках этих ?
  • https://t.me/clickhouse_ru
    setcap cap_net_admin=-ep /usr/bin/clickhouse
    и перезапустить КХ
  • https://t.me/clickhouse_ru
    ок завтра продолжим. с тяпницей
  • @559528006 #131056 05:24 PM, 06 Dec 2019
    в документации написано что 128 гб памяти лучше 64, но стоит ли озадачиваться покупкой 192 или 384 гб памяти? даст ли такой же эффект или прирост производительности остановится на какой-то планке?
  • https://t.me/clickhouse_ru
    @IPRO900 #131057 05:40 PM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131030 #131058 05:42 PM, 06 Dec 2019
    Так и не исправили вставку из MySQL таблиц. Открывать issue?
  • https://t.me/clickhouse_ru
    это зависит от прикладного ПО. отмониторь если часто уходишь в своп и прокачал кх по настройкам то может и нужно оперативы но нужно наблюдать. нет общих рецептов. если про модели то corsair и crusial самая совместимая память. если у тебя сервер то нужно подбирать регистровую память я думаю
  • @559528006 #131060 05:53 PM, 06 Dec 2019
    да понятно что если отмониторить то станет понятно, поэтому и спрашиваю может у кого-нить был опыт
  • @559528006 #131061 05:54 PM, 06 Dec 2019
    и как с процессором обстоят дела? например стоит ли брать второй проц с 12 ядрами или сильного прироста не даст?
  • @559528006 #131062 05:55 PM, 06 Dec 2019
    не всегда ведь (вернее почти никогда) происходит линейное масштабирование производительности
  • https://t.me/clickhouse_ru
    Ну кликхаус очень активно все параллелит
  • https://t.me/clickhouse_ru
    @unamedrus #131064 05:57 PM, 06 Dec 2019
    Для него больше ядер лучше, чем более высокая частота.
    Другое дело,что вам возможно это уже и не нужно
  • https://t.me/clickhouse_ru
    Как прокачать кх по начтройкам
  • https://t.me/clickhouse_ru
    @d60e87b4 #131066 05:58 PM, 06 Dec 2019
    Есть ман какой нить. Я не про советы по эксплуатации на оф сайте
  • https://t.me/clickhouse_ru
    а что там за проблемы?
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131068 06:00 PM, 06 Dec 2019
    я делал из postresql нормально и думаю из явы делать то без разныцы муsql или еще что
  • https://t.me/clickhouse_ru
    я новичек но там все просто открываешь конфиги и делаешь сжатие и кеши и т.п
  • https://t.me/clickhouse_ru
    @adsrun #131070 06:03 PM, 06 Dec 2019
    Добра.

    SELECT countIf(ee = 'start' ) AS views , countIf(ee = 'click' ) AS click ,
    multiIf(ee = 'start' , SUM(prc) as money )
    FROM default.log where cid = 1234

    multiIf(ee = 'start' , SUM(prc) as money ) - вот это не работает ..

    Как то можно тут получить сумму если ee = 'start' ?
  • https://t.me/clickhouse_ru
    @adsrun #131071 06:04 PM, 06 Dec 2019
    Ругается вот так - DB::Exception: Column ee is not under aggregate function and not in GROUP BY.
  • https://t.me/clickhouse_ru
    тут нужно сбалансировать по хардам и памяти . это можно нагуглить как мониторить системы но с этого нужно начать. так как узкое место может просто другое к примеру локалка на 100 мегабит. нужно гонять сжатные данные или наоборот это мониторирование скажет
  • https://t.me/clickhouse_ru
    384 Гига не в сервер это хорошо. Какой год у вас?

    >регистровую
    это называется ECC, коррекция ошибок. Понятие регистровая -- умерло 15 лет назад

    >corsair и crusial самая совместимая памят
    дада, в сервер. Там хиниксы и кингстоны, и еще например в hp нужны hp-compatible иначе будет плакать и откызваться работать по нормальному.
  • https://t.me/clickhouse_ru
    я про сами ручки, которые можно покрутить, мб переписать запросы. Но прежде чем переписывать нужно разобраться глубже, и порой не понятно. Поэтому и спрашивал про мануал
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131067 #131075 06:18 PM, 06 Dec 2019
    сделал issue. Не работает вставка из таблиц MySQL. При этом селект, указанный для insert отрабатывает корректно
  • https://t.me/clickhouse_ru
    >multiIf(ee = 'start' , SUM(prc) as money )

    sumIf(ee = 'start')
  • https://t.me/clickhouse_ru
    @sgolod #131077 06:19 PM, 06 Dec 2019
    сломали после версии 19.17.2.4, это последняя рабочая версия где корректно работает insert .... from mysql
  • https://t.me/clickhouse_ru
    объем озу нужно не по максиму а с умом и может у него персоналочка на 128 г рамы раз так спрашивает. а hp это барахло вроде как не вижу в них ничего хорошего. как раз вышла новость что нр облажался с ссд серверными. так что это не люди которые с головой дружат
  • https://t.me/clickhouse_ru
    @adsrun #131079 06:24 PM, 06 Dec 2019
    sumIf(ee = 'start') а это куда SUM(prc)
  • https://t.me/clickhouse_ru
    @adsrun #131080 06:26 PM, 06 Dec 2019
    О вот так заработало
    sumIf( prc , ee = 'start' ) as money
    Спасибо
  • https://t.me/clickhouse_ru
    подними монитор ресурсов . это прояснит узкие места. как все равно нужно это делать так как это частное ПО. свои особенности
  • https://t.me/clickhouse_ru
    @patzantre #131082 06:38 PM, 06 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @bralbral #131083 06:43 PM, 06 Dec 2019
    Дополнительные индексы , они же experemental_data_skipping индексы кто - то использует ? Какие-то подводные камни есть ? Слышал про удаление лишних строк при alter delete , но в новых пофиксили уже.
  • Пишут что они менее производительные, чем обычные. Надо тестить на ваших данных.
  • https://t.me/clickhouse_ru
    @mikezsin #131085 09:36 PM, 06 Dec 2019
    привет, подскажие плз, если упирается в max_memory_usage_for_all_queries, могут идти такие ошибки?
    oException: Allocator: Cannot mmap 1.00 GiB., errno: 12, strerror: Cannot allocate memory, Stack trace:

    или джойнам все равно на этот лимит и mmap сфейлился, потому что памяти нет и скоро ждать оома?
  • https://t.me/clickhouse_ru
    какая версия КХ ? Ошибка повторяется если запрос снова выполнить?
  • https://t.me/clickhouse_ru
    19.7.3.9, ошибок было много(на тачке почти кончилась память)
  • https://t.me/clickhouse_ru
    @mikezsin #131088 09:44 PM, 06 Dec 2019
    но потом отпустило
  • https://t.me/clickhouse_ru
    нет джойнам не все равно, будет другая ошибка , про лимит. Ошибки Cannot mmap 1.00 GiB быть не должно если все правильно работает.
  • https://t.me/clickhouse_ru
    значит надо уменьшить max_memory_usage_for_all_queries / max_memory_usage, чтобы не ронять КХ, чтобы запросы упирались в лимит.
  • https://t.me/clickhouse_ru
    @mikezsin #131091 09:46 PM, 06 Dec 2019
    /etc/clickhouse-server/users.xml: <max_memory_usage>10000000000</max_memory_usage>
    /etc/clickhouse-server/users.xml: <max_memory_usage_for_all_queries>26000000000</max_memory_usage_for_all_queries>

    Mem: 32135
  • https://t.me/clickhouse_ru
    @den_crane #131092 09:48 PM, 06 Dec 2019
    32 это мало, докиньте свопа 32, если SSD

    или max_memory_usage_for_all_queries = 20
  • https://t.me/clickhouse_ru
    GB или GiB?
  • https://t.me/clickhouse_ru
    @den_crane #131094 09:49 PM, 06 Dec 2019
    GB
  • https://t.me/clickhouse_ru
    @mikezsin #131095 09:50 PM, 06 Dec 2019
    ок, спс, а есть где-нибудь подробная статья, по ch memory usage со всеми кешами и т п?
  • https://t.me/clickhouse_ru
    @mikezsin #131096 09:51 PM, 06 Dec 2019
    и в рантайме если лимит уменьшить, то все что саллоцировано кх уже не отдаст до рестарта?
  • https://t.me/clickhouse_ru
    нету, 5GB marks_cache, 8GB uncompressed -- но он выключен по умолчанию
  • https://t.me/clickhouse_ru
    так это лимиты на запрос. Причем тут аллокация вообще. Запрос закончился, память отдал.
  • https://t.me/clickhouse_ru
    @mikezsin #131099 09:53 PM, 06 Dec 2019
    ясно, спасибо
  • 07 December 2019 (71 messages)
  • https://t.me/clickhouse_ru
    @Sulaymon11 #131100 09:55 AM, 07 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ram00X #131101 10:05 AM, 07 Dec 2019
    Всем привет, подскажите в какую сторону смотреть - абстрактно: одновременно выполняю 10 запросов, 7 довольно легких, 3 тяжелых; ответы на 7 легких запросов прилетают нормально, а на 3 тяжелых с 80% вероятностью получаю connection refused; оперативка выжирается по максимуму еще на "легких" запросах, в логах смущает 2019.12.07 12:40:31.306470 [ 1 ] {} <Information> : Starting ClickHouse 19.14.3.3 with revision 54425
    2019.12.07 12:40:31.309148 [ 1 ] {} <Information> Application: starting up
    2019.12.07 12:40:31.339104 [ 1 ] {} <Trace> Application: Will mlockall to prevent executable memory from being paged out. It may take a few seconds.
    2019.12.07 12:40:31.378121 [ 1 ] {} <Trace> Application: The memory map of clickhouse executable has been mlock'ed
  • @qhang #131102 10:17 AM, 07 Dec 2019
    А чем смущает? Там пишут что кх попросил ос не выкидывать в своп страницы с его кодом, вроде логично
  • https://t.me/clickhouse_ru
    @ram00X ↶ Reply to #131102 #131103 10:31 AM, 07 Dec 2019
    Я к тому что происходит рестарт
  • @qhang #131104 10:33 AM, 07 Dec 2019
    а в dmesg ничего не пишут? ну там оом или гпф пришел забрать душу кх
  • https://t.me/clickhouse_ru
    подейстовало, ошибки изчезли, спасибо
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131106 12:14 PM, 07 Dec 2019
    я хочу прилинковать базу на посгресс и у меня проблемы — тип number не понимает яндекс, что нужно написать?
    select * from jdbc('jdbc:postgresql://мой_ip:5432/моя_срока_подключения', 'MY_SCHEMA', 'MY_TABLE') as k;

    Code: 86, e.displayText() = DB::Exception: Received error from remote server /columns_info?connection_string HTTP status code: 500 Can not map SQL type 2 (NUMERIC) to ClickHouse, body: Can not map SQL type 2 (NUMERIC) to ClickHouse (version 19.17.4.11 (official build))
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131107 12:18 PM, 07 Dec 2019
    вот как у меня в PostgreSQL

    CREATE TABLE MY_SCHEMA.MY_TABLE
    (
    id numeric NOT NULL,
    event_type numeric NOT NULL, ....

    вот по методике яндекса https://clickhouse.yandex/docs/ru/query_language/table_functions/jdbc/
  • https://t.me/clickhouse_ru
    Факу FAQ у вас нет и умной вики с описанием кодов ошибок и похоже что бы понять ваш код нужно лесть в сорцы, но я не знаю С++ и нужно платить кто юзает ваш код (последнее шутка)
  • https://t.me/clickhouse_ru
    @Fetisova_Anastasia #131109 12:39 PM, 07 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane можешь помочь гугу? скажи путь куда рыть плиз
  • https://t.me/clickhouse_ru
    нет. Мне это не интересно. Зачем кстати jdbc мост. Я бы использовал стандартный -- odbc.

    Кстати jdbc мост разработка не яндекса а баду.
  • https://t.me/clickhouse_ru
    я джавист, мне проще все на яве моей, не нужно зависеть от ядра и нативности
  • https://t.me/clickhouse_ru
    ? Odbc мост часть кх, какое ядро, какая нативность
  • https://t.me/clickhouse_ru
    ок расмотрю но это путь в ад, так как odbc это хрень майрософта, а от него мне нужно бежать
  • https://t.me/clickhouse_ru
    вот оффициальный яндекс разве обман ? https://github.com/ClickHouse/clickhouse-jdbc
    GitHub - ClickHouse/clickhouse-jdbc: JDBC driver for ClickHouse

    JDBC driver for ClickHouse. Contribute to ClickHouse/clickhouse-jdbc development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    он общается с кликхаусом по http для начала
  • https://t.me/clickhouse_ru
    ну ок, я же не против модульности, чем это плохо? это же как модель у микросервисов — модно и гуд — как я понимаю это просто 2 языка - С++ и ява и поэтому так спарили их
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131118 01:47 PM, 07 Dec 2019
    и это яндексовское https://github.com/ClickHouse/clickhouse-jdbc-bridge —- я это и юзаю
    GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

    A JDBC proxy from ClickHouse to external databases - GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

  • https://t.me/clickhouse_ru
    @tratatataass #131119 01:48 PM, 07 Dec 2019
    Гайз, а кто-то помнит функцию для временных рядов которая добавляет нули в дыры?
    Условно, у меня есть метрика во времени с равным шагом, хочу возвращать нули там где не было данных.
  • https://t.me/clickhouse_ru
    ладно — погружись в ход, может патчик сделаю
  • https://t.me/clickhouse_ru
    если че это jdbc драйвер к КХ.

    по вашему вопросу про jdbc-bridge спросите Krashuevina , он автор тут в чате
  • https://t.me/clickhouse_ru
    with fill
  • https://t.me/clickhouse_ru
    точно, спасибо!
  • https://t.me/clickhouse_ru
    я таких не нашел — ок покурю коды его — если что напишу его в гит-хаб — пофиксил для себя
  • https://t.me/clickhouse_ru
    @kachan_v #131125 01:57 PM, 07 Dec 2019
    Joined.
  • 😍 а почему в доку не добавили?
  • https://t.me/clickhouse_ru
    ну а вы почему не добавили? Почему я должен был?
  • @997057859 #131128 02:53 PM, 07 Dec 2019
    я не про вас конкретно же
  • @997057859 #131129 02:53 PM, 07 Dec 2019
    просто странно что нет в доке
  • https://t.me/clickhouse_ru
    путина спросите, я тут вообще при чем?
  • @997057859 #131131 02:56 PM, 07 Dec 2019
    возможно, потому что у вас подпись админ в официальном чате кликхауса, люди могут интересоваться у вас по поводу аспектов внутренней разработки кликхауса
  • @997057859 #131132 02:56 PM, 07 Dec 2019
    вы или шашечку снимите
  • @997057859 #131133 02:56 PM, 07 Dec 2019
    или ответьте что не знаете
  • @SWx5YQ ↶ Reply to #131131 #131134 02:57 PM, 07 Dec 2019
    Не пишите чушь, пожалуйста
  • https://t.me/clickhouse_ru
    я живу канаде, поэтому имею возможность удалять спам и ссылки на вирусы в моей таймзоне, поэтому я админ в чате.
  • https://t.me/clickhouse_ru
    Мне кажется все таки основная причина в ваших ответах))))
  • https://t.me/clickhouse_ru
    так ботов заведите и спамить будет меньше и голосования на спаммеров а раз ты ближе к США скажи нашему дурову что бы из коробки избавил нас админов чатов от спама, раз есть новые релизы и яндексу не помешает отвечать официально а не от один ты за всех
  • https://t.me/clickhouse_ru
    @stufently #131138 03:05 PM, 07 Dec 2019
    Не позволяет корпоративная политика
  • https://t.me/clickhouse_ru
    т.е. я опять виноват.

    Я считаю что писать доку к опенсорсу - бесплатному продукту -- это наша обязанность. Я пишу. Вы видимо нет, поэтому идите в жопу.
  • https://t.me/clickhouse_ru
    @241186216 #131140 03:16 PM, 07 Dec 2019
    Люди может просто не знают как доку к КХ писать . Есть ли дока , как писать доку ?)
  • https://t.me/clickhouse_ru
    Я один раз по моему что то написал но там был просто какой то косяк в документации который меня смущал, преклоняюсь перед вашей самоотверженностью
  • https://t.me/clickhouse_ru
    @stufently #131142 03:16 PM, 07 Dec 2019
    Который смущал мою работу
  • https://t.me/clickhouse_ru
    нужен аккаунт на гитхабе.
    в доке карандаш (справа вверху) нажимаете , (получаете fork КХ в свое репо), редактируете маркдаун, комитите, потом делаете пул-реквест.
  • https://t.me/clickhouse_ru
    не виноват, просто я тоже не знал а я ругаю яндекс что сложное ПО и минимум поддержки и помощи от них , а тебе респект — ты реально мне помог - уважуха
  • https://t.me/clickhouse_ru
    во первых множество, подчеркиваю МНОЖЕСТВО функционала добавлено разными внешними разработчиками, некоторые из них вообще говорят только на китайском, и пишут коменты в коде с помощью гугл-транслейт.

    во вторых если вы не курсе, КХ бесплатный, мы за него деньги не платим, поэтому ожидать какой-то поддержки от Яндекс странно, также странно ожидать что Альтинити будет вам оказывать поддержку бесплатно, я кстати тоже не помогаю бесплатно (никому не помогаю в личке).
  • https://t.me/clickhouse_ru
    @stufently #131146 03:28 PM, 07 Dec 2019
    Альтинити кстати неплохие ребята если нужен платный сарпорт
  • https://t.me/clickhouse_ru
    @ubombi #131147 03:31 PM, 07 Dec 2019
    Наверное начну ответы из чата в FAQ оформлять.
    (А то мимо телеграма жизни нет :)
  • https://t.me/clickhouse_ru
    Да это хорошая идея я давно ещё предлагал
  • https://t.me/clickhouse_ru
    @den_crane #131149 03:37 PM, 07 Dec 2019
    FAQ я думаю станет просто слишком большим, нет никаких frequently вопросов. КМК надо просто к каждому разделу в доке добавить раздел "in depth", где подробно с примерами все разжевывать. (Т.е. дока должна оставаться краткой, иначе она будет как дока к ораклу, стопка книжек -- 70см толщиной (у меня была))
  • https://t.me/clickhouse_ru
    @ubombi #131150 03:39 PM, 07 Dec 2019
    Вот да, документация есть, а примеров нет.
  • https://t.me/clickhouse_ru
    @unamedrus #131151 03:39 PM, 07 Dec 2019
    Тогда бы стоило бы иметь список каких то best practise.
    все же общие принципы организации таблиц подходящие для многих существуют
  • https://t.me/clickhouse_ru
    так можно гуглить по кодам ошибок к примеру — гугл под копотом имеет много книг но все знания можно нагуглить, на кой черт яндексу алиса если не облегает жизнь кодерам?
  • https://t.me/clickhouse_ru
    так телеграммка гуглитца в гугле в веб режиме если нет блокировок сайт на зоне РФ (телеграмка запрешена в раше)
  • https://t.me/clickhouse_ru
    идея хорошая, я помогу.
    когда начинал с кх, сделал свой маленький faq, но он совсем нубский.
    щас знаю побольше. и есть кого спросить (сс @madm1ke например)

    пингуй, когда начнешь делать!
  • https://t.me/clickhouse_ru
    может бот запилите для преложения вопроса и его решения
  • https://t.me/clickhouse_ru
    ну надо в любом случае базу факапов и факов сначала набрать
    и альтинити пнуть кек
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131158 06:00 PM, 07 Dec 2019
    что такое альтинити. просвятите плиз. гугл не подсказал. как понимаю это модуль кликхауса так?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо добрый человек
  • https://t.me/clickhouse_ru
    в блоге много интересного
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131162 06:12 PM, 07 Dec 2019
    ок гляну сп
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131163 06:25 PM, 07 Dec 2019
    жаль что на анл языке. не идеально его понимаю. я про их блог в альтинити
  • Неделю с ними экспериментирую. Пока результаты отрицательные. Требуется находить запись по ID (один типа UUID, второй String`). Знаю, что это неправильное использование OLAP базы данных. Пробовал индексы `set(0) и bloom_filter(0) GRANULARITY 1. Мне правда не очень понятно, за что отвечает granularity.

    ┌─version()──┐
    │ 19.17.4.11 │
    └────────────┘
    Edited, гребанное форматирование строк в телеге
  • https://t.me/clickhouse_ru
    Как я понимаю - granularity указывает через сколько значений order by делать засечку, по которой потом будут искать.
  • @ArmenakBaburyan #131166 08:56 PM, 07 Dec 2019
    И для кейса, когда надо искать запись по ID какое значение является рекомендуемым?
  • https://t.me/clickhouse_ru
    @den_crane #131167 09:03 PM, 07 Dec 2019
    дальше имхо, не верьете, пожалуйста

    set(0) -- это все значения -- это бесмысленный конструкт, который не рекомендуется, потому что индекс будет размером как столбец, поэтому по столбцу искать дешевле, и тупо индекс умножает размер занимаемый столбцом.

    GRANULARITY 1 -- из скольких гранул основного индекса, создавать гранулу индекса.

    >когда надо искать запись по ID какое значение является рекомендуемым
    да никакое, skip индексы в этом случае практически не помогают никогда. Помогает сделать еще одну таблицу (MV) отсортированную по ID.
  • @ArmenakBaburyan #131168 09:06 PM, 07 Dec 2019
    Спасибо, попробую еще c MV.
  • https://t.me/clickhouse_ru
    @orantius #131169 09:07 PM, 07 Dec 2019
    а kv-базы чем не подошли для поиска по id?
  • Помимо поиска по ID таблица используется для аналитических запросов. Попробовал redis для хранения соответствий id->date, чтобы потом в CH добавить дополнительное условие по date. Но такое решение не понравилось: Redis потребляет слишком RAM; еще одна точка отказа, усложнение на уровне приложения.
  • 08 December 2019 (6 messages)
  • https://t.me/clickhouse_ru
    @21184239 #131171 08:26 AM, 08 Dec 2019
    Joined.
  • точно не помню, но зашел сейчас посмотреть, я выставил fs.file-max = 500000 в sysctl и
    root hard nofile 500000
    root soft nofile 500000
    в limits
    а в настройках контейнера добавил lxc.prlimit.nofile: 300000
  • https://t.me/clickhouse_ru
    ок но я не спец но лучше кратно степени 2 типа не 1000 а 1024 и т.п. так как память сегментируется ос кратно 1-4к байту
  • https://t.me/clickhouse_ru
    @vano144 #131174 09:54 AM, 08 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @r00fless #131175 02:09 PM, 08 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @barloc #131176 03:31 PM, 08 Dec 2019
    Joined.
  • 09 December 2019 (149 messages)
  • https://t.me/clickhouse_ru
    @BloodJazMan #131178 04:05 AM, 09 Dec 2019
    Доброе утро всем. а кто нибудь знает что именно означает GRANULARITY ? как для Primary key, так и для skip indexes?

    чем GRANULARITY 3 от GRANULARITY 4 отличается вот в этом примере?
    https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/#table_engine-mergetree-data_skipping-indexes
  • https://t.me/clickhouse_ru
    @den_crane #131179 05:08 AM, 09 Dec 2019
    primary key хранит значения ключевых полей каждой n-й строки. Т.е. если index_granularity 8192 а в таблице 16384 строк, то в индексе будет значения только для 2 строй -- 1й и 8193й.

    minmax GRANULARITY 3 -- означает что в skip индексе будет сохранено minmax значение для сразу 3х гранул первичного индекса (3*index_granularity строк).

    set(1000) GRANULARITY 4 -- означает что в skip индексе будут сохранены 1000 значений 4х гранул первичного индекса (4*index_granularity строк), если уникальных значений больше 1000, то сохранено будет ничего.
  • https://t.me/clickhouse_ru
    @BloodJazMan #131180 05:50 AM, 09 Dec 2019
    спасибо большое
  • https://t.me/clickhouse_ru
    @BloodJazMan #131181 05:52 AM, 09 Dec 2019
    а как работает KILL QUERY SYNC ?
    в смысле понятно что оно пытается лочить что-то или как то сигнал в running threads передать, вопрос что блокируется, когда проверяется?
  • @ArmenakBaburyan #131182 06:56 AM, 09 Dec 2019
    Заметил, что при DROP большой таблицы CH похоже становится заблокированым - приложения не могут писать в другие таблицы. При этом CPU load и Disk I/O на нуле. В логах вижу такое:
    level=error msg="commit error: driver: bad connection

    Используемая go библиотека:
    digest = "1:499e5c968a671233b5107680bc12a775d10a00662199100eb96dd02e0446fdb8"
    name = "github.com/kshvakov/clickhouse"

    ┌─version()──┐
    │ 19.17.4.11 │
    └────────────┘

    Есть ли способ этого избежать?
  • https://t.me/clickhouse_ru
    только если к этой таблице в других коннектах идет обращение и блокирует тот кто раньше успел, остальные коннекты ждут

    bad connection у вас возникает судя по всему, потому что в go драйвере таймауты выставлены и он не получает ответ

    смотрите в нативном клиенте что происходит
    SELECT query, query_id, elapsed, rows FROM system.processes WHERE query LIKE '%your_big_table%';
  • https://t.me/clickhouse_ru
    @BloodJazMan #131184 07:12 AM, 09 Dec 2019
    сам clickhouse во время дропа нормально доступен
  • https://t.me/clickhouse_ru
    @sergey_kotyushkin #131185 07:16 AM, 09 Dec 2019
    Joined.
  • @ArmenakBaburyan #131186 07:17 AM, 09 Dec 2019
    Спасибо! Проверю в следующий раз.
  • https://t.me/clickhouse_ru
    @genrikh_avdeev #131187 07:33 AM, 09 Dec 2019
    Подскажите, плз, верно ли я понимаю, что для таблиц класса ReplacingMergeTree если явно не указывать поле version, то при схлапывании берется любая первая попавшаяся запись. При этом никаких служебных колонок нет, по которым можно найти ту запись, что была добавлена последней.
  • @eugenie_r #131188 07:37 AM, 09 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @taroff #131189 07:51 AM, 09 Dec 2019
    When merging, ReplacingMergeTree from all the rows with the same primary key leaves only one: - Last in the selection, if ver not set. - With the maximum version, if ver specified.
    doc
  • https://t.me/clickhouse_ru
    @taroff #131190 07:51 AM, 09 Dec 2019
    Last in the selection больше похоже на последнюю вставленную, чем на рандомную :)
  • https://t.me/clickhouse_ru
    @taroff ↶ Reply to #131187 #131191 08:02 AM, 09 Dec 2019
    последняя запись надо полагать в последнем вставленном парте, а последний парт находится по времени вставки
  • https://t.me/clickhouse_ru
    @241186216 #131192 08:04 AM, 09 Dec 2019
    Они же мержатся в конечном итоге. Записи будут в одном парте одинаковые
  • https://t.me/clickhouse_ru
    У меня такое же понимание. Пытался найти, как определить из списка записей - какая последняя, не смог. Для себя решил, что прозрачности может только ver добавить, но не уверен. Может кто-то сталкивался.
  • https://t.me/clickhouse_ru
    @241186216 #131194 08:23 AM, 09 Dec 2019
    Можно попробовать посмотреть в исходниках. Например зайти со стороны инструкции optimize.
  • https://t.me/clickhouse_ru
    @v9lijj #131195 09:08 AM, 09 Dec 2019
    Привет!

    Никто не сталкивался с такой проблемой - обновились с 19.11 до 19.16 и на репликах начали биться куски таблиц и начались попытки их перевыкачать с других реплик, ошибки типа
    Code: 226, e.displayText() = DB::Exception: Marks file '/var/data/clickhouse/data/default/rawlog_shard/tmp_fetch_20191202_222396_222396_0/id.mrk' doesn't exist (version 19.16.2.2 (official build))

    Причем если глянуть в system.replication_queue, то в колонке num_tries для некоторых таких попыток число много больше единицы.
    Ну и в очереди system.replication_queue оказались десятки тысяч заданий и подобная процедура уже идет третьи сутки.
  • https://t.me/clickhouse_ru
    @v9lijj ↶ Reply to #131195 #131196 09:08 AM, 09 Dec 2019
    есть ли смысл вообще до 19.17 обновляться? Или ролбечится? Или может просто дропать всю реплику и фетчить всё заново?
  • @vladislavadv #131197 10:09 AM, 09 Dec 2019
    Всем прривет.
    А почему селекты могут блокировать новые insert?
    Последнее время часто случается, что из-за 1 сложного селекта начинает копиться 30-50 инсертов.
    После убийства селекта, инсерты еще потупят минут 5 и проходят. Причем судя по written bytes\memory usage - лочится прям перед записью на диск в одном месте
  • https://t.me/clickhouse_ru
    Там правее в вашем запросе есть ProfileEvents. Среди них есть RWLock. Помониторьте. Может они его ждут.
  • https://t.me/clickhouse_ru
    @241186216 #131200 10:35 AM, 09 Dec 2019
    А какой у вас дживек таблицы ?
  • https://t.me/clickhouse_ru
    @Deazer123 #131201 10:52 AM, 09 Dec 2019
    Добрый день. С чем может быть связана ошибка Code: 442, e.displayText() = DB::Exception: There was an error on [<host>:9000]: Code: 442, e.displayText() = DB::Exception: Temporary tables cannot be inside a database. You should not specify a database for a temporary table. (version 19.13.7.57 (official build)) (version 19.13.7.57 (official build))
    при запросе
    curl --silent 'http://<host>:8123/?session_id=123&user=<user_name>&session_timeout=3600&password=<password>' --data 'CREATE TEMPORARY TABLE p_47_626_1537126630 ON CLUSTER <cluster_name> (rdid String)' ?
  • https://t.me/clickhouse_ru
    как я понимаю нет временных таблиц можно memory заюзать - см доку https://clickhouse.yandex/docs/ru/operations/table_engines/
  • Distributed за ней ReplicatedMergeTree и есть еще 3 десятка MV которые в summing
  • в след раз как случится посмотрю, спасибо.
    А если есть что это значит?
  • @Maxnosib #131206 11:59 AM, 09 Dec 2019
    здравствуте. подскажите как создать и загрузить данные из csv в таблицу
  • https://t.me/clickhouse_ru
  • INSERT INTO [db.]table [(c1, c2, c3)] FORMAT CSV "tmp/foo.csv"
    правельно я понимаю
  • https://t.me/clickhouse_ru
    если базу перегнать то на яве это заюзал и допилил под себя https://github.com/llofberg/db-copy
    GitHub - llofberg/db-copy: A simple ETL tool to copy data between JDBC databases etc.

    A simple ETL tool to copy data between JDBC databases etc. - GitHub - llofberg/db-copy: A simple ETL tool to copy data between JDBC databases etc.

  • спасибо но нужны только запросы без стронеего по а то я бы кананул на го его
  • Чем не устроил стандартный INSERT ... FORMAT CSV?
  • я не смог найти в документации как в целом эта процедура делаеться
    нужно ли сздавать бд а потом вставлять и т.д.
  • https://t.me/clickhouse_ru
    мне нужен был перегон из postgresql в clickhouse и много данных - но я да так почти и делал простно на движке
  • @Maxnosib #131214 12:08 PM, 09 Dec 2019
    1 тб
  • https://t.me/clickhouse_ru
    порциями фигачить или через мост jdbc-bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge я просто джавист а вы можете на GO
    GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

    A JDBC proxy from ClickHouse to external databases - GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

  • https://clickhouse.yandex/docs/en/interfaces/formats/#csv
    Но не уверен, что это подойдёт для терабайтного файла.
  • да я читал эту статью не могу связать пока все воедино
  • задача состаит в том чтоб все в начале выгрузить в файл а потом из файла залить в новые таблицы
    без написания сервиса
  • @Maxnosib #131219 12:14 PM, 09 Dec 2019
    спасибо за помощь чуть позже сделаю запросы кину ответы сюда
  • https://t.me/clickhouse_ru
    тут описан велосипед то что вам нужно но у меня проблемы с интом — https://www.altinity.com/ — там NY taxi и вот "велик" https://clickhouse.yandex/docs/en/getting_started/example_datasets/nyc_taxi/
    ClickHouse Software And Services — Altinity

    Deploy and operate ClickHouse, a lightning fast, open source SQL data warehouse for real-time analytics, time series, and log analysis.

  • спасибо большое
  • https://t.me/clickhouse_ru
    вот так пробовали? что не сработало?
    pgsql -c "COPY TO STDOUT" | clickhouse-client —progress "INSERT INTO ... FORMAT CSV"

    клиент кликхауса сам по идее побъет на блоки записей и все вставит
  • https://t.me/clickhouse_ru
    @BloodJazMan #131223 01:59 PM, 09 Dec 2019
    Народ, а кто в курсе как именно работает LEFT JOIN в clickhouse?
  • https://t.me/clickhouse_ru
    строит hash-map по правой таблице, сканит левую, дописывает строки в результат. если в правой было несколько таких ключе, то для каждого левого вхождения формирует n строк результатов, если вхождений не было - дописывает дефолтами (если join_use_nulls - дефолт NULL, иначе 0/пустая строка/начало юникстайм)
  • https://t.me/clickhouse_ru
    @BloodJazMan #131225 02:25 PM, 09 Dec 2019
    join_use_nulls в рантайме можно менять?
    вроде SET не ругнулся, но такое ощущение что не воспроизвелось
  • https://t.me/clickhouse_ru
    См. system.settings после SET join_use_nulls
  • https://t.me/clickhouse_ru
    блин я тупой, походу datagrip же через jdbc работает а тот работает поверх HTTP и там join_use_nulls не срабатывает, потому что это "другой коннект"

    хотя это же server level а не connection level будет?
  • https://t.me/clickhouse_ru
    SET в http не работает, если нет именованной сессии
    Тут надо использовать SETTINGS join_use_nulls
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131230 03:08 PM, 09 Dec 2019
    Добрый вечер, коллеги. Генерирую тестовые данные и мне регулярно прилетает на больших обьемах данных ошибка: Cannot parse input: expected ) before: 7587),
    Ну там в конце постоянно цифра разная. В чем может быть причина кто-то в курсе?
  • https://t.me/clickhouse_ru
    версия? values / CSV , текст insert-а?
  • https://t.me/clickhouse_ru
    скобки есть в генерируемых данных?
  • https://t.me/clickhouse_ru
    временные таблицы не для этого. Они должны создаваться только на инициаторе, потому что они автоматически передаются инициатором на другие ноды.
  • https://t.me/clickhouse_ru
    19.13
    Cannot parse input: expected ) before: 7587), (\'refcode\',4,1,17587), (\'refcode\',1,1,17587), (\'refcode\',1,0,17587), (\'refcode: (at row 21348)
    Вот фул
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131235 03:13 PM, 09 Dec 2019
    4я колонка это Date
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131236 03:13 PM, 09 Dec 2019
    Дни
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131237 03:13 PM, 09 Dec 2019
    Всегда на нее ругается
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131238 03:16 PM, 09 Dec 2019
    Пишу в php используюя либу smi2/phpclickhouse
  • вот рабочее решение для того чтоб перелить данные из postgres в clickhouse
    // получение данных из pcs->mailing в формате csv
    psql -U postgres -d db -h host.ru -p 5432 -c "COPY (SELECT id, num FROM user) TO STDOUT With CSV DELIMITER ',';" > us.csv

    // создаем таблицу
    clickhouse-client -h host.ru --query="CREATE TABLE IF NOT EXISTS test.user (id int, num int) ENGINE = MergeTree() ORDER BY (id)"

    // записываем данные в таблицу
    clickhouse-client -h host.ru --format_csv_delimiter="," --query="INSERT INTO test.user FORMAT CSV" < us.csv
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131240 03:30 PM, 09 Dec 2019
    нет если даты будут то будет не сварение желудка
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131241 03:30 PM, 09 Dec 2019
    на простых данных да прокатит
  • https://t.me/clickhouse_ru
    лучше добавлять кавычки " иначе могут быть проблемы, КХ пытается угадать какие кавычки используются ' или " и будет падение при первой же одинарной кавычке вначале текстового поля.

    COPY (select * from crash_test) TO PROGRAM 'clickhouse-client --query="INSERT INTO crash_test FORMAT CSV"' with csv force quote *;

    или выключать одинарные кавычки в CH --format_csv_allow_single_quotes 0
  • https://t.me/clickhouse_ru
    @dzarlax #131243 03:34 PM, 09 Dec 2019
    Привет, подскажите пожалуйста, кто делал словари в mdb Clickhouse на Яндекс.Облаке?
  • https://t.me/clickhouse_ru
    @ivan_kush #131244 03:38 PM, 09 Dec 2019
    не подскажете, пжт, как указать разделитель при сохранении в CSV? Вместо запятой, чтобы был другой символ?
    INTO OUTFILE '/tmp/gg.txt' FORMAT CSV .....?
  • https://t.me/clickhouse_ru
    clickhouse-client --format_csv_delimiter '|'

    select 1,1 into outfile '/tmp/gg.txt' format CSV

    cat /tmp/gg.txt
    1|1
  • @vstakhov #131246 03:42 PM, 09 Dec 2019
    отцы, а что стоит использовать как дополнение к сабжу для realtime аггрегации и поиска данных, скажем, для небольшой глубины по времени (день-два максимум)?
  • @vstakhov #131247 03:43 PM, 09 Dec 2019
    я ведь правильно понимаю, что в CH этого лучше не делать, по крайней мере постоянно и достаточно часто?
  • https://t.me/clickhouse_ru
    если на чистом sql то в режиме сессии "SET format_csv_delimiter = ','"
  • https://t.me/clickhouse_ru
    хороший вопрос в том смысле что КХ это такая штука которая делает агрегацию лучше всех.

    У ва данные за два дня поместятся в ОЗУ ?
  • спасибо я учту
  • @vstakhov #131251 03:47 PM, 09 Dec 2019
    ну, я предложил нашим делать агрегацию в redis на zlists
  • @vstakhov #131252 03:47 PM, 09 Dec 2019
    но мб есть какое-то де-факто решение (вот я думал про ES, например)
  • https://t.me/clickhouse_ru
    видимо вы что-то другое понимаете под словом аггрегация
  • @vstakhov #131254 03:48 PM, 09 Dec 2019
    count, group by и ряд условий срабатывания
  • https://t.me/clickhouse_ru
    @m1khal3v #131255 03:49 PM, 09 Dec 2019
    Всем привет! С чем может быть связана такая ошибка:

    inflate failed: buffer error
    IN:INSERT INTO gmc_item_distributed ( gmc_id,item_id,country_code,label_code,updated_at,flag ) FORMAT TabSeparated

    Возникает при попытке загрузить файлик ~10мб 300к строк. в другие таблицы всё грузится нормально
  • https://t.me/clickhouse_ru
    посмотрите на движки SummingMT / AggregatingMT и materialized view. КХ уделает всех в разы.
  • @pavel_maksimow #131258 03:50 PM, 09 Dec 2019
    Подскажите пожалуйста, в чем причична такой ошики и как исправить:
    Code: 24, e.displayText() = DB::Exception: Cannot write to ostream at offset 2097322
  • то есть, вместо отдельных запросов создавать view с нужными свойствами?
  • Возможно, что клиент закрыл соединение до того как сервер успел ответить.
  • @vstakhov #131261 03:51 PM, 09 Dec 2019
    просто это все еще объединено в distributed
  • https://t.me/clickhouse_ru
    предагрегировать данные, чтобы вместо нескольких миллиардов сырых данных, в MV было в разы меньше и они лежали в нужном порядке для запросов.
  • ок, спасибо
  • https://t.me/clickhouse_ru
    ну по разному можно сделать, можно сделать что агрегаты будут задублированы на все ноды (я так делаю).

    можно сделать шардинг так что не нужна будет финальная агрегация и т.п.
  • @vstakhov #131265 03:54 PM, 09 Dec 2019
    понятно, в этом направлении я не думал, спасибо
  • https://t.me/clickhouse_ru
    ещё добавлю, что строки при этом все попадают в таблицу. кто сталкивался?
  • https://t.me/clickhouse_ru
    есть еще такой вариант, сделать выделенную машину с кучей памяти и nvme и положить на нее только таблицы - агрегаты (репликацией) и ходить туда с риал-тайм запросами
  • https://t.me/clickhouse_ru
    что в .err логе КХ ?
  • @Shazo_Rus #131269 03:57 PM, 09 Dec 2019
    Можно по хайпить и на optane?
  • https://t.me/clickhouse_ru
    если бы у меня до него был доступ)
  • https://t.me/clickhouse_ru
    ну так попросите посмотреть тех у кого есть доступ.
  • https://t.me/clickhouse_ru
    похоже в коде КХ нету такого <inflate failed: buffer error>
    это где-то у вас в приложении / api
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/412

    но в отличии от этого случая проблема встречается на файлах любого размера.
    DB::Exception: inflate failed: buffer error · Issue #412 · ClickHouse/ClickHouse

    Hi, when inserting to Clickhouse with HTTP transport and gzip (compression level 1), I see a lot of stack traces like the following. They don't happen regularly (sometimes the pipeline keep...

  • https://t.me/clickhouse_ru
    @m1khal3v #131274 04:08 PM, 09 Dec 2019
    странно то что возникает она именно при выгрузке в эту таблицу. остальные - норм, и размеры там больше
  • https://t.me/clickhouse_ru
    😬😬😬 таким образом нужно наоборот увеличивать granularity дополнительного индекса , чтобы ускорить поиск ? Как-то в голове не укладывается .
  • https://t.me/clickhouse_ru
    @bralbral #131276 04:18 PM, 09 Dec 2019
    Больная тема 🙄
  • https://t.me/clickhouse_ru
    конечно нет.
  • https://t.me/clickhouse_ru
    вам просто не подходят skip индексы, они не для вашей задачи
  • https://t.me/clickhouse_ru
    @vvladimirovv #131279 04:23 PM, 09 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    У меня была идея сделать каскад репласинг мердж три таблиц с партиционированием по дню, месяцу и году соответсвенно
    . Сворачиваться будет по одним полям , а людям нужно искать по другим 🙄. Они соедены мердж таблицами , пользователь обращается через них. Соответственно проходит день , данные улетают в месяц и та секция дропается и т.д И это принципиально , чтобы в конце - концов при запросе через какой-то веб им пришло минимальное количество строк , причем последних по дате , и не пришлось бы прикручивать дистинкт, груп бай и тд. Если уж и это не подходит , тогда наверно и кликхаус не подходит 😁
  • https://t.me/clickhouse_ru
    @Enchantner #131281 04:42 PM, 09 Dec 2019
    товарищи, я пытаюсь воспроизвести бенчмарк вот этого чувака https://tech.marksblogg.com/billion-nyc-taxi-rides-clickhouse-cluster.html . Создаю Distributed таблицу:

    CREATE TABLE trips_mergetree_x3
    AS trips_mergetree_third
    ENGINE = Distributed(perftest_3shards,
    default,
    trips_mergetree_third,
    rand());

    И заливаю в нее данные:

    INSERT INTO trips_mergetree_x3
    SELECT * FROM trips_mergetree;

    Дальше у него написано, что кликхаус через некоторое время сам распихает данные по шардам, но у меня все данные остаются на той ноде, на которой я эту таблицу создал. ЧЯДНТ?
    1.1 Billion Taxi Rides: 108-core ClickHouse Cluster

    Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...

  • https://t.me/clickhouse_ru
    @Enchantner #131282 04:43 PM, 09 Dec 2019
    при этом, как и в его примере,
    SELECT *
    FROM system.clusters
    WHERE cluster = 'perftest_3shards'
    FORMAT Vertical;
    возвращает все три сервера
  • https://t.me/clickhouse_ru
    @akoptsov #131283 04:44 PM, 09 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    так а что этот селект выдает? Колонки shard_num replica_num?

    >у меня все данные остаются на той ноде
    в смысле select count() показывает нужно кол-во на ноде-инициаторе? А на остальных нодах 0 строк?
  • https://t.me/clickhouse_ru
    distributed-таблица вообще показывается только на той же ноде, на которой я ее создал. И дата-каталоги на двух других нодах пустые.
  • https://t.me/clickhouse_ru
    на вопросы можете ответить?
  • https://t.me/clickhouse_ru
    @Enchantner #131287 04:48 PM, 09 Dec 2019
    Row 1:
    ──────
    cluster: perftest_3shards
    shard_num: 1
    shard_weight: 1
    replica_num: 1
    host_name: 35.158.138.58
    host_address: 35.158.138.58
    port: 9000
    is_local: 0
    user: default
    default_database:
    errors_count: 0
    estimated_recovery_time: 0

    Row 2:
    ──────
    cluster: perftest_3shards
    shard_num: 2
    shard_weight: 1
    replica_num: 1
    host_name: 18.196.146.211
    host_address: 18.196.146.211
    port: 9000
    is_local: 0
    user: default
    default_database:
    errors_count: 0
    estimated_recovery_time: 0

    Row 3:
    ──────
    cluster: perftest_3shards
    shard_num: 3
    shard_weight: 1
    replica_num: 1
    host_name: 18.184.241.98
    host_address: 18.184.241.98
    port: 9000
    is_local: 0
    user: default
    default_database:
    errors_count: 0
    estimated_recovery_time: 0

    3 rows in set. Elapsed: 0.002 sec.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    select count() from trips_mergetree_third c каждой ноды
  • https://t.me/clickhouse_ru
    ээээ
  • https://t.me/clickhouse_ru
    @Enchantner #131291 04:50 PM, 09 Dec 2019
    вообще везде нули
  • https://t.me/clickhouse_ru
    т.е. distributed не может запихать данные в таблицы, весь лог КХ должен быть завален ошибками
  • https://t.me/clickhouse_ru
    @Enchantner #131293 04:52 PM, 09 Dec 2019
    спасибо, судя по всему, почему-то не видит другие ноды
  • https://t.me/clickhouse_ru
    @Enchantner #131294 04:52 PM, 09 Dec 2019
    сейчас поковыряю
  • https://t.me/clickhouse_ru
    в итоге если отключить http-compression, то запрос выполняется валидно
  • https://t.me/clickhouse_ru
    go / jdbc ?
  • https://t.me/clickhouse_ru
    GitHub - smi2/phpClickHouse: php ClickHouse wrapper

    php ClickHouse wrapper. Contribute to smi2/phpClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    curl-м попробуйте
  • https://t.me/clickhouse_ru
    т.е ограничить курл по времени?
  • https://t.me/clickhouse_ru
    нет. я спрашиваю curl-м проблема воспроизводится?
  • https://t.me/clickhouse_ru
    @m1khal3v #131301 05:08 PM, 09 Dec 2019
    аа curl-ом ) так в либе и так курл под капотом, но попробую позже вне либы его заюзать, спасибо за совет
  • @kivlva #131302 05:15 PM, 09 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @yuminstall #131303 05:23 PM, 09 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Спасибо. А примеры такого есть? Таблица, насколько я могу судить, и создается на одной ноде. Ответ об ошибке приходит от другой ноды (если не ошибаюсь от реплики)
  • https://t.me/clickhouse_ru
    @radya100 #131305 05:41 PM, 09 Dec 2019
    Появилась ли возможность работы с графами - никто не знает? Вроде Алексей Миловидов намекал, что возможно появится... нужно определить все дочерние вершины графа с минимальными временными затратами...
  • https://t.me/clickhouse_ru
    @ravenjm #131306 05:43 PM, 09 Dec 2019
    И никаких прогнозов?
  • https://t.me/clickhouse_ru
    вам в гитхабе уже ответили. Вы делаете что-то бессмысленное. Создавайте таблицы например Engine=Memory. Temporary - это тоже Engine=Memory но они для другого.
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131308 06:03 PM, 09 Dec 2019
    Добрый вечер. Скажите, если в mergetree order by tuple, т е нет индексов и все селекты делаю по партиции целиком, то параметр granularity не имеет значения? На скорость запросов это не повлияет? Просто у меня очень пухлые записи с большими массивами....
  • https://t.me/clickhouse_ru
    имеет для многопоточности, если будет одна очень большая гранула, то только один поток будет выполнять запрос. И вроде памяти будет больше жрать для больших гранул.
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131311 06:07 PM, 09 Dec 2019
    Поиграюсь
  • https://t.me/clickhouse_ru
    @den_crane #131312 06:08 PM, 09 Dec 2019
    но вообще mergetree order by tuple это странно. Явно misusage для КХ.
  • https://t.me/clickhouse_ru
    У меня просто все выборки по дневным партициям. Это минимальный квант данных получается. Можно добавить индекс внутри дня, но ведь он не будет использоваться, и будет жрать память и скорость на вставке?
  • https://t.me/clickhouse_ru
    и сколько строк в одном дне?
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131315 06:27 PM, 09 Dec 2019
    37 млн, одна строка из массива на несколько килобайт - мегабайт в перспективе
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131316 06:28 PM, 09 Dec 2019
    Дни регулярно перезаливаются через реплейс партишин
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #131317 06:28 PM, 09 Dec 2019
    Поэтому нарезка по дням
  • https://t.me/clickhouse_ru
    ну ОК. я бы оставил как есть -- по-умолчанию, на таких размерах без разницы
  • https://t.me/clickhouse_ru
    Спасибо
  • ['Query','InsertQuery','FileOpen','WriteBufferFromFileDescriptorWrite','WriteBufferFromFileDescriptorWriteBytes','IOBufferAllocs','IOBufferAllocBytes','ArenaAllocChunks','ArenaAllocBytes','FunctionExecute','CreatedWriteBufferOrdinary','DiskWriteElapsedMicroseconds','InsertedRows','InsertedBytes','ZooKeeperTransactions','ZooKeeperCreate','ZooKeeperMulti','MergeTreeDataWriterRows','MergeTreeDataWriterUncompressedBytes','MergeTreeDataWriterCompressedBytes','MergeTreeDataWriterBlocks','ContextLock','RWLockAcquiredReadLocks']

    Все insert стабильно с RWLockAcquiredReadLocks в конце списка

    Что это значит?
  • https://t.me/clickhouse_ru
    Это название. Там рядом колонка со значениями.
  • @vladislavadv #131322 06:58 PM, 09 Dec 2019
    а что эти значния значат? ms?
  • https://t.me/clickhouse_ru
    @241186216 #131323 07:03 PM, 09 Dec 2019
    Там для каждого евента своя шкала
  • @vladislavadv #131324 07:06 PM, 09 Dec 2019
    сейчас есть один зависший. Ни одно значение в profileEvents не меняется
  • https://t.me/clickhouse_ru
    @241186216 #131325 07:09 PM, 09 Dec 2019
    Да, не видно . А perf есть возможность запустить ? Это бы позволило узнать место в коде, на котором вист сейчас.
  • @vladislavadv #131326 07:12 PM, 09 Dec 2019
    а не ляжет все?
  • https://t.me/clickhouse_ru
    У нас когда было на прод. Я снимал - было норм. Все висело на локах, и поэтому по цпу не легло
  • @1053948592 #131328 10:03 PM, 09 Dec 2019
    Joined.
  • 10 December 2019 (129 messages)
  • https://t.me/clickhouse_ru
    @onionalex #131330 01:36 AM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    в Materialized Views и Live Views смотрели?
  • https://t.me/clickhouse_ru
    @Gexeg #131332 06:04 AM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @blinkovivan #131333 07:06 AM, 10 Dec 2019
    ClickHouse митап в Москве состоится завтра вечером! 11 декабря в 18:30: https://yandex.ru/promo/clickhouse/moscow-december-2019

    Также мы сейчас занимаемся приоритезацией задач по дальнейшему улучшению документации ClickHouse и чтобы сделать это правильно, нам нужна обратная связь от вас. Если готовы помочь нам, заполните, пожалуйста, вот эту небольшую форму: https://forms.yandex.ru/surveys/10014882
    Link

    Приглашаем технических специалистов на митап по ClickHouse. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте.

  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131335 07:37 AM, 10 Dec 2019
    кто поможет — я сделал jdbc мост к посгрезу и хочу установить таблицу в кх как буду-то родную но она на postgreSQL
  • https://t.me/clickhouse_ru
    https://clickhouse.yandex/docs/en/operations/table_engines/jdbc/
    у вас похоже схема dbms_uri неправильная
  • https://t.me/clickhouse_ru
    нет, вы будете смеятся но у меня 6гиг озу на кх — думаю в этом проблема как тут описано https://github.com/ClickHouse/ClickHouse/issues/5784 —- так как если глянуть сек С++ но он неможеть выделить блок памяти но я не силен в с++
    Allocator: Cannot mmap 128.00 MiB · Issue #5784 · ClickHouse/ClickHouse

    Hello, i'm getting the error on linux host with 4Gb of RAM and 3.5Gb of data: 2019.06.27 18:02:11.314895 [ 51 ] {b06c9d4e-c769-4162-899f-7843b897b743} executeQuery: Code: 173, e.displayText...

  • https://t.me/clickhouse_ru
    причем тут память вы приаттачили ошибку syntax error
  • https://t.me/clickhouse_ru
    просто кх тупил и тупо написан код по диагностике — я же правильно все сделал
  • https://t.me/clickhouse_ru
    ну, красавчег тогда что все правильно сделал ;)
  • https://t.me/clickhouse_ru
    да ты прав но писали кх далеко не боги
  • https://t.me/clickhouse_ru
    @Rinatkaa #131342 08:26 AM, 10 Dec 2019
    Коллеги, есть вопрос по расчету нагрузки на сеть при запросах с большим временем отклика между сервером и хостом с которого выполняются запросы (50мс). Порекомендуйте пожалуйста, документ или методику, на что необхожимо обратить внимание, как учитывать компрессию, если для запросов использовать HTTP интерфейс или JDBC? Возможно ли обеспечить многопоточность передачи данных для ответа?
  • @Maxnosib #131343 08:28 AM, 10 Dec 2019
    Здравствуйте нашел как сделать экспорт данных в native формат но при импорте возникает ошибка
    https://groups.google.com/forum/#!topic/clickhouse/Dx0CsFGbk7c
    сама ошибка Code: 62. DB::Exception: Syntax error (data type): failed at position 8 (line 1, col 8): -c303-470c-9640-1c1ac80940d9 2388 111
    send 1. Expected one of: identifier with optional parameters, function, identifier, nested table, identifier with parameters, end of query
  • @Maxnosib #131344 08:30 AM, 10 Dec 2019
    данные в фале выглядят так
  • https://t.me/clickhouse_ru
    @zaport #131345 08:35 AM, 10 Dec 2019
    Нашел в мануалах системы фичу с партицированием, но возник вопрос: можно ли ее использовать для оптимизации запросов к базе? и если да, то никак не могу найти, как ее можно применить?
  • https://t.me/clickhouse_ru
    Партицирование - разделение таблицы на партиции - некие логические кусочки. Обычно делят по дате лога, например по месяцам или дням. Обычно так делаеют, поскольку в запросе есть фильтр по дате, который позволяет не читать всю таблицу, а начать сразу с нужной партиции
  • https://t.me/clickhouse_ru
    @zaport #131347 08:43 AM, 10 Dec 2019
    Получается, что clickhouse самостоятельно должен определить нужную партицию и получить из нее данные?
  • https://t.me/clickhouse_ru
    Он никому ничего не должен😄 Вы указываете в таблице как партиционировать данные, а потом в запросе - как искать. И КХ может увидеть связь - ага, тут такие партиции, а в запросе - указано так. Значит можно не читать всё, а только вот это. Магии нет
  • @Maxnosib #131349 08:49 AM, 10 Dec 2019
    поскажите можно ли при select и дальнешем выводе в файл изменить тип данных у столбца
  • https://t.me/clickhouse_ru
  • спасибо большое попробую
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rudinandrey #131353 09:23 AM, 10 Dec 2019
    вопрос, есть же вот эти красные кружочки на приложениях с цифрами Badge вроде.
  • https://t.me/clickhouse_ru
    @rudinandrey #131354 09:23 AM, 10 Dec 2019
    можно для них Clickhouse использовать?
  • https://t.me/clickhouse_ru
    @rudinandrey #131355 09:23 AM, 10 Dec 2019
    хотя нет наверное, там же Update надо будет делать, если прочитал сообщение. :(
  • https://t.me/clickhouse_ru
    почему, каунтер может быть результатом сумм ±1
  • https://t.me/clickhouse_ru
    @351787200 #131357 09:57 AM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    это же все равно UPDATE, а тут с этим не очень вроде :( INSERT и SELECT только.
  • Нет, только инсёрты, а значение - как Select sum(...)
  • https://t.me/clickhouse_ru
    надо писать, какое сообщение, какой пользователь посмотрел.
  • https://t.me/clickhouse_ru
    @rudinandrey #131361 10:22 AM, 10 Dec 2019
    я прост боюсь что MySQL не вытянет, ClickHouse по скорости очень хорош конечно, попробую посмотреть в сторону ElasticSearch.
  • Ну, это тоже инсерт - событие "пользователь А посмотрел сообщение Б"
  • https://t.me/clickhouse_ru
    @rudinandrey #131363 10:24 AM, 10 Dec 2019
    вообще то да кстати :)
  • https://t.me/clickhouse_ru
    @rudinandrey #131364 10:24 AM, 10 Dec 2019
    вот не зря все таки обратился :) Спасибо!!!!!
  • https://t.me/clickhouse_ru
    @zaglex #131365 10:27 AM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @241186216 #131366 10:52 AM, 10 Dec 2019
    Можно ли по словарю как-понять , что в таблице есть дубликаты ?
  • https://t.me/clickhouse_ru
    Можно. Создаёте бд с типом dictionary. В ней будет таблица с именем словаря. Create database mydict Engine=Dictionary
  • https://t.me/clickhouse_ru
    кстати сегодня пробовал
    echo "SELECT 1" | gzip -c | curl -sS --data-binary @- -H "Content-Encoding: gzip" - работает
    echo "SELECT 1" | curl -sS --compressed --data-binary @- -H "Content-Encoding: gzip" - не работает

    в итоге решили без компрессии работать
  • https://t.me/clickhouse_ru
    @kotsubinsky #131369 12:31 PM, 10 Dec 2019
    Всех приветствую товарищи! кто-нибудь пытался сдернуть данные по jdbc из oracle? падает вот такая ошибка HTTP status code: 500 Invalid or unsupported name for clientInfo., body: Invalid or unsupported name for clientInfo. (version 19.14.6.12)
    HTTP status code: 500 Invalid or unsupported name for clientInfo., body: Invalid or unsupported name for clientInfo. (version 19.14.6.12)
  • https://t.me/clickhouse_ru
    @kotsubinsky #131370 12:34 PM, 10 Dec 2019
    вопрос собственно такой: в какую сторону копать? jdbc, oracle, CH ?
  • https://t.me/clickhouse_ru
    мост я допливал на посгреса — у них все на java сыро https://github.com/ClickHouse/clickhouse-jdbc-bridge
    GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

    A JDBC proxy from ClickHouse to external databases - GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

  • https://t.me/clickhouse_ru
    Проблема в том, что со стороны Java все драйверы по-разному предоставляют информацию о том, как замаппить нативный тип в типы ClickHouse. Видимо, придётся реализовывать "диалекты" (a-ka хардкод для каждого драйвера в отдельности)
  • https://t.me/clickhouse_ru
    просто пропатчить, у них нет поддержки диалекта как такого
  • https://t.me/clickhouse_ru
    могу выслать мои патчи, попросто там. в личку стучись — пока не буду заливать в их гид так сделал не фуншуй
  • https://t.me/clickhouse_ru
    Сделайте PR, смержим
  • https://t.me/clickhouse_ru
  • @406392094 #131378 12:54 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @149051052 #131379 12:54 PM, 10 Dec 2019
    Пожалуйста, подскажите как быстро удаляются временные таблицы?
  • https://t.me/clickhouse_ru
    @kotsubinsky #131380 12:54 PM, 10 Dec 2019
    всем спасибо
  • https://t.me/clickhouse_ru
    @775410284 #131381 12:57 PM, 10 Dec 2019
    https://github.com/ClickHouse/clickhouse-jdbc-bridge/issues/2 - тут описаны похожие симптомы
    Add support for Oracle JDBC · Issue #2 · ClickHouse/clickhouse-jdbc-bridge

    Currently without any code modification it is hard to work with Oracle database. Following problems are encountered: Can't pass login and password information to connection. Oracle JDBC req...

  • https://t.me/clickhouse_ru
    Temporary? По концу сессии. Есть параметр session_timeout=60, т.е. если сессия неактивна 60 сек. то конец.
  • https://t.me/clickhouse_ru
    @Valenvaryon #131383 01:22 PM, 10 Dec 2019
    Привет
    а как проще всего отреплицировать новую машинку с нуля?
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    В словаре дубликаты? Там не может быть дубликатов, перезатирается по ключу.
  • https://t.me/clickhouse_ru
    вроде нашел доку
  • @ibeltek #131387 01:40 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @artilligence #131388 02:37 PM, 10 Dec 2019
    Коллеги, добрый день! Подскажите, пожалуйста, можно ли в CH сделать запрос, который вернет набор дат в определенном формате, чтобы с ними можно было сделтаь join?
  • https://t.me/clickhouse_ru
    кстати если вдруг кто-то следит за этой эпопеей или в будущем столкнулся с такой же проблемой и нашёл это в поиске , то отказ от сессий решает вопрос с нерабочей компрессией (и кстати со скоростью выполнения инсертов)

    протэгаю текстом ошибки:
    inflate failed: buffer error
  • https://t.me/clickhouse_ru
    @386851661 #131390 02:51 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #131392 02:53 PM, 10 Dec 2019
    но возможно тебе подойдут и более простые функции
  • https://t.me/clickhouse_ru
    мне в первую очередь нужна функция, которая сможет сгенерировать N строк, например, я хочу получить все часы в сутках от 00:00 до 23:00
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @artilligence #131395 02:56 PM, 10 Dec 2019
    спасибо, посмотрю
  • https://t.me/clickhouse_ru
    @386851661 #131396 03:03 PM, 10 Dec 2019
    Всем, добрый день! Подскажите, как в click House сделать ранжировку по показателю в группе?
  • https://t.me/clickhouse_ru
    select .. from ... order by group и при создании таблицы указать тот же order by
  • https://t.me/clickhouse_ru
    select toDateTime('2019-01-01 12:00:00') + interval number hour from numbers(100);

    SELECT arrayMap(x -> addHours(toDateTime('2019-01-01 12:00:00'), x), range(100))

    select arrayJoin(arrayMap(x -> addHours(toDateTime('2019-01-01 12:00:00') , x ), range(100)));
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    файл в native нечитаемый, у вас на картинке похоже на TSV

    $ clickhouse-client -q "select * from XS format Native" > xx
    $ cat xx
    AInt64AInt64AInt64AInt64AInt64AInt64AInt64

    clickhouse-client -q "select * from XS format Native" | clickhouse-client -q "insert into XS format Native"
  • в итоге пришел в такому результату
    clickhouse-client --query="SELECT id,m.ids AS uid,time FROM a LEFT JOIN mg AS m USING (id) SETTINGS join_use_nulls = 1 FORMAT Native" > a.native
    clickhouse-client --query="INSERT INTO test (id,uid,time) FORMAT Native" < a.native

    но как я понимаю можно сделать передачу через | ?
    тогда сразу вопрос а получиться ли так передать 500 гб данных если оперативы 32 гб?
  • https://t.me/clickhouse_ru
    >но как я понимаю можно сделать передачу через | ?
    да

    >тогда сразу вопрос а получиться ли так передать 500 гб данных если оперативы 32 гб?
    да

    а через remote() не проще ?
  • https://t.me/clickhouse_ru
    @den_crane #131406 03:46 PM, 10 Dec 2019
    select * from remote(.....)

    insert into function remote(host, db, table) select .... from local
  • @Maxnosib #131407 03:46 PM, 10 Dec 2019
    я незнаю надо почитать
  • спасибо огромное за помощь !!!!!!!!!!!
  • https://t.me/clickhouse_ru
    не прокатит вроде как так человеку нужно скрестить разные субд а под это нужно мострячить мост
  • https://t.me/clickhouse_ru
    вы слезайте уже с тяжелых наркотиков.
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131411 04:05 PM, 10 Dec 2019
    кто поможет? хочу форматирование ошибок а то не читальная помойка текста
  • https://t.me/clickhouse_ru
    @michailmarketplace #131412 04:32 PM, 10 Dec 2019
    о боги! это можно дергать insert into function remote? какие подводные камни при этом есть? Гуглить пробовал, не получалось найти и намека на такой функционал
  • https://t.me/clickhouse_ru
    это в принципе даже документировано, просто очень неявно и без примеров. Подводных камней нет. Есть в тестах (в смысле тестируется автотестами).
  • https://t.me/clickhouse_ru
    @michailmarketplace #131414 04:37 PM, 10 Dec 2019
    спасибо, как же здорово, что месяц вашей тишины завершен
  • https://t.me/clickhouse_ru
    @starlordblitzar #131415 04:38 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131416 04:47 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Сделай для начала 1 рабочий запрос select * from jdbc(first_table)
  • https://t.me/clickhouse_ru
    @nblagodarnyy #131418 04:48 PM, 10 Dec 2019
    Потом на него наворачивай кусками
  • https://t.me/clickhouse_ru
    есть уже то, я через мост jdbc — 2 дня пилил его
  • https://t.me/clickhouse_ru
    так то знаю
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131421 04:48 PM, 10 Dec 2019
    хотел сразу "лепота"
  • https://t.me/clickhouse_ru
    @combot #131424 b o t 05:04 PM, 10 Dec 2019
    Alert! Seraph21 Goswami is a known spammer and is CAS banned. Ban is strongly recommended.
  • https://t.me/clickhouse_ru
    @michailmarketplace #131426 05:12 PM, 10 Dec 2019
    Подскажите плз. Есть tableA и tableB, tableB является упрощенной версией tableA, туда просится Matview, но пока я живу в режиме ручной вставки в эту таблицу. Все таблицы реплицированы. Если я сейчас включу matview на вставку из tableA в tableB, не возникнет ли каких то неожиданностей с репликацией? Т.е. нормально ли себя ведет реплицированная таблица, в которую пишет matview?
  • https://t.me/clickhouse_ru
    @den_crane #131427 05:18 PM, 10 Dec 2019
    >Т.е. нормально ли себя ведет реплицированная таблица, в которую пишет matview?
    нормально.
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131428 05:30 PM, 10 Dec 2019
    @Krashuevina вы хоть не пишите с ошибками в доке - у вас JDBC (....) не работает, а верно в нижнем регистре jdbc(...) — я все как в доке делал и дров наломал, 1 день рабочий убил
  • https://t.me/clickhouse_ru
    Я буду благодарен если вы укажете, где ошибка, чтобы мы могли сэкономить время остальным пользователям.
  • https://t.me/clickhouse_ru
    вот в допиленном jdbc мосту (у меня посгрес не получался с ip в url — но это другая тема)
    пока так все нужно в нижем регистре

    это работает (после моего патча моста)
    select * from jdbc('remote_pg_data_center', 'kakunin_dc_data_tmp', 'monitor_exec') as monitor_exec;

    а это матерится
    select * from JDBC('remote_pg_data_center', 'kakunin_dc_data_tmp', 'monitor_exec') as monitor_exec;

    код ошибке
    Code: 46, e.displayText() = DB::Exception: Unknown table function JDBC. Maybe you meant: ['jdbc','odbc'] (version 19.17.4.11 (official build))

    стек ошибки — если нужно скину позже
  • https://t.me/clickhouse_ru
    Код ошибки 46 прилетает от сервера ClickHouse. В этот момент вызова к постгресу через мост даже не происходит. CH не находит у себя функцию с именем "JDBC", и сообщает об этом.
    Если вы видели где-то в документации запросы с JDBC (UPPERCASE), то это относилось к движку таблиц. https://clickhouse.yandex/docs/ru/operations/table_engines/jdbc/
  • https://t.me/clickhouse_ru
    это у меня вообще не смогло выполниться — придирается что нужно приписать AS или Primary key и т.п
    CREATE TABLE jdbc_table ENGINE JDBC('jdbc:mysql://localhost:3306/?user=root&password=root', 'test', 'test') —— это вообше не сработало у меня на посгресе
  • https://t.me/clickhouse_ru
    @Krashuevina #131433 06:17 PM, 10 Dec 2019
    да, тут вижу косяк, пропущено "=" между ENGINE и JDBC.
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131434 06:17 PM, 10 Dec 2019
    вообще усвительнось к регисту мне не понять — всем базам пофигу на регистрам - нужно не делать чусвительность
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131435 06:18 PM, 10 Dec 2019
    да косяк но и с = и без —- не катит у вас jdbc вагон проблем и тесты заваливаются в ошибки
  • https://t.me/clickhouse_ru
    это у вас от незнания. Все базы чувствительны к регистру, просто они приводят SQL литералы либо в нижний регист либо в верхний.
    Алексею нравится camelCase поэтому в КХ так сделать не получится.
  • https://t.me/clickhouse_ru
    @fomars #131437 06:59 PM, 10 Dec 2019
    привет, при попытке соединения с кликхаусом, поднятым в докере из yandex/clickhouse-server получаю
    requests.exceptions.SSLError: HTTPSConnectionPool(host='localhost', port=8123): Max retries exceeded with url: /?database=luna_test&max_threads=3 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_record', 'wrong version number')],)",),))
    подозреваю, что проблема в разных версиях ssl, подскажите как проверить это и исправить, спасибо
  • https://t.me/clickhouse_ru
    проверь свои ключи ssl ты наверно не скорировал хранилище ключей для докеров. но я не профи. лог смотри там больше ошибок должно быть
  • https://t.me/clickhouse_ru
    @fomars ↶ Reply to #131438 #131439 07:21 PM, 10 Dec 2019
    а че за хранилище, есть где почитать от этом?
  • https://t.me/clickhouse_ru
    я джавист у меня все по другому . там своя песочница но должна быть место защищеное только под рутом зависит от реализации но или в /opt или /var. я не профи в докерах
  • https://t.me/clickhouse_ru
    @fomars ↶ Reply to #131440 #131441 07:26 PM, 10 Dec 2019
    ладно забей я подожду ответа от поддержки завтра)
  • https://t.me/clickhouse_ru
    https выключен по умолчанию.
    Порт там 8443 !
    Естественно нужны сертификаты и ключи /etc/clickhouse-server/server.crt /etc/clickhouse-server/server.key /etc/clickhouse-server/dhparam.pem
  • https://t.me/clickhouse_ru
    @nesesarius #131443 07:41 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @fomars ↶ Reply to #131442 #131444 07:45 PM, 10 Dec 2019
    Спасибо, а где про это подробнее почитать? Ни в докер-хабе, ни в документации ничего про это не нашёл
  • https://t.me/clickhouse_ru
    даже не знаю, когда мне понадобилось все было очевидно прямо из /etc/clickhouse-server/config.xml
  • https://t.me/clickhouse_ru
    @fomars ↶ Reply to #131445 #131446 07:47 PM, 10 Dec 2019
    Это внутри контейнера?
  • https://t.me/clickhouse_ru
    вам вообще зачем https и зачем контейнер?

    Ваши вопросы вообще не имеют отношения к КХ.
    Сертификат надо либо сгенерить самоподписанный, либо купить. Конфиг кх лучше монтировать с хоста, либо директорию с сертификатами смонтировать с хоста и изменить пути в конфиге.
  • https://t.me/clickhouse_ru
    @fomars ↶ Reply to #131447 #131448 07:53 PM, 10 Dec 2019
    Чтоб гонять тесты; https чтоб не переписывать конфигурацию специально под тесты (хотя может проще уж переписать)
  • https://t.me/clickhouse_ru
    могу дать в личку чат докеров спецов и девопсеров . а вообще не советую кх в докер. в докеры хорошо все ПО без состояния типа тупые микросервисы к бд. а бд жирные и прожоливые и в докерах будет одни минусы
  • https://t.me/clickhouse_ru
    смысла нет, все равно придется отключить полную проверку, чтобы работало с самоподписанным сертификатом
  • https://t.me/clickhouse_ru
    если тестить не по детски то нужно зоводит кластер из зукипера и гонять терабайты по сетке
  • https://t.me/clickhouse_ru
    @Glost14 #131452 08:58 PM, 10 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Date as a number in INSERT VALUES may fail or slow down · Issue #8129 · ClickHouse/ClickHouse

    Seems some php libs inserts Date as a number in Values. create table vtest(A String, B Int64, C Int64, D Date) Engine=Memory; 19.15.5.18 -- fails if number of values is high clickhouse-client -q &a...

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131455 09:35 PM, 10 Dec 2019
    Я разбил сохранение на пачки по 1000 и проходит безукаризненно
  • https://t.me/clickhouse_ru
    т.е. проблема в нестандартном 17587 вместо '2018-02-25'

    в TSV например 17587 вообще не прокатывает
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131457 09:37 PM, 10 Dec 2019
    Ну у меня постоянно на разных цифрах выпадает. Именно при записи в колонку Date, а я туда пишу количество дней, как в доке указанно
  • https://t.me/clickhouse_ru
    ммм, это где указано что надо писать Date в днях?
  • https://t.me/clickhouse_ru
    @den_crane #131459 09:38 PM, 10 Dec 2019
    >Ну у меня постоянно на разных цифрах выпадает
    что значит на цифрах???

    КХ ожидает '2018-02-25'
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131460 09:39 PM, 10 Dec 2019
    Ну я в доке увидел
    > A date. Stored in two bytes as the number of days since 1970-01-01 (unsigned).
    И начал. В итоге то оно верно сохраняет дату
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131461 09:39 PM, 10 Dec 2019
    Но иногда выпадает на большом количестве данных
  • https://t.me/clickhouse_ru
    эээ. Это раскрыта внутренняя кухня. Но это неправильно. КХ завтра может начать совсем по другому хранить
  • https://t.me/clickhouse_ru
    @DorianPeregrim #131463 09:41 PM, 10 Dec 2019
    Вас понял, значит мой косяк. Переделаю завтра на строки
  • https://t.me/clickhouse_ru
    @gummeah #131464 10:46 PM, 10 Dec 2019
    Joined.
  • 11 December 2019 (243 messages)
  • @Intropy #131465 04:41 AM, 11 Dec 2019
    Joined.
  • @Alexxxxxxxxii #131466 05:20 AM, 11 Dec 2019
    Joined.
  • @Alexxxxxxxxii #131467 05:20 AM, 11 Dec 2019
    Приветствую, а можно в кликхаусе сделать dry run для запроса? Чтобы он не выполнялся?
  • https://t.me/clickhouse_ru
    И что бы что?
  • @Alexxxxxxxxii #131469 05:25 AM, 11 Dec 2019
    Чтобы он просто не выполнился но в логе был
  • @Alexxxxxxxxii #131470 05:25 AM, 11 Dec 2019
    Просто я помню что вроде использовал это когда смотрел альтеры на удаление когда оно появилось
  • https://t.me/clickhouse_ru
    просто сделай условие типа select ... where 1=0
  • @Alexxxxxxxxii #131472 05:27 AM, 11 Dec 2019
    По моему была опция, но видимо меня мозг обманывает
  • https://t.me/clickhouse_ru
    @forward32 #131474 07:28 AM, 11 Dec 2019
    Всем привет!

    Вопрос к знатокам по JSONEachRow формату.

    Минимальный пример:
    CREATE TABLE test
    (
    `id` Int64,
    `price` Decimal32(6)
    )
    ENGINE = MergeTree()
    ORDER BY id

    Ok.

    2a4d210308fc :) insert into test values(1, '0.123');
    INSERT INTO test VALUES
    Ok.

    2a4d210308fc :) insert into test format JSONEachRow {"id": 1, "price": "0.123"};
    INSERT INTO test FORMAT JSONEachRow

    Exception on client:
    Code: 27. DB::Exception: Cannot parse input: expected , before: "0.123"};: (at row 1)
    Connecting to localhost:9000 as user default.
    Connected to ClickHouse server version 19.17.2 revision 54428.

    Почему CH не может распарсить decimal из строки, если используется JSONEachRow-формат, но при обычном inserte может?
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131475 07:41 AM, 11 Dec 2019
    респект выражаю яндексу — так навернуть простой select — это круто, можно целую книгу написать о кх селекте — я про это https://clickhouse.yandex/docs/ru/query_language/select/
  • @IlyaPetr0v #131476 07:42 AM, 11 Dec 2019
    Joined.
  • В вашем любимом постгресе select такой же простой: https://www.postgresql.org/docs/current/sql-select.html
  • @SWx5YQ ↶ Reply to #131475 #131478 07:46 AM, 11 Dec 2019
    о, ну полистайте на досуге, прежде чем набрасывать
    https://dev.mysql.com/doc/refman/8.0/en/select.html
  • https://t.me/clickhouse_ru
    хуже, мне понравился "бантик" ANY JOIN — яндекс не просто тень гугла...
  • @yukron #131480 08:04 AM, 11 Dec 2019
    CH в Docker в виде кластера насколько стабильно работает?
  • Довольно стабильно. В любом случае всегда можно перекинуть ноду из докера в "голое железо".
  • @yukron #131482 08:10 AM, 11 Dec 2019
    Спасибо.
  • https://t.me/clickhouse_ru
    @v9lijj ↶ Reply to #131480 #131483 08:13 AM, 11 Dec 2019
    Гоняли на разных нагрузках, проблем замечено не было. Главное, чтобы ты понимал и умел в докер, тогда проблемы не будет :)
  • @IlyaPetr0v #131484 08:17 AM, 11 Dec 2019
    Доброго дня. Подскажите пожалуйста по паре моментов. Начал изучать тему time series с того, что послушал доклад про timescaledb. Потом и про clickhouse узнал. Для timescaledb есть штука под названием streamdb. Идея в том, чтобы иметь запросы которые "довычисляются" на вставляемых данных. Это очень заинтересовало. 1.Хотелось бы узнать есть ли такая же возможность в Clickhouse (чтобы дообрабатывать только по новым данным а не пробегать всё каждый раз сначала)? 2.И более общий вопрос по аналитике timeseries. Задача в том, чтобы сделать что-то в духе alerting'a и все эти аналитические запросы это круто и быстро, но текущая задача моя это отслеживать по определённым фильтрам появление ситуаций по которым нужно делать alert + продолжать alerting с обновляющейся картиной того как всё плохо. Есть ли какой-то инструментарий в аналитических БД, который как раз после загрузки нового чанка данных, позволяет понять, что грубо говоря появились новые алерты или они обновились? Или в любом случае это ручками нудно будет делать этот diff (выгружать стейт до загрузки обновлений, потом запрашивать после и сравнивать)
  • 1. Materialized View. Select в запросе как раз использует вставляемые данные.
    2. Live View возможно подойдёт https://www.altinity.com/blog/tag/Live+Views
  • @IlyaPetr0v #131486 08:21 AM, 11 Dec 2019
    Спасибо огромное.
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131428 #131487 08:24 AM, 11 Dec 2019
    ну если вы бы еще немного времени убили, Вы бы поняли, что JDBC(...) и jdbc(...) несколько разные вещи. как пример запрос:

    create table jdbc.category engine = JDBC('datasource://postgresql', 'public', 'category')
    as
    select * from jdbc('datasource://postgresql', 'public', 'category');

    JDBC - указывается в качестве энжина для таблицы, а jdbc - как указатель на то, что from берется не из CH а обращается к коннектору, ну т.е. это табличная функция
  • @yukron ↶ Reply to #131483 #131488 08:24 AM, 11 Dec 2019
    Спасибо вам за отзыв
  • https://t.me/clickhouse_ru
    спасибо за просвящение
  • @IlyaPetr0v #131490 08:26 AM, 11 Dec 2019
    И ещё нубовский вопрос: самый лучший ликбез для входа в clickhouse? Это доки или навскидку есть какая-то статья самая хорошая? Если же такого явно нет, то извиняюсь: сам буду искать.
  • https://t.me/clickhouse_ru
    вот это почитай https://www.altinity.com/
    ClickHouse Software And Services — Altinity

    Deploy and operate ClickHouse, a lightning fast, open source SQL data warehouse for real-time analytics, time series, and log analysis.

  • Доки и блог Altinity, пожалуй
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131489 #131493 08:27 AM, 11 Dec 2019
    мы сами на этом убили достаточно много времени, пока не зашли в гит репозиторий коннектора, где все более-менее ясно описано
    https://github.com/ClickHouse/clickhouse-jdbc-bridge
    GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

    A JDBC proxy from ClickHouse to external databases - GitHub - ClickHouse/clickhouse-jdbc-bridge: A JDBC proxy from ClickHouse to external databases

  • @IlyaPetr0v #131494 08:28 AM, 11 Dec 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @adolfstallman #131495 08:32 AM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hombit #131496 08:51 AM, 11 Dec 2019
    Подскажите, можно ли отключить компрессию только для данной MergeTree таблицы? Хочется потестировать производительность для разных настроек компрессии, но не понимаю как
  • https://t.me/clickhouse_ru
    @Kanuas_1 #131497 08:57 AM, 11 Dec 2019
    Добрый день, пробовал использовать allow_ddl, однако я немного не понял как работает параметр. Может я неправильно его использовал? Прописывал <allow_ddl>0</allow_ddl> в user.xml
  • https://t.me/clickhouse_ru
    Только явно в DDL указать для каждого столбца CODEC(None)
  • https://t.me/clickhouse_ru
    @Krashuevina #131499 08:58 AM, 11 Dec 2019
    или желаемый кодек
  • https://t.me/clickhouse_ru
    @qwblnp #131500 08:58 AM, 11 Dec 2019
    ребят, подскажите, может кто знает:
    есть такой замечательный продукт от JetBrains как DataGrip (впрочем любая их ide)
    там есть поддержка CH из коробки, и по дефолту скачивается драйвер 0.1.50 вроде как последний. все хорошо, запросы выполняются, но есть ряд ограничений при написании запросов, и мне хотелось бы понять - проблема в драйвере, или в самой IDE?
  • @IlyaPetr0v #131501 09:00 AM, 11 Dec 2019
    Интересно а видео с сегодняшнего митапа будут доступны?
  • https://t.me/clickhouse_ru
    каких именно ограничений?
  • https://t.me/clickhouse_ru
    @qwblnp #131503 09:03 AM, 11 Dec 2019
    я привел скриншот, где видно, что подсвечивается строгий джойн вложенного подзапроса, и значения из этого подзапроса не видно в селекте
    при этом, сам запрос выполняется
  • https://t.me/clickhouse_ru
    @ondanna #131504 09:05 AM, 11 Dec 2019
    может диалект сбился
  • https://t.me/clickhouse_ru
    @ondanna #131505 09:05 AM, 11 Dec 2019
    у меня вроде нормально работает с джоинами
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131504 #131506 09:06 AM, 11 Dec 2019
    да вроде все ок с диалектами, иначе тот же toStartOfMonth(invoice_creation_date_time), который до джойна - не понимал бы
  • https://t.me/clickhouse_ru
    @ondanna #131507 09:06 AM, 11 Dec 2019
    а если явно указать тип JOIN?
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131507 #131508 09:08 AM, 11 Dec 2019
    может я не совсем понимаю, но куда уж явнее?
  • https://t.me/clickhouse_ru
    @ondanna #131509 09:08 AM, 11 Dec 2019
    LEFT/RIGHT итд
  • https://t.me/clickhouse_ru
    @qwblnp #131510 09:08 AM, 11 Dec 2019
    так там left join указан
  • https://t.me/clickhouse_ru
    @ondanna #131511 09:09 AM, 11 Dec 2019
    ааа блин
  • https://t.me/clickhouse_ru
    @ondanna #131512 09:09 AM, 11 Dec 2019
    я у себя с ALL LEFT играюсь и не вижу :))
  • https://t.me/clickhouse_ru
    @jusamorez #131513 09:10 AM, 11 Dec 2019
    datagrip требует указания all/any
  • https://t.me/clickhouse_ru
    @ondanna #131514 09:10 AM, 11 Dec 2019
    видимо да
  • https://t.me/clickhouse_ru
    @ondanna #131515 09:10 AM, 11 Dec 2019
    убираю ALL - как у Николая подсветка становится
  • https://t.me/clickhouse_ru
    @qwblnp #131516 09:11 AM, 11 Dec 2019
    гм... и правда
  • https://t.me/clickhouse_ru
    @qwblnp #131517 09:12 AM, 11 Dec 2019
    тогда подскажите, в чем отличительная особенность all left join от any left join и просто left join
    или это просто часть синтаксиса требуемая IDE?
  • https://t.me/clickhouse_ru
    @jusamorez #131518 09:13 AM, 11 Dec 2019
    Раньше они точно были обязательными. ANY вернет только одну (первую попавшуюся) связанную строчку, а ALL все
  • https://t.me/clickhouse_ru
    Join (SQL)

    A join clause in SQL – corresponding to a join operation in relational algebra – combines columns from one or more tables into a new table. ANSI-standard SQL specifies five types of JOIN: INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER and CROSS.

  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131519 #131520 09:17 AM, 11 Dec 2019
    спасибо большое, что бы я без этого сообщения делал...
    только вопрос несколько в другом, не находите?
    1) CH - не реляционная БД, хоть синтаксис и схож
    2) в статье ни слова про all/any join
    3) если бы я не знал, что такое джойны, я бы не спрашивал про отличительные особенности
  • https://t.me/clickhouse_ru
    в доке описано, и результаты запроса будут значительно отличаться
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Цитирую:
    "Соединяет данные в привычном для SQL JOIN смысле."
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131521 #131524 09:18 AM, 11 Dec 2019
    спасибо
  • https://t.me/clickhouse_ru
    Доки, конечно, не всегда успевают, но данное место там очень давно есть.
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131522 #131526 09:19 AM, 11 Dec 2019
    фишка в том, что в доке описано, что просто join тоже должен работать, а в IDE - подсвечивает синтаксис, при этом, сам запрос выполняется
  • https://t.me/clickhouse_ru
    незачто, Станислав ссылку прислал выше, именно там это все
  • https://t.me/clickhouse_ru
    @qwblnp #131528 09:21 AM, 11 Dec 2019
    ну т.е. IDE априори подразумевает, что ОБЯЗАТЕЛЬНО указывать строгость джойна, хотя это не обязательно для самого CH и, кстати, вполне себе так влияет на результаты выборки
  • https://t.me/clickhouse_ru
    разработчики датагрипа к разработчикам кликхауса не имеют никакого отношения :)
    Раньше в кликхаусе ANY|ALL были обязательными, видать в датагрипе не успели подправить синтаксис еще
  • https://t.me/clickhouse_ru
    ну так по доке просто join - это inner join, а не left join
  • https://t.me/clickhouse_ru
    Или я не понял, на что ругается?
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131529 #131532 09:23 AM, 11 Dec 2019
    ну к этому выводу я тоже пришел, осталось понять, описание синтаксиса, хранится в драйвере, или это полностью в руках JB?
  • https://t.me/clickhouse_ru
    Да, не вижу...
  • https://t.me/clickhouse_ru
    @qwblnp ↶ Reply to #131530 #131534 09:24 AM, 11 Dec 2019
    и у меня в запросе не просто join а left join а ругается на отсутствие any/all
  • https://t.me/clickhouse_ru
    Ясно, таки не увидел.
  • https://t.me/clickhouse_ru
    Если я правильно понял доку, по-умолчанию - ALL
  • https://t.me/clickhouse_ru
    @qwblnp #131537 09:28 AM, 11 Dec 2019
    по умолчанию - не обязательно, а вот all left join - аналогичен left join в sql
  • https://t.me/clickhouse_ru
    @mikhailberg #131538 10:09 AM, 11 Dec 2019
    гайз, есть вопросик небольшой вопросик
    у меня есть большая таблица(10ккк), мне нужно перелить эти данные в аггрегирующую

    если я сделаю insert - select, будут ли проблемы с памятью или что-то похожее ? Спасибо
  • https://t.me/clickhouse_ru
    @monashev #131539 10:27 AM, 11 Dec 2019
    привет.
    Скажите, пожалуйста, есть ли возможность сжимать текстовый столбец (текста от 1 до 100 кб бывает) с повторяющимися значениями?
  • @DenHawk #131540 10:29 AM, 11 Dec 2019
    Я тут у вас
  • @orlan_sar #131541 10:33 AM, 11 Dec 2019
    Привет всем. Подскажите, плиз, как достать из массива максимальный элемент?
  • https://t.me/clickhouse_ru
    @hombit ↶ Reply to #131541 #131542 10:35 AM, 11 Dec 2019
    max(arrayJoin(arr)) подойдет?
  • https://t.me/clickhouse_ru
    arrayReverseSort(arr)[1]
  • @133452245 #131544 10:36 AM, 11 Dec 2019
    интересно что быдет быстрее )
  • https://t.me/clickhouse_ru
    @hombit ↶ Reply to #131543 #131545 10:36 AM, 11 Dec 2019
    n log(n) же
  • https://t.me/clickhouse_ru
    Странные задачи не всегда имеют оптимальное решение :)
  • https://t.me/clickhouse_ru
    @hombit #131547 10:37 AM, 11 Dec 2019
    Но вообще наверное от размера массива зависит, вряд ли они большие
  • https://t.me/clickhouse_ru
    @hombit #131548 10:37 AM, 11 Dec 2019
    Согласен!
  • @133452245 #131549 10:37 AM, 11 Dec 2019
    там есть ограничение на размер массива, так что небольшие скорее всего
  • https://t.me/clickhouse_ru
    так а за какое время максимальный эллемент в не отсортированном списке можно найти еще?
  • https://t.me/clickhouse_ru
    @icetfoer #131551 10:38 AM, 11 Dec 2019
    qsort за n log n работает
  • https://t.me/clickhouse_ru
    @hombit #131552 10:38 AM, 11 Dec 2019
    За ровно n?
  • https://t.me/clickhouse_ru
    За O(N) ?
  • https://t.me/clickhouse_ru
    @icetfoer #131554 10:38 AM, 11 Dec 2019
    как?
  • https://t.me/clickhouse_ru
    @hombit #131555 10:38 AM, 11 Dec 2019
    А не за O(n log(n))
  • https://t.me/clickhouse_ru
    Просмотрев все элементы подряд?
  • Идёшь в цикле и сравниваешь с текущим максимумом
  • https://t.me/clickhouse_ru
    @icetfoer #131558 10:39 AM, 11 Dec 2019
    эх, да
  • https://t.me/clickhouse_ru
    @icetfoer #131559 10:39 AM, 11 Dec 2019
    чет я затупил
  • https://t.me/clickhouse_ru
    @sglubokov #131560 11:17 AM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @sglubokov #131561 11:26 AM, 11 Dec 2019
    Ребята, всем привет!

    Вчера возник вопрос, хочется понять истину: имеем в таблице поле, означающее тип события. Типов ограниченное число, но постоянно появляются новые. Стоит вопрос - в каком виде хранить в CH. Вариантов 3: int'ом, string'ом, enum'ом.
    Enum отбрасываем, т.к. альтеры делать вовремя не имеем возможности. String у int'а выигрывает удобством дальнейших запросов к статистике (про механизм словарей знаем, но кажется, что они тут некоторым оверхедом являются)
    Вопросов 2:
    1. при дефолтных настройках, будет ли у string'a сильный проигрыш по объему на диске? Схлопываются ли в рамках партиций одинаковые значения в колонках?
    2. планируется много запросов, где данное поле будет фигурировать в where. Есть ли выигрыш по скорости у int'a при фильтрации?

    Заранее спасибо за ответы
  • LowCardinality(String)?
  • https://t.me/clickhouse_ru
    Это да, просто интересно, как это работает без LowCardinality (надо ли переделывать и переписывать старые таблицы)
  • это покрывает все ваши кейсы. Если интересует именно стоит ли переходить со старого варианта, то думаю да, но проще взять данные за какой-то период да проверить.
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131565 11:41 AM, 11 Dec 2019
    https://github.com/ClickHouse/ClickHouse/issues/936
    а эту ишуёвину зарешали?
    хочу добавлять столбец в табличку, реплицируемую двумя способами (через репликатед мерж три и дистрибутед таблички поверх)

    предлагается добавить в мерж три столбец, а дистрибутед пересоздать
    alter table via distributed table is not working · Issue #936 · ClickHouse/ClickHouse

    Hello, I'm not sure if this a bug or not but based on documentation: "INSERT and ALTER are replicated" Having this in mind I'm expecting the following scenario is ...

  • лениво вчитываться, но уже давно используем ALTER на distributed. Добавляете в исходнуую таблицу, потом в distributed
  • https://t.me/clickhouse_ru
    Отлично, но он на меня кодом Латвии ругается
    ServerException: Code: 371.
    DB::Exception: There was an error on [<hostip>:9000]: An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table 'my-tablename' is replicated, but shard #1 isn't replicated according to its cluster definition. Possibly <internal_replication>true</internal_replication> is forgotten in the cluster config.

    А в документации так "<internal_replication>true</internal_replication><!-- Не обязательно. Записывать ли данные только на одну, любую из реплик. По умолчанию, false - записывать данные на все реплики. -->"
    я во все реплики хочу данные писать
  • @Shazo_Rus #131568 11:54 AM, 11 Dec 2019
    Вы делаете ALTER на distributed таблице с опцией ON CLuster? Если без ON CLuster работает?
  • https://t.me/clickhouse_ru
    ага, on cluster, только у меня спотычина еще на базовой таблице происходит. Может, if not exists убрать
  • а шард 1 сколько реплик?
  • Таблица - значения телеметрий от устройств. Есть столбец с названием метрики. Сценарий такой же, как у вас - могут появляться новые метрики, но общее количество достаточно небольшое (сейчас 22). В тестовой таблице 400млн строк, распределение метрик неравномерное, есть метрики с 200млн записей, есть с 1млн.
    1. Тип метрики String, столбец в сжатом виде - 17Мб, в распакованном - 3,8гб.
    Если тип LowCardinality(String) - в сжатом виде 1.7Мб, в распакованном - 377мб.
    2. SELECT COUNT() с фильтром по метрике:
    String: Elapsed: 4.983 sec. Processed 394.41 million rows, 7.29 GB (79.15 million rows/s., 1.46 GB/s.)
    LowCardinality: Elapsed: 1.609 sec. Processed 394.41 million rows, 395.26 MB (245.07 million rows/s., 245.60 MB/s.)
  • https://t.me/clickhouse_ru
    3 реплики, шард единственный
  • select * from system.clusters? Если много, то нужен лишь тот где задействована таблица
  • C int'ами сравнения нет, LowCardinality полностью устроил, жертвовать удобством и руками работать со словарями не захотелось.
  • https://t.me/clickhouse_ru
    [
    ('clustername', 1, 1, 1, 'x.x.x.65', 'x.x.x.65', 9000, 0, 'default', '', 0, 0),
    ('clustername', 1, 1, 2, 'x.x.x.66', 'x.x.x.66', 9000, 0, 'default', '', 0, 0),
    ('clustername', 1, 1, 3, 'x.x.x.67', 'x.x.x.67', 9000, 1, 'default', '', 0, 0)
    ]
  • Без ON CLuster работает? так как если у вас у вас один шард, Запрос ALTER должен отреплицироваться внутри шарда.
  • https://t.me/clickhouse_ru
    Ничоси! Сработало
  • https://t.me/clickhouse_ru
    @149051052 #131578 12:18 PM, 11 Dec 2019
    Прямой эфир митапа будет?
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131579 12:18 PM, 11 Dec 2019
  • спасибо
  • спасибо
  • https://t.me/clickhouse_ru
    Спасибо огромное! То что надо.
  • https://t.me/clickhouse_ru
    @414125887 #131584 12:31 PM, 11 Dec 2019
    Может ли новый clickhouse-copier не работать со старыми версиями кх?

    Пользуюсь первый раз, ловлю ошибку. clickhouse-copier v 19.17.5.18
    2019.12.11 15:25:19.670784 [ 1 ] {} <Trace> Connection (X.X.X.X:9000): Connected to ClickHouse server version 19.15.2.
    2019.12.11 15:25:19.724865 [ 1 ] {} <Error> ClusterCopier: Will retry: Code: 393, e.displayText() = DB::Exception: There is no query, Stack trace:

    0. 0x562835c6d690 StackTrace::StackTrace() /usr/bin/clickhouse
    1. 0x562835c6d465 DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) /usr/bin/clickhouse
    2. 0x562835989a17 ? /usr/bin/clickhouse
    3. 0x562838fbd0f9 DB::Context::getSampleBlockCache[abi:cxx11]() const /usr/bin/clickhouse
    4. 0x5628390579ec DB::InterpreterSelectWithUnionQuery::getSampleBlock(std::shared_ptr<DB::IAST> const&, DB::Context const&) /usr/bin/clickhouse
    5. 0x562839002685 DB::InterpreterCreateQuery::createTable(DB::ASTCreateQuery&) /usr/bin/clickhouse
    6. 0x562839004975 DB::InterpreterCreateQuery::execute() /usr/bin/clickhouse
    7. 0x562835db72b4 DB::ClusterCopier::dropAndCreateLocalTable(std::shared_ptr<DB::IAST> const&) /usr/bin/clickhouse
    8. 0x562835dc5962 ? /usr/bin/clickhouse
    9. 0x562835dc8a98 ? /usr/bin/clickhouse
    10. 0x562835dc9bec ? /usr/bin/clickhouse
    11. 0x562835dd0f58 DB::ClusterCopier::process(DB::ConnectionTimeouts const&) /usr/bin/clickhouse
    12. 0x562835daa734 DB::ClusterCopierApp::mainImpl() /usr/bin/clickhouse
    13. 0x562835bb4df2 DB::ClusterCopierApp::main(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/bin/clickhouse
    14. 0x562839d34e98 Poco::Util::Application::run() /usr/bin/clickhouse
    15. 0x562839d4b5de Poco::Util::ServerApplication::run(int, char**) /usr/bin/clickhouse
    16. 0x562835da7760 mainEntryClickHouseClusterCopier(int, char**) /usr/bin/clickhouse
    17. 0x562835ba9a7d main /usr/bin/clickhouse
    18. 0x7f0804880b97 __libc_start_main /lib/x86_64-linux-gnu/libc-2.27.so
    19. 0x562835c131ca _start /usr/bin/clickhouse
  • Может подскажете : А если вдруг захочется сделать LiveView над MaterializwdView то будут ли проблемы?
  • Я пока не пробовал Live View, но предполагаю, что они работают аналогично MV. А каскадные MV относительно недавно наконец-то реализовали. Так что должно нормально работать, но надо потестить.
  • Спасибо
  • https://t.me/clickhouse_ru
    arrayReduce('max', arr)
  • https://t.me/clickhouse_ru
    @k0st1an #131589 12:58 PM, 11 Dec 2019
    Подскажите - параметры ZK автоподгружаемы или надо принудительно перезапускать сервер?
  • https://t.me/clickhouse_ru
    перегружать
  • https://t.me/clickhouse_ru
    спс
  • @IlyaPetr0v #131592 01:01 PM, 11 Dec 2019
    Я только по Live View не понял одно: Он будет хранить все версии или последнюю/ние?
  • Только последнюю.
  • https://t.me/clickhouse_ru
    @327240484 #131594 01:25 PM, 11 Dec 2019
    подскажите, что-то дополнительное необходимо конфигурировать для настройки автоудаления партиций?
    сконфигурировал так, но автоудаление не работает:
    `month` Date DEFAULT toDate(date)
    TTL month + toIntervalDay(25)

    ClickHouse server version 19.16.3 revision 54427
  • https://t.me/clickhouse_ru
    @Nikmort #131595 01:33 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    нужно именно автоудаление партиций? или удаление записей старше 25 дней? TTL умеет и то и это. Удаляется раз в сутки.
  • https://t.me/clickhouse_ru
    Проблема решилась. В конфиге с задачей к копиру ссылался на MV. Нужно указывать именно имя таблицы, например '.inner.mv'.

    Вообще, если mv создан нормально, то такой проблемы не встретите)
  • https://t.me/clickhouse_ru
    не принципиально
  • https://t.me/clickhouse_ru
    вот это да (удивление)
  • https://t.me/clickhouse_ru
    @327240484 #131602 01:55 PM, 11 Dec 2019
    мне нужно, чтобы это работало :)
  • https://t.me/clickhouse_ru
    почему это удивительно, в чём разница механизмов?
  • https://t.me/clickhouse_ru
    дроп партиции стоит 0, удаление записей стоит очень дорого.

    Дроп партиции сносит партицию целиком, т.е. ждет пока все записи в партиции достигнут over TTL, удаление записей точечно мержем удаляет некорые записи из партиции.
  • https://t.me/clickhouse_ru
    тогда удаление партиции нужно
  • https://t.me/clickhouse_ru
    @den_crane #131607 02:17 PM, 11 Dec 2019
    MergeTree now has an additional option ttl_only_drop_parts
  • https://t.me/clickhouse_ru
    @327240484 #131608 02:19 PM, 11 Dec 2019
    для aggregatingmergetree тоже отработает добавление параметра?
  • https://t.me/clickhouse_ru
    @den_crane #131609 02:22 PM, 11 Dec 2019
    для все движков семейства
  • https://t.me/clickhouse_ru
    @327240484 #131610 02:23 PM, 11 Dec 2019
    если я правильно понял - параметр влияет только на способ удаления устаревших данных?
  • https://t.me/clickhouse_ru
    @den_crane #131611 02:23 PM, 11 Dec 2019
    да
  • https://t.me/clickhouse_ru
    @327240484 #131612 02:23 PM, 11 Dec 2019
    как быть с тем, что у меня не работает это автоудаление в принципе?
  • https://t.me/clickhouse_ru
    @327240484 #131613 02:24 PM, 11 Dec 2019
    или я чего-то не понял?
  • https://t.me/clickhouse_ru
    @den_crane #131614 02:29 PM, 11 Dec 2019
    ClickHouse/ClickHouse

    ClickHouse is a free analytics DBMS for big data. Contribute to ClickHouse/ClickHouse development by creating an account on GitHub.

  • Тогда не понимаю чем это отличается от Materialized view, только тем что оно лишь в памяти хранится?
  • https://t.me/clickhouse_ru
    Добрый День. К сожалению поздно узнал про данную встерчу.
    Материалы с митапа выкладываться будут?
    Можно будет как-нибудь их получить, если ты не сотрудник яндекса?
  • https://t.me/clickhouse_ru
    @mlgFrontender #131617 03:04 PM, 11 Dec 2019
    А есть трансляция?
  • Детально про Live View можете прочитать здесь https://www.altinity.com/blog/tag/Live+Views.
    Одно из основных отличий это поддержка новых WATCH запросов.
  • https://t.me/clickhouse_ru
    @mlgFrontender #131619 03:05 PM, 11 Dec 2019
    Я записался но будильник не сработал ((((
  • https://t.me/clickhouse_ru
    А можно пойти на встречу за тебя, представившись Сергеем Степановым? ))))
  • https://t.me/clickhouse_ru
    Хрен! Я опоздаю ))) Но буду позже )
  • https://t.me/clickhouse_ru
    Да, видео на YouTube, слайды на GitHub
  • https://t.me/clickhouse_ru
    ОКей. Спс. Буду ждать ссылки
  • https://t.me/clickhouse_ru
    А так вообще можно? Использовать обычные аггрегации в движке AggregatingMergeTree? 🤔

    min(created_date) AS min_created_date,
  • https://t.me/clickhouse_ru
    @alexeychernykh #131625 03:57 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @chercheririna #131626 03:58 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @BloodJazMan #131627 03:58 PM, 11 Dec 2019
    https://www.youtube.com/watch?v=mUawpkaObJA
    гоу на Московский Митап =) в прямой эфир
    ClickHouse митап Москва

    Продолжение: https://www.youtube.com/watch?v=16ukmxo0HOI

  • https://t.me/clickhouse_ru
    @BloodJazMan #131628 03:58 PM, 11 Dec 2019
    первая тема походу будет вообще огонь про прогнозирование временных рядов
  • @133452245 #131629 03:59 PM, 11 Dec 2019
    записывался на него даже :( но времени совсем нет сходить, а тема точно 🔥
  • https://t.me/clickhouse_ru
    @chistyakovsy #131630 04:01 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @rudinandrey #131631 04:01 PM, 11 Dec 2019
    у меня чот не работает (((((((
  • https://t.me/clickhouse_ru
    @ondanna #131632 04:01 PM, 11 Dec 2019
    походу ровно до начала работал стрим 🙂
  • https://t.me/clickhouse_ru
    @blinkovivan #131633 04:04 PM, 11 Dec 2019
    Прямая трансляция ClickHouse митапа в Москве: https://www.youtube.com/watch?v=5cAf6s2Q4iE
  • https://t.me/clickhouse_ru
    None
  • не работает
  • @freezlite #131636 04:05 PM, 11 Dec 2019
    извините что не в тему, как выключить уведомления при смене темы на канале ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ondanna #131638 04:06 PM, 11 Dec 2019
    ссылка другая
  • @vadamlyuk #131639 04:07 PM, 11 Dec 2019
    А запись будет?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rudinandrey #131641 04:07 PM, 11 Dec 2019
    а что одинаковые ссылки ? ))))))
  • https://t.me/clickhouse_ru
    @rudinandrey #131642 04:07 PM, 11 Dec 2019
    надо в Канал зайти и там другая ссылка будет
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #131615 #131643 04:10 PM, 11 Dec 2019
    Кажется еще и тем что у него нет проблем блочного хранения как у MV. Мержится все независимо от блоков и тп.
  • https://t.me/clickhouse_ru
    Вопросы из чата можно задавать?
  • https://t.me/clickhouse_ru
    лучше в youtube
  • https://t.me/clickhouse_ru
    @Apxumar #131646 04:16 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Apxumar #131648 04:17 PM, 11 Dec 2019
    Коллеги, глупый вопрос, а что будет делать ClickHouse, если в bf индексе указать дробное количество хэш функций?
  • https://t.me/clickhouse_ru
    create table test_table
    ( x Int64,
    cnt UInt32,
    min_ts SimpleAggregateFunction(min, UInt64) ,
    max_ts SimpleAggregateFunction(max, UInt64)
    engine = AggregatingMergeTree() order by x;

    insert into test_table values (1,1,1,1);
    insert into test_table values (1,1,2,2);

    optimize table test_table final;
    select * from test_table;
  • https://t.me/clickhouse_ru
    хуже) чат отключен, да и сама трансляция уже тоже)
  • https://t.me/clickhouse_ru
    всё что связано с яндексом, всегда с особенностями, вот например если не сказать, что нужно это закрепнуть вместо неработающей ссылки
  • https://t.me/clickhouse_ru
    @h04u_liTb #131653 04:29 PM, 11 Dec 2019
    то оно и не закрепнется)))
  • https://t.me/clickhouse_ru
    кто не ошибается, тот ничего не делает. А Яндекс делает очень много.
  • https://t.me/clickhouse_ru
    @epichero #131655 04:33 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #131656 04:34 PM, 11 Dec 2019
    кино кончилось?(
  • @mfilimonov #131657 04:34 PM, 11 Dec 2019
    @blinkovivan трансляция подвисла.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rudinandrey #131659 04:35 PM, 11 Dec 2019
    я сглазил, простите :(
  • https://t.me/clickhouse_ru
    @artemhnilov #131661 05:35 PM, 11 Dec 2019
    сглазун
  • https://t.me/clickhouse_ru
    еще ссылочки с примерами программ тестовых и скриптов ждемс на гитхабе
  • https://t.me/clickhouse_ru
    каких именно скриптов/программ?
  • https://t.me/clickhouse_ru
    демострашек ваших. вы же писали проги на конференцию. вот их. или хотя бы ваши слайды
  • @997057859 #131665 06:36 PM, 11 Dec 2019
    конец или еще будут доклады?
  • https://t.me/clickhouse_ru
    смотря сколько заплатишь. шутка
  • https://t.me/clickhouse_ru
    @marjbell #131667 06:55 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @matwey_kornilov #131668 07:07 PM, 11 Dec 2019
    А какую файловую систему лучше всего выбрать для CH?
  • @ArmenakBaburyan #131669 07:08 PM, 11 Dec 2019
    ext4 в доке на первой странице написано.
  • @997057859 #131670 07:17 PM, 11 Dec 2019
    трансляция лаганула на вопросе про кубернетис, почему очень легко потерять данные в кубернетис?
  • @alltouch #131671 07:47 PM, 11 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    слайды все тут живут: https://github.com/ClickHouse/ClickHouse-presentations
    ClickHouse/clickhouse-presentations

    Presentations, meetups and talks about ClickHouse. Contribute to ClickHouse/clickhouse-presentations development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Лёшин — последний
  • https://t.me/clickhouse_ru
    @alexanderzaitsev
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    Потому что он изначально под stateless заточен был
    И даже сейчас volumes и volume claim надо уметь пользоваться
    А resize volume все еще не поддерживается вроде бы
  • https://t.me/clickhouse_ru
    поддерживается, начиная с определенной версии, но есть нюансы
  • https://t.me/clickhouse_ru
    :-) как и в любой фиче кубов
  • https://t.me/clickhouse_ru
    @nomine_ma #131679 08:50 PM, 11 Dec 2019
    Joined.
  • @IlyaPetr0v #131680 09:08 PM, 11 Dec 2019
    А подскажите пожалуйста - где можно взять docker image со свежей версией ибо как я понял на dockerhub версия 19.1.13 (или только билдить из сорсов?), которая не особо свежая. И вообще по жизни какую лучше сейчас юзать версию, чтобы она была не особо сырой но и не совсем старой.
  • https://t.me/clickhouse_ru
    @rudinandrey #131681 09:09 PM, 11 Dec 2019
    кх в докере тормозит сильно :(
  • https://t.me/clickhouse_ru
    эээ нет https://hub.docker.com/r/yandex/clickhouse-server/tags

    latest
    ARG version=19.17.2.*
  • https://t.me/clickhouse_ru
    ничего не тормозит, с чего бы вдруг. Просто надо волумы с хоста монтировать.
  • Спасибо, извиняюсь, не туда смотрел выходит.
  • https://t.me/clickhouse_ru
    вот тут да, к своему стыду я не помню как я делал, через волумы или нет ((((((((
  • https://t.me/clickhouse_ru
    а сколько примерно падение производительности если все правильно настроить в докере через волумы использовать в докере и напрямую на хосте?
  • Имеется ввиду с хоста а не по сети? Или имеется ввиду с хоста а не из фс контейнера?
  • https://t.me/clickhouse_ru
    @den_crane #131689 09:15 PM, 11 Dec 2019
    кх миллион файлов может за минуту сгенерить и удалить. Конечно на виртуальных фс докера тормозит.
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131687 #131690 09:15 PM, 11 Dec 2019
    почти нисколько. это практически равноценно запуску на хосте
  • https://t.me/clickhouse_ru
  • Нет ну так то да, конечно будет тормозит. Спасибо за ответ.
  • https://t.me/clickhouse_ru
    @rudinandrey #131693 09:23 PM, 11 Dec 2019
    mysql через volume ставил, конкретно так тормозил в докере.
  • https://t.me/clickhouse_ru
    @rudinandrey #131694 09:23 PM, 11 Dec 2019
    clickhouse ставил, около миллиона записей, и там count() считался несколько секунд. но да, не помню как подключал (((
  • https://t.me/clickhouse_ru
    @rudinandrey #131695 09:24 PM, 11 Dec 2019
    перепроверю, отпишусь. спасибо большое!!! это радует, что падения производительности не будет.
  • Мож там настройки были дефолтные какие-то были или памяти мало выделено?
  • https://t.me/clickhouse_ru
    @rudinandrey #131697 09:25 PM, 11 Dec 2019
    может, еще потестирую обязательно.
  • Не на маке случайно? 🙂
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131694 #131699 09:25 PM, 11 Dec 2019
    не зная конфигурацию сервера, дисков, параметров настроек хоста и докера сложно сказать что может быть причиной
  • https://t.me/clickhouse_ru
    нет VDS
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131700 #131701 09:27 PM, 11 Dec 2019
    т.е. вы запускали докер внутри VDS и сравнивали работу как в самом VDS, так и из докера?
  • Вообще конечно интересная тема. Потому что слышал и про постгрес в докере мол тормозит и что нужно там macvlanы всякие использовать, но и они не идеальны. Но тут наверное нужно конкретно экспериментировать и понимать что и где как сконфижено, либо может есть доклад какой с этим сравнением
  • https://t.me/clickhouse_ru
    @rudinandrey #131703 09:29 PM, 11 Dec 2019
    да, есть два VDS, один помощьнее, там процев побольше, памяти побольше, SSD. запускал в докере, все сильно тормозило и сейчас выделили отдельный VDS, миинимум характеристики 1проц. 1гиг. SSD на нем установлен Clickhouse в Ubuntu все летает )
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131703 #131704 09:30 PM, 11 Dec 2019
    а вот в том, который первый - пробовали запустить в самом VDS без использования докера?
  • https://t.me/clickhouse_ru
    нет, там куча всего, не стал ставить, но он мощный по сравнению с этим вторым. к нему претензий нет вообще.
  • https://t.me/clickhouse_ru
    @rudinandrey #131706 09:33 PM, 11 Dec 2019
    к конфигурации и работе.
  • https://t.me/clickhouse_ru
    @rudinandrey #131707 09:33 PM, 11 Dec 2019
    но там я не хотел лишние программы ставить и все такое.
  • https://t.me/clickhouse_ru
    @rudinandrey #131708 09:33 PM, 11 Dec 2019
    поэтому в докер завернул
  • https://t.me/clickhouse_ru
    @rudinandrey #131709 09:34 PM, 11 Dec 2019
    а тут под это дело специально выделили там программа забирает данные в mysql, из нее в Clickhouse переливает.
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #131705 #131710 09:34 PM, 11 Dec 2019
    так у вас может не докер тормозил, а сам VDS. Может и на самом VDS у вас всё тормозило бы
  • https://t.me/clickhouse_ru
    @rudinandrey #131711 09:34 PM, 11 Dec 2019
    с Clickhouse метрику смотрим, все ооооочень быстро ) по сравнению с Mysql это просто космос )
  • https://t.me/clickhouse_ru
    может быть, поэтому выделю VDS и на нем потестирую на хосте и в докере.
  • https://t.me/clickhouse_ru
    @rudinandrey #131713 09:35 PM, 11 Dec 2019
    для чистоты эксперимента.
  • https://t.me/clickhouse_ru
    Вкратце, потому что кубер надо уметь готовить. У нас несколько клиентов с кликхаусом в кубере умудрились потерять данные, но никто не терял данные вне кубера. Это не проблема кликхауса, это отсутствие понимания и опыта, как работать с stateless в кубере. Если он у вас есть, то вы справитесь и с кликхаусом. Оператор делает все проще и помогает избегать многих ошибок, но он не может научить. Тут либо надо шишек понабивать, либо кубер постепенно дойдет. Работа в этом направлении ведется и не малая
  • @milovidov_an #131715 11:30 PM, 11 Dec 2019
    Artemeey

    "​Можно ли сделать attach партиции с одинаковой структурой, но другим кодеком сжатия?"

    Да, можно. Для таблицы не важно, с каким кодеком данные уже были записаны. Кодек, который прописан в таблице, определяет, как записывать новые данные. А при чтении поддерживаются любые кодеки, с которыми данные фактически записаны.
  • 12 December 2019 (219 messages)
  • @milovidov_an #131716 12:18 AM, 12 Dec 2019
    Кто-то спрашивал, поддерживает ли формат Template пропуск строк после ошибки парсинга (настройки input_format_allow_errors_...). Да, поддерживает.
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @DineshShrestkha #131718 05:12 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Apxumar #131719 07:02 AM, 12 Dec 2019
    Up)
  • https://t.me/clickhouse_ru
    @Apxumar #131720 07:02 AM, 12 Dec 2019
    Коллеги, глупый вопрос, а что будет делать ClickHouse, если в bf индексе указать дробное количество хэш функций?
  • https://t.me/clickhouse_ru
    @436455138 #131721 08:06 AM, 12 Dec 2019
    Попробуй - расскажешь
  • https://t.me/clickhouse_ru
    @michailmarketplace #131722 08:18 AM, 12 Dec 2019
    Смотрю на тарифы яндекс облака (под кликхаус). Как ни кручу параметры, это решение оказывается дороже в разы, чем сервера в аренду. intel broadwell 16vcpu 64gb и 1тб сетевого ссд = 570 евро, в онлайне можно взять значительно более мощное железо в аренду (тот же проц, но 2 физических (40vcpu), 256ram и 3*500ssd) почти в два раза дешевле или 8 серверов на е3 с теми же 64gb и с 3*500ssd. Я что то упускаю из виду? Что то не правильно считаю? Каков кейс использования этого облака?
  • https://t.me/clickhouse_ru
    @v9lijj ↶ Reply to #131722 #131723 08:21 AM, 12 Dec 2019
    как и в любом клауде. Сервис всегда дороже. Но тебе не надо руками делать кучу всякого тулинга, чтобы гарантировать себе спокойную работу
  • https://t.me/clickhouse_ru
    Это всегда будет дороже, чем взять просто виртуалку. Не забывай, что ещё нужно 3 зукипера
  • https://t.me/clickhouse_ru
    Дык ничего удивительного - облака и по сей день чудовищно дорогие выходят. Это плата за суппорт и отсуствие наличия своего железа :)
    Мы в свое время с ажура свинтили, ибо ценник там оказался чуть ли не в два раза выше, чем на своем железе.
  • https://t.me/clickhouse_ru
    @alexkomrakov #131726 08:22 AM, 12 Dec 2019
    я тоже не очень понимаю почему облачные решения должны быть дешевле железных
  • https://t.me/clickhouse_ru
    Для стартапа облака дешевше как ни крути. А вот как только начинается большая нагрузка, то из облака надо бежать на свое железо. Ну или быть компанией уровня Газпрома, где бабло не считают :)
  • https://t.me/clickhouse_ru
    @orloffv #131728 08:24 AM, 12 Dec 2019
    Плюс всякие фичи типа бэкапа кликхауса самому не так тривиально сделать
  • https://t.me/clickhouse_ru
    @michailmarketplace #131729 08:24 AM, 12 Dec 2019
    ага, понял, спасибо, значит смотрел правильно, просто продукт специфичный сильно
  • https://t.me/clickhouse_ru
    Чей-то специфичный? Бесплатный, однако!
  • https://t.me/clickhouse_ru
    @michailmarketplace #131731 08:26 AM, 12 Dec 2019
    я про облако яндекса
  • https://t.me/clickhouse_ru
    @Yuri_Velgosha #131732 08:27 AM, 12 Dec 2019
    А, ну это да. Ну тут уже чисто российская специфика с чисто российской жадностью :)
  • https://t.me/clickhouse_ru
    Как говорится, сделайте альтернативный сервис более дешевле и все переедут к вам:)
  • https://t.me/clickhouse_ru
    @arnaki #131734 08:38 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    Не очень правильный рассчет. Сколько денег вы потеряете, когда будете обслуживать этот сервер? Сколько будет в принципе стоить поддержка сервера? Замена вышедших из строя дисков и памяти?
  • https://t.me/clickhouse_ru
    @ProffUst #131737 08:41 AM, 12 Dec 2019
    Если инхаус цод, сколько будет стоить подвод питания с двух подстанции, два канала связи?
  • https://t.me/clickhouse_ru
    @ProffUst #131738 08:41 AM, 12 Dec 2019
    Все, не флужу
  • https://t.me/clickhouse_ru
    @michailmarketplace #131740 08:42 AM, 12 Dec 2019
    если говорим про вариант с 6 машинками, то оверкост на уровне стоимости двух часов работы сисадмина в месяц, в случае проблем с железом - письмо хостеру и ожидание его замены. инхаус - это конечно вариант для совсем отчаяных
  • https://t.me/clickhouse_ru
    С арендой бареметал все упирается в наличие толковых админов. Если есть и вы в них уверены - конечно дешевле. Если надо искать и неизвестно сколько они запросят - проще купить SAAS
  • @Alexxxxxxxxii #131742 08:47 AM, 12 Dec 2019
    Админ на два часа в любое время суток и с опытом кликхауса ?
  • @Alexxxxxxxxii #131743 08:48 AM, 12 Dec 2019
    Это же не mysql
  • https://t.me/clickhouse_ru
    @arnaki #131744 08:48 AM, 12 Dec 2019
    Всем привет) вопрос к людям которые понимают специфику работы кликхауса, потому что я ее не до конца еще понял) наша команда решила использовать ReplacingMergeTree для того что бы избежать дубликатов. В доке указано что схлопывание записей происходит в какой то момент времени, но в когда это произойдет никто не знает. мы решили потестить эту фичу и создали таблицу с 4млн записей половина из которых это дубликаты. мы подождали день и в таблице осталось 4млн записей, то есть дубликаты не схлопнулись. Сейчас помогает только вызов OPTIMIZE TABLE table_name FINAL, при вызове этой команды дубликаты таки удаляются. Следовательно у меня вопрос, есть ли какие то четкие промежутки времени через которые кликхаус самостоятельно начинает схлопывать данные? возможно это как то можно сконфигуририровать?
  • https://t.me/clickhouse_ru
    @michailmarketplace #131745 08:49 AM, 12 Dec 2019
    дык вот именно, что не mysql, за год полета вопросов вообще как то не возникало... вот прям очень хочется саас, чтоб не думать ни о чем, но как начну примеряться, получается, что это прям в разы дороже и остаюсь жить в каменном веке с арендованным железом
  • https://t.me/clickhouse_ru
    четких промежутков нет, есть даже кейсы, когда схлапывание не произойдет в принципе (данные в разных партициях), мы используем щедро присыпав агрегациями типа argMax
  • https://t.me/clickhouse_ru
    @arnaki ↶ Reply to #131746 #131747 08:54 AM, 12 Dec 2019
    окей, то есть рабочий вариант это использовать таблицу с дубликатами, и доставать из нее данные в агрегированном виде?
  • @vladim1r_sergeevich #131748 08:56 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    у нас используется так, да. т.е. таблица типа test (a UInt32, b UInt32, ver DateTime DEFAULT now()) ENGINE = ReplacingMergeTree(ver) ....
    пишем в нее insert into test (1,2) дополняем insert into test (1,12)
    выбираем типа select argMax(b,ver) from test where a=1
  • https://t.me/clickhouse_ru
    @arnaki ↶ Reply to #131749 #131750 08:58 AM, 12 Dec 2019
    понял, спасибо за совет)
  • @alltouch #131751 09:00 AM, 12 Dec 2019
    Привет. Мы с Артемом в одной компании работаем.
  • @alltouch #131752 09:00 AM, 12 Dec 2019
    А выбор сразу много строк с самой свежей версией у вас не практикуется?
  • https://t.me/clickhouse_ru
    @rclick #131753 09:01 AM, 12 Dec 2019
    конечно практикуется, даже "как бы удаление" практикуется
  • @alltouch #131754 09:03 AM, 12 Dec 2019
    Пример, таблица (firstName, lastName, version) и выборка например select * from table limit 20 offset 500

    И тут не понятно куда версию засовывать 🙂.

    Пока что через final берем.
    Может будут какие-то идеи, что с этим делать?
  • https://t.me/clickhouse_ru
    @michailmarketplace #131755 09:04 AM, 12 Dec 2019
    у нас типа такого
  • @slo_Oth #131756 09:04 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @michailmarketplace #131757 09:04 AM, 12 Dec 2019
    таблица типа data (rid UInt32, kid UInt32, deleted UInt8, dataa, datab,datac, еще 20 параметров, ver DateTime DEFAULT now())
    это данные для некой сущности с определенным rid
    когда надо получить что то про эти данные, выбираем

    select kid, argMax(dataa, ver), argMax(datab, ver)
    from data
    where rid=XXX
    group by kid
    having argMax(deleted,ver)=0
  • https://t.me/clickhouse_ru
    @michailmarketplace #131758 09:05 AM, 12 Dec 2019
    соответственно в вашем случае я бы задал еще какую то сортировку и шагал limit 20, 500
  • https://t.me/clickhouse_ru
    @michailmarketplace #131759 09:06 AM, 12 Dec 2019
    но у нас в таких таблицах лежит не супер много данных, прямо сейчас - 2 066 507 206 записей неравномерно разложенные по 2 711rid
  • @slo_Oth #131760 09:07 AM, 12 Dec 2019
    Подскажите плз. Есть таблица (a Date, b Value). Как в кликхаусе правильно выбрать строку вида (a Date, b Value, c Value) где с - значение в той же таблице, но из строки в которой a Date меньше, допустим, на 30 минут?
  • @Skoredin #131761 09:08 AM, 12 Dec 2019
    Joined.
  • @lavirozp #131762 09:09 AM, 12 Dec 2019
    Народ, подскажите нубу, начинающему познавать clickhouse.

    Делаю поиск по координатам (geospatial)

    Структура таблицы:

    CREATE TABLE log (
    uuid UUID,
    timestamp DateTime,
    longitude Float64,
    latitude Float64
    )
    ENGINE = MergeTree
    PARTITION BY toYYYYMM(timestamp)
    ORDER BY (longitude, latitude)

    Запрос:

    SELECT *
    FROM log
    WHERE (longitude >= $minLon) AND (longitude <= $maxLon) AND (latitude >= $minLat) AND (latitude <= $maxLat)
    AND (greatCircleDistance(longitude, latitude, 35.18694, 47.7442) <= $radius)
    ORDER BY timestamp ASC
    LIMIT 10

    Сначала тормозило если использовать в WHERE только greatCircleDistance, потом догадался, что нужно сделать индекс на longitude, latitude и в WHERE допольнительно по этим полям фильтровать.

    Вопросы:
    1) Возможно есть какой то более родной способ оптимизировать скорость greatCircleDistance, так что бы не фильтровать по полям longitude, latitude, или и так норм?
    2) Мне так же иногда нужно делать выборки по uuid и там получется полный скан и тормозит.

    SELECT COUNT(*) FROM log WHERE uuid='4c7210c1-45fa-4eac-aef5-7bf1c180bd07'

    Направьте пожалуйста, как такое можно оптимизировать?
    Возможно для этого как то подойдут "Индексы пропуска данных"?
    В документации как то не подробно описано, пока не разобрался толком в них.
  • @YaroslavMakarov #131763 09:10 AM, 12 Dec 2019
    Всем привет!
    Столкнулись со следующей ошибкой после обновления на 19.17.4.11:
    Code: 171, e.displayText() = DB::Exception: Cannot convert column log_type because it is non constant in source stream but must be constant in result (version 19.17.4.11 (official build))

    SELECT делаем в VIEW, в которой log_type - это поле (задано как 'somestr' AS log_type). В SELECT тоже просто как одно из полей указываем
  • https://t.me/clickhouse_ru
    @randomdance #131764 09:15 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @randomdance #131765 09:21 AM, 12 Dec 2019
    Коллеги, привет. Хотелось бы избежать join при запросе. Пока проблемы нет. Еще Проектируем структуру.
    Есть большой лог с инфой об активности пользователей, часть данных будет заноситься сразу в clickhouse, а другая часть (там длительная обработка до суток) должна потом дополнить тот же лог. Пока в голове две отдельные таблицы с оперативной и неоперативной инфой, а затем join при select, но хотелось бы этого избежать.
  • https://t.me/clickhouse_ru
    @rclick #131766 09:23 AM, 12 Dec 2019
    может быть можно использовать словари? или сущностей прям оч много?
  • https://t.me/clickhouse_ru
    @arnaki ↶ Reply to #131765 #131767 09:25 AM, 12 Dec 2019
    может скажу глупость, но можете попробовать создать одну таблицу в которую будете записывать записи а потом обновлять (дополнять) их когда остальная часть информации будет приходить. тогда можно будет избежать джоина
  • https://t.me/clickhouse_ru
    Не много
  • https://t.me/clickhouse_ru
    @rclick #131770 09:27 AM, 12 Dec 2019
    ну или да, как вариант - одна таблица для уже готовых строк (к которым приехали все данные), вторая - временный буфер на период ожидания, туда пишем не полные данные и дропаем партиции по мере подвоза досчитанной статистики и переноса данных в постоянное хранилище
  • https://t.me/clickhouse_ru
    @rclick #131771 09:27 AM, 12 Dec 2019
    если укладывается в механику словарей, то совсем отлично, они крутые
  • https://t.me/clickhouse_ru
    при записи добавить еще поле geohash, и по нему делать фильтрацию предварительную :)
  • https://t.me/clickhouse_ru
    @vtune_amplifier #131773 09:27 AM, 12 Dec 2019
    redis вроде похожий подход использует
  • ну это наверно получится шило на мыло 🙂
  • https://t.me/clickhouse_ru
    Читать нужно сразу все, там где пока нет данных - не страшно
  • @lavirozp #131776 09:29 AM, 12 Dec 2019
    а как искать по столбцу, который не учавствует в primary key, как uuid например в моей ситуации?
    Или это не решаемая задачи и об этом можно забыть?
  • https://t.me/clickhouse_ru
    @rclick #131777 09:31 AM, 12 Dec 2019
    чтобы читать все - наверно можно сделать union all или таблицу с движком мердж https://clickhouse.yandex/docs/ru/operations/table_engines/merge/
  • https://t.me/clickhouse_ru
    а какие у вас объемы, и что для вас «тормозит»?
  • сейчас 1 миллиард тестовых данных, отрабатывает примерно за 10 сек.
    Планируются данных около триллиона
  • https://t.me/clickhouse_ru
    @Sablast #131780 09:38 AM, 12 Dec 2019
    я сейчас выполнил запрос как у вас на 2млрд записей - 1.5 секунды
  • https://t.me/clickhouse_ru
    @Sablast #131781 09:38 AM, 12 Dec 2019
    который с условиями на координаты
  • у вас заметно лучше
  • https://t.me/clickhouse_ru
    @Sablast #131783 09:39 AM, 12 Dec 2019
    а ну у вас получается еще и таблица не распределнная судая по коду
  • с условиями по координатам у меня тоже быстро, тут проблем нет.
    Тормозит такое, так как полный фуллскан:
    SELECT COUNT(*) FROM log WHERE uuid='4c7210c1-45fa-4eac-aef5-7bf1c180bd07'
  • https://t.me/clickhouse_ru
    count() по пользователю - 1сек
  • https://t.me/clickhouse_ru
    @Sablast #131786 09:41 AM, 12 Dec 2019
    у меня только пользователи интовые
  • @lavirozp #131787 09:42 AM, 12 Dec 2019
    а если триллион будет, время не увеличиться пропорционально до 1000 сек?
  • @lavirozp #131788 09:43 AM, 12 Dec 2019
    я предпологал что можно какие то вторичные индексы сделать, но судя по всему этот подход тут отсутствует
  • h3 может помочь
  • https://t.me/clickhouse_ru
    Так и получится, если поле учавствет в сортировке
  • https://t.me/clickhouse_ru
    у меня данные шардируются по пользователю, так как шарда 3шт, то видимо самый пессимистичный сценарий - это 333 секунды)
    а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?
  • https://t.me/clickhouse_ru
    @gagarkin #131793 09:47 AM, 12 Dec 2019
    Joined.
  • @YaroslavMakarov #131794 09:49 AM, 12 Dec 2019
    Немного сузил проблему по Cannot convert column log_type because it is non constant in source stream but must be constant in result.

    Не получается сделать SELECT-ы с указанием констант только для движка Merge.

    SELECT
    time_local,
    response_code,
    'a' AS log_type
    FROM test_merge
    LIMIT 1

    Received exception from server (version 19.17.4):
    Code: 171. DB::Exception: Received from DB::Exception: Cannot convert column log_type because it is non constant in source stream but must be constant in result.

    SELECT
    time_local,
    response_code,
    'a' AS log_type
    FROM test_distributed_v1
    LIMIT 1

    ┌──────────time_local─┬─response_code─┬─log_type─┐
    │ 2019-10-31 07:00:05 │ 200 │ a │
    └─────────────────────┴───────────────┴──────────┘

    Merge таблица создана как:
    CREATE TABLE default.test_merge ON CLUSTER logs AS default.test_distributed_v1
    ENGINE = Merge(default, '^test_distributed_v');

    Похоже на баг? Или я что-то не так делаю.....
  • > а запросы к базе по id пользователя будут стандартные? если да, то может имеет смысл посмотреть в сторону MatView?

    да, периодически нужно делать такие запросы.

    А MaterializedView решает эту проблему?
    Я думал это что то типа сохраненного запроса, как в mysql view
  • https://t.me/clickhouse_ru
    MatView материализует данные при инсертах, это обычный view просто сохраняет запрос, а матвью физических их запишет в таблицу в нужном вам виде
  • @lavirozp #131797 09:56 AM, 12 Dec 2019
    ок, буду читать разбираться, пока не понял 🙂
    Спасибо
  • Спасибо
  • https://t.me/clickhouse_ru
    @Deparus #131799 10:06 AM, 12 Dec 2019
    тип атрибута LowCardinality(String) для hashed словаря можно указывать? если да - имеет ли смысл?
  • https://t.me/clickhouse_ru
    @Felixoid #131800 10:17 AM, 12 Dec 2019
    Доброго утра. Я наткнулся на проблему, что date_time_input_format = 'best_effort' почему-то не помогает распарсить валидный iso8601 2019-12-12T10:32:32+01:00. Кто-то решал подобную проблему?
    SELECT toDateTime('2019-12-12T10:32:32+01:00')
    Code: 6. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse string '2019-12-12T10:32:32+01:00' as DateTime: syntax error at position 19 (parsed just '2019-12-12T10:32:32').
    если убрать +01:00, то работает
  • @kissex #131801 10:19 AM, 12 Dec 2019
    Скажите а ZooKeeper в ClickHouse используется исключительно для репликации данных?
    Сегодня во время того как отвалился ZooKeeper пытались выполнить:
    DROP TABLE IF EXISTS tmp.table ON CLUSTER cluster_name
    На что получали ошибку:
    Coordination::Exception. Coordination::Exception: All connection tries failed while connecting to ZooKeeper. Addresses: 127.127.127.127:2181, 127.127.127.127:2181
    Версия Clickhouse: 19.15.3.6
  • https://t.me/clickhouse_ru
    Если таблица реплицируемая, то для операций с нею нужны ЗК
  • @kissex #131803 10:21 AM, 12 Dec 2019
    Нет, таблица создаётся так:
    CREATE TABLE tmp.table ON CLUSTER cluster_name (
    `date` Date,
    `id` UInt64,
    `some_data_one` String,
    `some_data_two` UInt64
    ) ENGINE = Log
  • https://t.me/clickhouse_ru
    Попробовал и он не ругнулся) попробовал по ошибке. Теперь интересно, что же там произошло и к чему привело
  • https://t.me/clickhouse_ru
    @mikevr ↶ Reply to #131801 #131805 10:22 AM, 12 Dec 2019
    ты делаешь on cluster а это редестрибьютед запрос
  • https://t.me/clickhouse_ru
    @Felixoid #131806 10:22 AM, 12 Dec 2019
    а, так ведь on cluster. Это создаёт таску в ZK
  • @kissex #131807 10:22 AM, 12 Dec 2019
    О, не знал, спасибо за ответ.
  • https://t.me/clickhouse_ru
    ок, нашёл ответ. toDateTime использует не тот же самый парсер, что и при вставке. Если сделать, как в тестах, то работает

    CREATE TEMPORARY TABLE test (d DateTime) ENGINE = Memory;
    SET date_time_input_format = 'best_effort';
    INSERT INTO test VALUES ('2018-06-08T01:02:03+01:00');
    SELECT toTimeZone(d, 'UTC') FROM test;
  • https://t.me/clickhouse_ru
    они не должны быть дешевле, они должны не быть ДОРОЖЕ в РАЗЫ, как сейчас
  • https://t.me/clickhouse_ru
    ON CLUSTER - значит сам запрос будет положен в ZK и при репликации запустится на репликах
  • https://t.me/clickhouse_ru
    @485035370 #131811 11:52 AM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @485035370 #131812 11:54 AM, 12 Dec 2019
    Добрый день! Есть ли в clickhouse возможность написания пользовательских функций либо процедур? Если да, то буду благодарен за ссылки на примеры написания их
  • https://t.me/clickhouse_ru
    UDF нет
    но такого кол-ва функций и модификаторов какое есть в CH я не видел ни в одной другой БД
    можно слать Pull Requests на "свои функции" если C++ знаете
  • https://t.me/clickhouse_ru
    Спасибо Вам за ответ. К сожалению, С++ не владею.
  • https://t.me/clickhouse_ru
    тогда советую читать доку
    https://clickhouse.yandex/docs/en/query_language/functions/
    https://clickhouse.yandex/docs/en/query_language/agg_functions/
    https://clickhouse.yandex/docs/en/query_language/agg_functions/combinators/

    тут очень много вкусного
  • https://t.me/clickhouse_ru
    Ок. Спасибо
  • https://t.me/clickhouse_ru
    select parseDateTimeBestEffortOrZero('2014-09-21T09:44:28+0400')
    2014-09-21 05:44:28
  • https://t.me/clickhouse_ru
    Так теряется инфа о таймзоне
  • https://t.me/clickhouse_ru
    то есть, toDateTime намеренно не использует эту опцию. Спасибо за пояснение
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131820 01:02 PM, 12 Dec 2019
    У меня всё так же ReplicatedMergeTree
    Ругается так
    DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts.

    Сейчас вообще ничего не пишется в базу, но она всё равно ругается.
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131821 01:04 PM, 12 Dec 2019
    большая нагрузка на CPU
  • https://t.me/clickhouse_ru
    @lexwings #131822 01:05 PM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    А что в таблице system.merges?
  • https://t.me/clickhouse_ru
    на одной из машин много записей, на других не
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #131825 01:24 PM, 12 Dec 2019
    internal_replication в true поставить может быть?
  • https://t.me/clickhouse_ru
    @forward32 #131826 01:31 PM, 12 Dec 2019
    Можете поискать поиском по чату свою ошибку.
    Почти наверняка вы сделали кучу частых вставок, у вас куча партов, которые не успевают мержится. Поэтому too many parts и CPU нагруженный.
  • https://t.me/clickhouse_ru
    @kudryavtsev #131827 01:37 PM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @kudryavtsev #131828 01:38 PM, 12 Dec 2019
    подскажите плиз clickhouse-copier я запускаю вот такой строкой
    clickhouse-copier --config-file=zookeeper.xml --task-path=/copier/task1

    внутри файла конфига копира я указал 10 воркеров, это означает я пять раз должен вызвать яндекс копир ? или он сам поспаунет внутри себя 10 воркеров ....
    работает очень медленно гдето 1 гигабайт в 10 минут, это нормально ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #131829 01:40 PM, 12 Dec 2019
    а если мне надо перелить 20ТБ ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #131830 01:42 PM, 12 Dec 2019
    + дополнительно
    кто как бэкапит кликхаус ?
  • @sonsergey #131831 02:10 PM, 12 Dec 2019
    Добрый день! Подскажите пожалуйста, есть задача вывести в таблицу дни которые попадают в диапазон дат из исходной таблицы, при этом должны удовлетворять условиям диапазонов из фильтра
  • @sonsergey #131832 02:11 PM, 12 Dec 2019
    Мое решение выглядит не очень, может есть более компактные
  • @sonsergey #131833 02:11 PM, 12 Dec 2019
    DROP TABLE IF EXISTS TestTable;
    CREATE TABLE TestTable
    (
    dtStart DateTime,
    dtEnd DateTime
    ) ENGINE Memory();

    INSERT INTO
    TestTable
    VALUES
    ('2019-11-01 07:40:48', '2019-11-12 08:40:48');

    SELECT *
    FROM
    TestTable;

    SELECT
    dtStart,
    dtEnd,
    arrayJoin(
    arrayFilter(
    x -> x BETWEEN dtStart AND dtEnd,
    arrayConcat(
    arrayMap(
    x -> toDate('2019-11-01') + x,
    range(toUInt32(toDate('2019-11-05') - toDate('2019-11-01')))
    ),
    arrayMap(
    x -> toDate('2019-11-10') + x,
    range(toUInt32(toDate('2019-11-15') - toDate('2019-11-10')))
    )
    )
    )
    )
    FROM
    TestTable;
  • https://t.me/clickhouse_ru
    для чего это? есть ощущение что это легко решается ext.dictionary
  • https://t.me/clickhouse_ru
    freeze rsnapshot
  • Нужно посчитать пересечения интервала в строке таблицы и в фильтре отчёта в разрезе дней. А как это решается с ext.dictionary, можно пример или ссылку на доку?
  • https://t.me/clickhouse_ru
    @opotemkin #131837 02:35 PM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    internal_replication -- зависит от способа репликации.
    Если у вас replicated таблицы (репликация через зукипер), internal_replication обязательно должен быть = true.

    Если у вас "дешевая" репликаця, и репликацию делает distributed таблица то internal_replication обязательно должен быть = false

    При internal_replication = false , при записи в distributed таблицу, distributed таблица вставляет во все реплики, таким образом достигается подобие репликации, без гарантий целостности.

    При internal_replication = true , при записи в distributed таблицу, distributed таблица вставляет в одну из реплик, реплика так как у нее движок репликейтид, реплицирует уже сама (internal_replication).
  • https://t.me/clickhouse_ru
    Ок, я думал я и синхронную репликацию вкручу и фоновую и будет вообще отлично. Сейчас поменяли на true.
  • https://t.me/clickhouse_ru
    TestTable для чего? там для лежат какие-то признаки для диапазонов?
  • https://t.me/clickhouse_ru
    что? Вы прочитали что я написал?
    Зукипер есть? как вставляете ? в дистрибьютид?
  • @i_solyakin #131842 02:40 PM, 12 Dec 2019
    Подскажите, пожалуйста, может быть кто-нибудь сталкивался с проблемой записи при использовании связки питон + clickhouse_driver. При чтении данных проблем нет. При попытке записи даже одной строки выдает ошибку

    File "clickhouse_driver/bufferedreader.pyx", line 193, in clickhouse_driver.bufferedreader.BufferedSocketReader.read_into_buffer
    socket.timeout: timed out
  • https://t.me/clickhouse_ru
    Всё есть, все норм. Вставляю в дистрибуетд, фолз поменяли на тру.
  • https://t.me/clickhouse_ru
    Теоритически можно написать UDF даже на баше и сделать ее executable словарем
  • Пример из жизни. Есть таблица заказов у которой есть колонка даты начала доставки и дата окончания доставки ( интервал ожидания доставки ) есть менеджер который хочет видеть сколько за каждый день есть ожидающих заказов, при этом имеет возможность выбрать несколько не пересекающихся интервалов типа текущий месяц и 2 месяца назад. Запрос формирует таблицу в которой в каждой строке есть идентификатор заказа и день если он был в интервале ожидания
  • https://t.me/clickhouse_ru
    Интересно
  • https://t.me/clickhouse_ru
    я понял, нужны типа дни, ясно. Это проще на клиенте нагенерить. у range есть ограничение на 100млн в блоке, я наступал
  • в него не упираемся интервал в 100М дней выбрать не получится
  • https://t.me/clickhouse_ru
    сделать вторую таблицу отсортированную по uuid (да положить все данные еще раз) (можно с помощью MV)

    посмотрите на geoToH3 , уберовские шестиугольники h3 (для первой части)
  • https://t.me/clickhouse_ru
    можно джойн (наверное asof джойн хорошо подходит), можно групбай, что делать если значений таких много?
  • Всм строчек или то, что что я обозвал c?
  • https://t.me/clickhouse_ru
    если строк которые на 30мин меньше больше чем одна?
  • @slo_Oth #131853 03:10 PM, 12 Dec 2019
    limit 1. Меня устроит))) то, что подобное джоином делается-понятно. У меня просто в голове немного не укладывается как условие ON задать...
  • https://t.me/clickhouse_ru
    я понял, тут в любом случае декартово произведение получается, не решить эту задачу в КХ, не хватит памяти
  • https://t.me/clickhouse_ru
    а что, сильно тормозит? сколько данных
    может MergeTree вместо Log?
    можете также попробовать что-то типа колонок с UTM зонами или Slippy Maps (tiles) сделать и по ним дополнительно фильтровать
    greatCircleDistance кстати недавно в 3 раза ускорили, правда вроде бы еще не в релизе (в changeloge нет) но в мастере https://github.com/ClickHouse/ClickHouse/pull/7307
    Speed up greatCircleDistance function with test by stavrolia · Pull Request #7307 · ClickHouse/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en For changelog. Remove if this is non-significant change. Speedup greatCircleDistance function with the code...

  • @919441052 #131856 04:14 PM, 12 Dec 2019
    select * from Table
    where EventTime > Now() - 1 hour

    как сравнить ?
  • Так вроде MergeTree и используется.
    На самом деле первый вопрос не тормозит, я решил индексами это.
    Тут скорее интересно какие best practice, если нужны к этим же данным запросы по другим полям оптимизировать, например вот поиск по uuid.

    Вот предложили делать вторую такую же таблицу с другими индексами. Но это же получиться данные в 2 раза увеличатся, не очень вариант, если данных сотни терабайт.
  • https://t.me/clickhouse_ru
    now() - interval 1 hour
  • Вторая таблица это вариант, но у меня сейчас 200 терабайт данных и че то как то не охота из них делать 400 терабайт :)
  • https://t.me/clickhouse_ru
    у вас 200ТБ из трех полей? Вам вторую таблицу можно сделать узкую, просто uuid и поля указатели на первичный ключ первой

    ну и конечно КХ это не про точечный поиск по uuid.
  • https://t.me/clickhouse_ru
    @241186216 #131861 04:26 PM, 12 Dec 2019
    А у вас там вроде нет условия на партиции или есть ?
  • https://t.me/clickhouse_ru
    @orantius #131862 04:29 PM, 12 Dec 2019
    первое можно ускорить подходящим геохешом, если что-то известно про радиусы, второй запрос по той же таблице нормально работать не будет.
  • Там полей штук 30.
    Gzip архив данных весит примерно 200T.
    Я надеюсь что в кликхаусе будет весить меньше :)
    Пока пристреливаюсь, думаю на чем пилить это все.
  • https://t.me/clickhouse_ru
    КХ быстро делает group by. Если аналитических запросов не будет, тогда КХ тут вообще не к месту, и тогда кассандра.
  • @776674244 #131865 05:53 PM, 12 Dec 2019
    Joined.
  • @vasya_p0pkin #131866 06:26 PM, 12 Dec 2019
    Немного оффтопа, в чате читаю про десятки субд, но ни разу не написал никто про sql server. Его не используют потому что дорого или есть другие объективные причины?
  • https://t.me/clickhouse_ru
    Какой именно sql сервер? А то mysql - тоже sql server так-то.
  • https://t.me/clickhouse_ru
    @den_crane #131868 06:33 PM, 12 Dec 2019
    про db2 и informix тоже никто не пишет 🙁
  • https://t.me/clickhouse_ru
    @den_crane #131869 06:34 PM, 12 Dec 2019
    и adabas, тоже !!!
  • https://t.me/clickhouse_ru
    оно же ms -- на линукс не станет а винда это уже тень линукса
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    это для галочки сделано и дата 11/04/2019
  • Microsoft SQL Server by Microsoft | Docker Hub

    Official images for Microsoft SQL Server on Linux for Docker Engine.

  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131874 06:41 PM, 12 Dec 2019
    кто не знает 11/04/2019 - это ноябрь а не апрель 2019
  • https://t.me/clickhouse_ru
    не от большого ума в докеры крутить
  • @aopetrov86 #131876 06:42 PM, 12 Dec 2019
    И раз в квартал CU для прикрытия ага
  • Чё-то я настолько туп видимо, что меня аж устраивает.
  • https://t.me/clickhouse_ru
    Есть mssql на linux. И в докере тоже есть. С мостом разобрались ?
  • https://t.me/clickhouse_ru
    да с мостом разобрались но мой мост вроде как ронят мой посгрес -- но не потверждено
  • https://t.me/clickhouse_ru
    если знаешь все подводные камни -- то респект а не профи в докерах делать не чего. особенно субд на докерах
  • https://t.me/clickhouse_ru
    успокойтесь уже, освойте докер, даже у УМПУТУНА монга в докере на проде.
  • @SWx5YQ #131882 07:19 PM, 12 Dec 2019
    костя душный дед 🙂
  • https://t.me/clickhouse_ru
    кто он такой. я работал в топ1 банке одном -- знаю как там -- там даже faq написали админы OpenShift что базу держать отдельно от докеров
  • https://t.me/clickhouse_ru
    @bralbral #131884 07:24 PM, 12 Dec 2019
    😁
  • https://t.me/clickhouse_ru
    IT-шник не знает Умпутуна? Может и бобука не знаешь? и доброго Лешу?
  • @vstakhov #131886 07:25 PM, 12 Dec 2019
    я тоже не знаю
  • https://t.me/clickhouse_ru
    не знаю но гугл сказал что блоха - http://lurkmore.to/%D0%A3%D0%BC%D0%BF%D1%83%D1%82%D1%83%D0%BD
    Умпутун

    Умпутун (евр. קהעקמקט, он же Umputun и Евгений Самуилович Борт, он же Человек и микрофон, как сам признался в «Радио-Т № 137») — второй отец российского подкастинга, жыдопоцкастер, колбасный эмигрант, уезжант из России в Израиль, уезжант из Израиля в Пиндостан, пишущий невыдуманные рассказы из своей жизни, различные рассуждения и наблюдения, немного компьютерных разговоров, которые, впрочем, зачастую сводятся к дифирамбам эпплу и гуглу, совсем чуть-чуть политики и порой немного юмора. Живёт в Напервиле, пригороде Чикаго. Является ЕРЖ и не стесняется этого. Родился 16 ноября 1969 года, женат, есть сын и дочь.

  • https://t.me/clickhouse_ru
    @den_crane #131888 07:27 PM, 12 Dec 2019
    Короче, я лет 7 слушаю https://radio-t.com/
    не представляю что кто-то может не знать Умпутуна. Моя бабушка знает что у Умпутуна монга.
  • https://t.me/clickhouse_ru
    спасибо что просвятил но в россии это никто он - даже вики о нем не знает
  • https://t.me/clickhouse_ru
    Кто все эти люди?)
  • https://t.me/clickhouse_ru
    @strangeqargo #131891 07:32 PM, 12 Dec 2019
    Вы мне лучше скажите, ни у кого не было после недавних апгрейдов частых падений по памяти?
  • https://t.me/clickhouse_ru
    @strangeqargo #131892 07:33 PM, 12 Dec 2019
    На запросах без сэмплинга
  • https://t.me/clickhouse_ru
    Субкультуры субкультуры а я маленький такой.

    Скоро будут думать, что инет путин придумал
  • https://t.me/clickhouse_ru
    логи хоть покажи ошибки - а то без предметно
  • https://t.me/clickhouse_ru
    Падение
    По нехватке
    Памяти

    Я не спрашивал, люди помогите падает хз что, я спросил, ругается ли у кого-нибудь на память
  • https://t.me/clickhouse_ru
    ответ - нет но если сомнение - нужно иметь 2 стенда со старым ПО и новым
  • https://t.me/clickhouse_ru
    @linux_admin_darudar4 #131897 07:41 PM, 12 Dec 2019
    или уметь откатываться
  • https://t.me/clickhouse_ru
    сегодня видел такое сообщение https://github.com/ClickHouse/ClickHouse/issues/8039
    но вообще никаких известных leak сейчас нету
  • https://t.me/clickhouse_ru
    Вот есть подозрение, что не leak, а, скорее деградация. После апдейта тяжёлые запросы без сэмплинга валятся просто влёт. Будем разбираться
  • Microsoft
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    нужно настраивать конфиги -- у меня кх на 6 гиг озу летает
  • У меня почему-то счётчик MemoryTrackingInBackgroundSchedulePool уже третью неделю ползёт вверх.
  • https://t.me/clickhouse_ru
    Ого. А серверов сколько?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    виртуалка слабая одна -- там 100к записей в таблицах -- суть не в этом нужно настраивать и я настроил
  • Версия то какая?
  • https://t.me/clickhouse_ru
    Рад за тебя, если подскажешь, что делать когда distributed валится на горке серваков с типа 64gb (условно) с меня пиво
  • @aopetrov86 #131909 07:53 PM, 12 Dec 2019
    Кстати если верить надписи Total amount of memory (bytes) allocated in background schedule pool (that is dedicated for bookkeeping tasks of Replicated tables). это вообще начинает смахивать на помешательство ибо на этом сервере реплицируемых таблиц не замечено.
  • https://t.me/clickhouse_ru
    я рецепт дал -- config.xml и user.xml правь - сделай сжатые ResultSet и с memory уреж -- под 48гиг буфер и вуа ля
  • https://t.me/clickhouse_ru
    Это не про наш случай
  • https://t.me/clickhouse_ru
    валится с OOM?
    валится инициатор или шарды тоже?
    что в запросе? group by ? JOIN ? order by ? Low Cardinality ?
  • https://t.me/clickhouse_ru
    Не оом
    Group by есть
    Order by нет

    Подозревали джойны, подзапросы

    Исключили подзапросы и джойны.

    Завтра дам больше данных
  • https://t.me/clickhouse_ru
    @strangeqargo #131914 08:00 PM, 12 Dec 2019
    Но падения начались сразу после апгрейда
  • https://t.me/clickhouse_ru
    1) стейдж есть 2) веская причина была 3) наверное надо держать стейдж со всеми возможными edge case, спасибо за интересное мнение
  • https://t.me/clickhouse_ru
    19.5.2
  • @aopetrov86 #131920 08:12 PM, 12 Dec 2019
    Оу. Это с какой вы обновились.
  • https://t.me/clickhouse_ru
    наврал. прошу прощения, 19.17.4
  • https://t.me/clickhouse_ru
    тебе там нигде не жмет? я пришел спросить есть ли у кого что-нибудь про падения кх после недавних апдейтов, ты рассказал всю философию своего стартапа, может не надо больше так делать?
  • https://t.me/clickhouse_ru
    @kizimenko #131924 08:17 PM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @strangeqargo #131925 08:17 PM, 12 Dec 2019
    можем в другом чате встретиться, я с радостью выслушаю твои советы
  • https://t.me/clickhouse_ru
    @strangeqargo #131926 08:17 PM, 12 Dec 2019
    но не здесь
  • https://t.me/clickhouse_ru
    Вы просто не в курсе, не пишите за всех
  • https://t.me/clickhouse_ru
    @Igess #131928 08:20 PM, 12 Dec 2019
    Давайте, может, лучше по делу тут, а то ощущение, что сижу как на Пикабу :(
  • https://t.me/clickhouse_ru
    (если что, еще раз, случайно наврал, не на тот сервер посмотрел, не 19.5, а 19.17.4)
  • https://t.me/clickhouse_ru
  • @aopetrov86 #131931 08:23 PM, 12 Dec 2019
    Я понял, ага. У меня 19.15. А запросы валятся по памяти это как? Стали потреблять больше памяти чем до обновления и теперь не пролезают в лимит?
  • https://t.me/clickhouse_ru
    вот кажется да. в духе "хотел взять 4 гига, но запросил 4.5) - я с телефона поэтому точных сообщений об ошибках не могу дать
  • https://t.me/clickhouse_ru
    @strangeqargo #131933 08:26 PM, 12 Dec 2019
    (я с телефона потомучто кх отобрал сервера, потом домашний комп, потом ноут, потом планшет, скоро придется писать с холодильника)
  • https://t.me/clickhouse_ru
    "запросы, которые спокойно пролетали, теперь валятся по памяти."
  • @milovidov_an #131935 08:54 PM, 12 Dec 2019
    Скорее всего, запросы не стали потреблять больше памяти, но для некоторых запросов подсчёт потребления памяти стал более точным, тогда как раньше учитывал не всё.
  • https://t.me/clickhouse_ru
    @uMagistr #131936 09:04 PM, 12 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @uMagistr #131937 09:05 PM, 12 Dec 2019
    быстрый гуглинг не помог, а есть ли лимит на кол-во таблиц в кх ? как он перенесет создание пары тысяч таблиц каждый день ?
  • @milovidov_an #131938 09:07 PM, 12 Dec 2019
    Лимита нет, после ~10 000 ReplicatedMergeTree или ~100 000 обычных MergeTree или после ~1 000 000 Log/TinyLog/StripeLog будут проблемы.

    Пара тысяч таблиц в день - не проблема.

    Зачастую наличие большого количества маленьких таблиц необосновано и лучше мало больших.
  • https://t.me/clickhouse_ru
    @uMagistr #131939 09:07 PM, 12 Dec 2019
    спасибо
  • Что-то типа этого? https://github.com/ClickHouse/ClickHouse/pull/7552
    [RFC] Do not account memory for Buffer engine in max_memory_usage limit by azat · Pull Request #7552 · ClickHouse/ClickHouse

    Thoughts? Category (leave one): Bug Fix Short description (up to few sentences): Do not account memory for Buffer engine in max_memory_usage limit Detailed description (optional): Since backgroun...

  • @milovidov_an #131941 09:12 PM, 12 Dec 2019
    Нет, я имел ввиду это: https://github.com/ClickHouse/ClickHouse/pull/5981
    Count new/delete memory in MemoryTracker by 4ertus2 · Pull Request #5981 · ClickHouse/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en Category (leave one): New Feature Short description (up to few sentences): Count memory allocated in new/...

  • https://t.me/clickhouse_ru
    Я
  • 13 December 2019 (327 messages)
  • https://t.me/clickhouse_ru
    @kizimenko #131943 05:46 AM, 13 Dec 2019
    Кто нибудь грузил данные из гугл аналитикс в кликхаус Без использования сторонних сервисов типа owox ?
  • https://t.me/clickhouse_ru
    @mukhametov_v #131944 06:46 AM, 13 Dec 2019
    Есть таблица, которая содержит столбцы: date, phone
    Как сделать запрос, который покажет count(), где phone в таблице встречается лишь один раз?
  • https://t.me/clickhouse_ru
    Eugene Zakharchenko, [13.12.19 08:48]
    select count(*) from (select phone, count(*) from table group by phone having count(*) = 1)
  • https://t.me/clickhouse_ru
    Подскажите, пожалуйста, как всё-таки выбирать последнюю стабильную версию КХ в докере (для обновления старой). Не пойму - если зайти на докерхаб то последняя это же 19.17.5.18? Или жмакаем в latest, смотрим что там написано 19.17.2.* и берём в итоге 19.17.2.4 из последних апдейтов? ) Прямо вот новье не нужно - нужно чтобы десяток тачек не раскорячило)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Felixoid #131949 07:51 AM, 13 Dec 2019
    Доброе утро. Эта статья будет полезна всем, кто использует ClickHouse как хранилище для метрик графита
    https://habr.com/ru/post/479564/
    ClickHouse + Graphite: как значительно уменьшить потребляемое место на дисках

    Приветствую, habr. Если кто-то эксплуатирует систему graphite-web и столкнулся с проблемой производительности хранилища whisper (IO, потребляемое дисковое прост...

  • https://t.me/clickhouse_ru
    😃👍
  • https://t.me/clickhouse_ru
    @blinkovivan #131951 08:16 AM, 13 Dec 2019
    Open source — наше всё. Заявление директора по распространению технологий Яндекса Григория Бакунова, которое отражает позицию всей компании – https://yandex.ru/blog/company/open-source-nashe-vse

    События последних дней заставляют нас заявить свою позицию по новостям вокруг проекта Nginx. Мы в Яндексе считаем, что современный интернет невозможен без культуры open source и людей, которые инвестируют своё время в разработку программ с открытым кодом.
  • https://t.me/clickhouse_ru
    @BloodJazMan #131953 08:22 AM, 13 Dec 2019
    ну если YDB выложат в OpenSource то я поверю что позиция обоснована, все исходники не надо, но вот wal-e, odyssey, tank, allure
    яндекс много чего выкладывает
  • https://t.me/clickhouse_ru
    @Felixoid #131955 08:25 AM, 13 Dec 2019
    juggler и monrun!!!
  • @vstakhov #131956 08:28 AM, 13 Dec 2019
    эта позиция работает ровно до тех пор, пока сильно не захочется денег
  • https://t.me/clickhouse_ru
    +1 и гугл тоже не все
  • @vstakhov #131958 08:28 AM, 13 Dec 2019
    Алексею Яндекс предоставил письменно права на код?
  • @MentalSky #131959 08:29 AM, 13 Dec 2019
    всем доброго дня!
    коллеги, взываю к вашему опыту, какая архитектура кластера CH подошла бы под такое:

    есть несколько гео-зон, сильно разнесенных географически, оттуда собираются данные, и логично сборщики держать к источникам поближе, ну а дальше получается и ноды CH (или отдельные базы) тоже держать поближе

    есть ли смысл делать шарды по геозонам, насколько понимаю - писаться будет быстро, а вот чтение - уже нет, как можно поступить? делать MV на ближнюю к себе ноду? так будет жить, если каналы такие "длинные"

    вопрос в чем получается: или база одна и это шарды по геозонам
    или баз куча - а дальше если надо ETL и иже с ним,
    или кластер и все такое с репликами и прочими штуками
  • @vstakhov #131960 08:29 AM, 13 Dec 2019
    я бы как минимум настаивал на отдельном пункте в трудовом договоре (как это есть у меня сейчас с работодателем)
  • https://t.me/clickhouse_ru
    Пардон, но Вы путаете яишницу и кое что иное. CH был создан в рамках Метрики.
  • @SWx5YQ ↶ Reply to #131959 #131962 08:31 AM, 13 Dec 2019
    в рамках шарда один сервер ближе к пользователю, другой во второй геозоне
    писать в тот, который ближе
    читать с того, который ближе
  • и что же я путаю?
  • то есть шард один и тот же, но - две реплики, одна ближе к сборщику, а вторая - к потребителю, так?
  • @SWx5YQ ↶ Reply to #131964 #131965 08:32 AM, 13 Dec 2019
    да, я бы сделал так
  • а оно так через интернеты нормально будет реплицироваться?
  • @MentalSky #131968 08:33 AM, 13 Dec 2019
    трафик сжимается при реплицировании?
  • https://t.me/clickhouse_ru
    То, что "была дискуссия, открывать ли исключительно внутренний проект, созданный в процессе исполнения рабочих обязанностей, в opensourсe или нет" против "в рабочее время начал собственный проект", как минимум
  • https://t.me/clickhouse_ru
    И это как раз касается "работает, пока..."
  • https://t.me/clickhouse_ru
    передаются куски партиций, то есть, минимально возможный трафик
  • и что в этом принципиально другого?
  • https://t.me/clickhouse_ru
    спасибо, я удаляюсь из этой дискуссии
  • @vstakhov #131974 08:36 AM, 13 Dec 2019
    впрочем, давайте не будем сильно оффтопить, это все же технический канал
  • @vstakhov #131975 08:36 AM, 13 Dec 2019
    да
  • спасибо большое )
  • большое спасибо )
  • @MentalSky #131978 08:40 AM, 13 Dec 2019
    коллеги, а вот получаются реплики разнесенные, нужно 3 зукипера минимум, и их надо в один ДЦ помещать, верно?
  • https://t.me/clickhouse_ru
    нет, лучше в 3 независимых. ZK - точка отказа
  • https://t.me/clickhouse_ru
    zookeeper же довольно чувствителен к пингу
  • https://t.me/clickhouse_ru
    @michailmarketplace #131981 08:45 AM, 13 Dec 2019
    а как по опыту, какие машинки лучше использовать под ZK? достаточно ли впски с одним ядром и 4 гигами памяти или надо что то посерьезнее, если предположить, что вставок не так много, в основном все же чтение
  • https://t.me/clickhouse_ru
    и всё же, является точкой отказа всего кластера
  • а как же требование - 10G между нодами ZK?
  • https://t.me/clickhouse_ru
    сомневаюсь, такой throughput ни к чему. А вот латенси - да, он должен быть, по возможности, снижен.

    Но Вы должны понять компромис. Либо кластер имеет бОльшую отказоустойчивость за счёт разнесённости, либо при уходе одной из геолокаций Вы согласны терять возможность записи глобально на всём кластере
  • исчерпывающе, спасибо!
  • https://t.me/clickhouse_ru
    А где написанно , что нужно 10g?
  • а тут было, где то среди последних 1.5к записей )) сейчас поищу
  • https://t.me/clickhouse_ru
    @hombit ↶ Reply to #131988 #131989 09:27 AM, 13 Dec 2019
    Вот тут пишут

    https://clickhouse.yandex/docs/ru/operations/tips/#set
  • что-то не нашел, приснилось что ли... 🤔
  • да, спасибо,

    Предпочитайте как минимум 10 Гбит сеть. 1 Гбит также будет работать, но намного хуже для починки реплик с десятками терабайт данных или для обработки распределенных запросов с большим объемом промежуточных данных.
  • @MentalSky #131992 09:31 AM, 13 Dec 2019
    но как бы при сильно удаленных репликах, 10G, это, ээээ... не знаю как это будет )
  • https://t.me/clickhouse_ru
    @ProffUst #131993 09:32 AM, 13 Dec 2019
    обычно на самом деле. выделенное волокно
  • @MentalSky #131994 09:32 AM, 13 Dec 2019
    ну между континетами это будет космос по бабкам, наверное
  • https://t.me/clickhouse_ru
    having же выполняется после группировки. можно как -нибудь сделать что-то вроде группировки по дням, но для полей ,которые в таблице единичны? пытаюсь провернуть с toStartOfDay()
  • https://t.me/clickhouse_ru
    а, ну так то да, дороговато
  • https://t.me/clickhouse_ru
    пардон, это же не про ZK. это про межнодные сети
  • аааа, ну это другое дело )
  • https://t.me/clickhouse_ru
    @241186216 #131999 09:36 AM, 13 Dec 2019
    10g это скорее между репликами такая сеть должна быть , а для ЗК такой не надо
  • https://t.me/clickhouse_ru
    @241186216 #132000 09:37 AM, 13 Dec 2019
    В ЗК данных столько много не закачивается . Там самый большой объем - это информация о партах
  • https://t.me/clickhouse_ru
    @d60e87b4 #132001 10:14 AM, 13 Dec 2019
    не подскажите, что хранится в папке cores?
  • https://t.me/clickhouse_ru
    @d60e87b4 #132002 10:15 AM, 13 Dec 2019
    она разрослась до 90 гигабайт, и не изменяется
  • https://t.me/clickhouse_ru
    @241186216 #132003 10:16 AM, 13 Dec 2019
    Там дампы, которые при падении делает . Поищите в чатике.обсуждали пару дней назад
  • спасибо!
  • https://t.me/clickhouse_ru
    @gagarkin #132005 10:27 AM, 13 Dec 2019
    Ребят, подскажите, где можно найти слайды с последнего митапа?
  • https://t.me/clickhouse_ru
    @Coderxlsn #132006 10:29 AM, 13 Dec 2019
    добрый день. есть мердж таблица, работала, работала, сейчас начала выдавать ошибку
    Code: 81. DB::Exception: Received from localhost:9000. DB::Exception: Default database is not selected.
    скорей всего
    ENGINE = Merge(currentDatabase(),
    как лечить?
  • https://t.me/clickhouse_ru
    @Coderxlsn #132007 10:31 AM, 13 Dec 2019
    SELECT currentDatabase()

    ┌─currentDatabase()─┐
    │ default │
    └───────────────────┘
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @mukhametov_v #132009 11:47 AM, 13 Dec 2019
    Пытаюсь получить количество, разделенное по дням, где phone встречался в таблице более 50 раз. Норм запрос?
  • @NUR_naldoshkin #132010 11:52 AM, 13 Dec 2019
    Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 46.57 GiB (attempt to allocate chunk of 4879537 bytes), maximum: 46.57 GiB (version 19.16.2.2 (official build))
  • @NUR_naldoshkin #132011 11:52 AM, 13 Dec 2019
    Как обойти это ограничение?
  • union можно использовать, если поделить таблицу на пару частей
  • @NUR_naldoshkin #132013 11:53 AM, 13 Dec 2019
    По другому не вариант?
  • хз...это то как я решил похожую проблему, ну типа увеличить ОП можно, переписать запрос еще чтоб не тащил туда этого монстра
  • а че ты делаешь там? это из за join проблема?
  • @NUR_naldoshkin #132016 11:55 AM, 13 Dec 2019
    Да
  • @NUR_naldoshkin #132017 11:55 AM, 13 Dec 2019
    Таблицы большие
  • @NUR_naldoshkin #132018 11:55 AM, 13 Dec 2019
    А данные нужны
  • @NUR_naldoshkin #132019 11:56 AM, 13 Dec 2019
    Хз как быть
  • а с какйо стороны большая таблица? тама хэш дойн еси че
  • @NUR_naldoshkin #132021 11:57 AM, 13 Dec 2019
    Вроде. Права
  • Что это значит
  • @133452245 #132023 11:59 AM, 13 Dec 2019
    насоклько я опнимаю алгоритм джойна котоырй в кх тащит то что справа в опертаивную память, формирует хэш таблицу и потом уже джойнит с другой таблицей, попробуй поменять местами, ну и посмотри скольк оменьшая весит, еще я тут подумал что можно поделить по колонкам, типа сделать нескольк джойнов если скорость в данном случае не важна, а она не важно вроде как
  • @133452245 #132024 12:02 PM, 13 Dec 2019
    типа оставить ключи а остальное разделить, тогда последователньо объединишь данные, но хз будет ли работать
  • @133452245 #132025 12:02 PM, 13 Dec 2019
    @visken
  • @NUR_naldoshkin #132026 12:03 PM, 13 Dec 2019
    Спс
  • @Xell79 #132027 12:37 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @BloodJazMan #132028 12:50 PM, 13 Dec 2019
    DB::Exception: There is no supertype for types String, LowCardinality(Nullable(String)) because some of them are String/FixedString and some of them are not (version 19.17.4.11)

    а почему это нет супертипа??? разве LowCardinality(Nullable(String)) не является супертипом над String?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132029 12:56 PM, 13 Dec 2019
    всем хай
  • https://t.me/clickhouse_ru
    @kudryavtsev #132030 12:56 PM, 13 Dec 2019
    обьясните пожалуйста
    <internal_replication>true</internal_replication>
  • https://t.me/clickhouse_ru
    @kudryavtsev #132031 12:56 PM, 13 Dec 2019
    я никак не пойму что это значит
  • https://t.me/clickhouse_ru
    @kudryavtsev #132032 12:57 PM, 13 Dec 2019
    да
  • https://t.me/clickhouse_ru
    @kudryavtsev #132033 12:57 PM, 13 Dec 2019
    все вроде врубился
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    я правильно понимаю, что лучше использовать true и писать рандомно в любую реплику через nginx например, чем в distributed с false
  • https://t.me/clickhouse_ru
    @kudryavtsev #132036 01:07 PM, 13 Dec 2019
    или тогда балансировка не будет работать на write
  • https://t.me/clickhouse_ru
    @kudryavtsev #132037 01:08 PM, 13 Dec 2019
    и на select
  • https://t.me/clickhouse_ru
    Нет не правильно. Есть два способа репликации. Один без replicated таблиц второй с replicated. Сначала нужно определиться какой вам подходит. После этого все очевидно. Если выбрали 1 -- false , 2 -- true.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132039 01:08 PM, 13 Dec 2019
    мне нужна и репликация и балансинг
  • https://t.me/clickhouse_ru
    🤦‍♂
  • https://t.me/clickhouse_ru
    Есть 2 способа репликации
  • https://t.me/clickhouse_ru
    @kudryavtsev #132042 01:09 PM, 13 Dec 2019
    в данный момент я сделал
    3 сервака с реплицируемой таблицей,
    поверх сделал distrubuted
    и пишу и селекчу из дистрибьютед
  • https://t.me/clickhouse_ru
    @kudryavtsev #132043 01:09 PM, 13 Dec 2019
    это неправильно ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132044 01:10 PM, 13 Dec 2019
    интернал репликэйшн false соответственно
  • https://t.me/clickhouse_ru
    Если движек replicatedmergetree то true
    иначе пиздец котенку

    Извиняюсь за мат -- но я устал.
  • https://t.me/clickhouse_ru
    @Shaytank #132046 01:10 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132047 01:11 PM, 13 Dec 2019
    так а distributed поверх нужна ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132048 01:11 PM, 13 Dec 2019
    для селектов
  • https://t.me/clickhouse_ru
    @kudryavtsev #132049 01:11 PM, 13 Dec 2019
    я вас понимаю извините, но у яндекса с документацией совсем труба ... нихера непонятно
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    @kudryavtsev #132051 01:12 PM, 13 Dec 2019
    то есть в моем случае мне стоит еще просто включить внутреннюю репликацию
  • https://t.me/clickhouse_ru
    @SergeyKuzm1n #132052 01:12 PM, 13 Dec 2019
    и запись и селект через дистрибутед
  • https://t.me/clickhouse_ru
    @kudryavtsev #132053 01:13 PM, 13 Dec 2019
    но в доке написано, что при internal_replication true оно будет писать только в одну реплику
  • https://t.me/clickhouse_ru
    @kudryavtsev #132054 01:13 PM, 13 Dec 2019
    а я хочу достигнуть баланса селектов и врайтов
  • https://t.me/clickhouse_ru
    и реплицироваться уже средствами внутренней репликации движка
  • https://t.me/clickhouse_ru
    @kudryavtsev #132056 01:14 PM, 13 Dec 2019
    если например я не буду писать в реплицируемую таблицу вообще, а только в дистрьютед, false ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132057 01:15 PM, 13 Dec 2019
    и он будет распараллеливать запросы
  • https://t.me/clickhouse_ru
    @kudryavtsev #132058 01:15 PM, 13 Dec 2019
    и данные будут консистентны
  • https://t.me/clickhouse_ru
    @kudryavtsev #132059 01:15 PM, 13 Dec 2019
    ?
  • https://t.me/clickhouse_ru
    труба у нас. У яндекса все хорошо.

    Давайте начнем с простого. Как это работает.

    Вы пишете в distributed, она смотрит на параметр internal_replication -- он true -- ага решает distributed, надо писать в любую реплику, дальше сами внутри replicated таблицы все сделают. Ура win.

    Вы пишете в distributed, она смотрит на параметр internal_replication -- он false -- ага решает distributed надо писать во все реплики (там внутри не умеют реплицировать). Пишет в три реплики и все умножается на 3 в случае если там была replicated.
  • https://t.me/clickhouse_ru
    Вроде кликхаус никогда не обеспечит строгой консистентности. Он ее будет постоянно восстанавливать, но блокировать до полного восстановления консистентности они никогда ничего не будет. Это буква А в САР-теореме.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132062 01:18 PM, 13 Dec 2019
    какой тогда смысл в false я не понимаю, если мы не достигаем балансировки с помощью дистрьютед
  • https://t.me/clickhouse_ru
    @kudryavtsev #132063 01:19 PM, 13 Dec 2019
    аа
  • https://t.me/clickhouse_ru
    @kudryavtsev #132064 01:19 PM, 13 Dec 2019
    я догнал, сори ))
  • https://t.me/clickhouse_ru
    кто вообще говорил про чтение, мы еще дошли туда. internal_replication это про запись через distributed
  • https://t.me/clickhouse_ru
    @kudryavtsev #132066 01:19 PM, 13 Dec 2019
    последнее ваше изменение меня привело в чувства))
  • https://t.me/clickhouse_ru
    😊
  • https://t.me/clickhouse_ru
    @kudryavtsev #132068 01:20 PM, 13 Dec 2019
    получается в случае репликации всегда пишем в одну реплику, без вариантов
  • https://t.me/clickhouse_ru
    @kudryavtsev #132069 01:20 PM, 13 Dec 2019
    если нужно просто во все реплики писать без реплицируемых таблиц тогда false
  • https://t.me/clickhouse_ru
    у вас 1 шард. Вам можно не использовать distributed вообще. Балансировать ngnix и писать и читать из любой реплики.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132071 01:21 PM, 13 Dec 2019
    да я к этому и вел
  • https://t.me/clickhouse_ru
    @kudryavtsev #132072 01:21 PM, 13 Dec 2019
    благодарю вас))!
  • https://t.me/clickhouse_ru
    @kudryavtsev #132073 01:22 PM, 13 Dec 2019
    наверно дистрибьютед таблица может помочь в случае серьезных селектов
  • https://t.me/clickhouse_ru
    из дистрибутед читать лучше, хз почему. Он как-то сгребает со всех реплик записи
  • https://t.me/clickhouse_ru
    @kudryavtsev #132075 01:24 PM, 13 Dec 2019
    👆🏻
  • https://t.me/clickhouse_ru
    есть один вариант использования когда distributed нужна для одного шарда.
    это распараллеливание select между репликами (max_parallel_replica >1).
    НО нужен sampling у таблицы, и max_parallel_replica работает очень редко. Это нужно специально это все проектировать. И точить запросы под max_parallel_replica.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132077 01:25 PM, 13 Dec 2019
    ага понятно
  • @StanislavKorolev #132078 01:25 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    нет. По дефолту нет. У вас точно нет.
  • https://t.me/clickhouse_ru
    @den_crane #132080 01:31 PM, 13 Dec 2019
    параметри load_balancing задает правило как выбирать реплику при select. Но это больше про другие шарды. Из-за параметра prefer_localhost_replica = true, в своем шарде distributed будет всегда читать локально на своей ноде.
  • https://t.me/clickhouse_ru
    А можно ли разделить инстансы, так чтобы было 3 шарда, по 2 реплики на каждый, а запись и чтение шли всегда на определённые 3 пока они не упадут?
  • https://t.me/clickhouse_ru
    да я как раз убрал его
  • https://t.me/clickhouse_ru
    @kudryavtsev #132083 01:41 PM, 13 Dec 2019
    и max_parallel_replica 3 сделал по кол-ву серверов
  • https://t.me/clickhouse_ru
    либо на все либо на одну реплику я так понял
  • https://t.me/clickhouse_ru
    @kudryavtsev #132085 01:43 PM, 13 Dec 2019
    я вот одного только не догоню, я сделал репликейтед таблицы, поверх сделал дистрибьютед, при этом интернал репликейшн фолс у меня стоял, я заинсертил данные в дистрибьютед таблицу на 60 гиг ... и они все засинкались нормально никаких конфликтов не было
  • https://t.me/clickhouse_ru
    @hoha_ftf #132086 01:44 PM, 13 Dec 2019
    Если у меня distributed над replicated и внутренняя репликации, то данные пишутся в 3 шарда, потом в фоне реплицируются в другие 3.
    Мне бы хотелось иметь повторяемые результаты select до момента репликации
  • https://t.me/clickhouse_ru
    @kudryavtsev #132087 01:46 PM, 13 Dec 2019
    все у вас будет, как я понимаю
  • https://t.me/clickhouse_ru
    @hoha_ftf #132088 01:49 PM, 13 Dec 2019
    Так нет
  • https://t.me/clickhouse_ru
    @hoha_ftf #132089 01:49 PM, 13 Dec 2019
    Репликация асинхронная, а чтение идёт с реплики, которую кх сам выбирает
  • https://t.me/clickhouse_ru
    @kudryavtsev #132090 01:51 PM, 13 Dec 2019
    по умолчанию вроде prefer_local_replica
  • https://t.me/clickhouse_ru
    @kudryavtsev #132091 01:51 PM, 13 Dec 2019
    что то такое
  • https://t.me/clickhouse_ru
    @hoha_ftf #132092 01:55 PM, 13 Dec 2019
    Я так и не понял, как она работает на шардах не инициаторах. Может тонкости какие?
  • https://t.me/clickhouse_ru
    @zahnik #132093 01:57 PM, 13 Dec 2019
    Всем привет. Могу ли я соединить два состояния аггрегированых функций? Что-то подобное к groupUniqArrayState(state1, state2)
  • @grishalive #132094 02:02 PM, 13 Dec 2019
    Joined.
  • @kissex #132095 02:13 PM, 13 Dec 2019
    Вопрос по разрешению запросов, в документации сказанно:
    Доступ к БД не связан с настройкой readonly. Невозможно дать полный доступ к одной БД и readonly к другой.
    Можно ли как то это обойти? Планируется ли расширить функционал раздела <allow_databases>?
    Версия ClickHouse: 19.15.3.6
  • https://t.me/clickhouse_ru
    распаллеливание работает только на таблицах с sample by
  • https://t.me/clickhouse_ru
    да, конечно, настроить load_balancing = In order и прописать реплики в нужном порядке в описании кластера.

    у меня два географически разнесенных dc. Я называю линукс хосты таким образом, чтобы ходить в реплики в своем dc при load_balancing= Nearest hostname
  • https://t.me/clickhouse_ru
    да. Нету. Из-за дедупликации последних 100 блоков.

    distributed посылает в реплику1, реплику2 и реплику3 одно и тоже
    реплика1 вставляет и пишет в зукипер контрольную сумму блока.
    реплика2 проверяет что блок уже есть в зукипере (в ста последних) и не вставляет и скачивает новый парт с реплика1
    реплику3 проверяет что блок уже есть в зукипере (в ста последних) и не вставляет и скачивает новый парт с реплика1

    т.о. мы получили оверхед по сети и цпу.

    Раз в полгода приходят люди и жалуются на дубликаты из-за этого. Почему?
    реплика2 выключена или потеряла сеть.
    distributed посылает в реплику1, реплику2 и реплику3 одно и тоже
    реплика1 вставляет и пишет в зукипер контрольную сумму блока.
    реплика3 проверяет что блок уже есть в зукипере (в ста последних) и не вставляет и скачивает новый парт с реплика1
    через минуту сеть восстановилась
    реплика2 проверяет что блока нет в зукипере (в ста последних) вставляет и скачивает новый парт с реплика1
    рассылает вставленное на реплику1 и реплику3 через репликацию -- insert умножился на два
  • https://t.me/clickhouse_ru
    insert quorum
  • https://t.me/clickhouse_ru
    сложить плюсом
    state1+state2
  • https://t.me/clickhouse_ru
    пока нет.

    полноценные гранты почти готовы, я так понимаю на 99%
  • https://t.me/clickhouse_ru
    Это уже синхронная репликация получится
  • @362966306 #132103 02:27 PM, 13 Dec 2019
    Здравствуйте коллеги, кто использует кх кластеры в нескольких дц?
    если есть два рабочих кластера , если я хочу добавить новый, то с какого из текущих он будет стягивать данные для ReplicatedMergeTree таблиц ?
    и можно ли в таком случае указать конкретно с кого именно синхронизировать данные?
  • https://t.me/clickhouse_ru
    eventual consitency -- что вы хотите?
    доезжает за 1сек в среднем. Какая разница, ну сделаете вы два селекта с одной реплики и тоже получите разный результат.
  • https://t.me/clickhouse_ru
    @den_crane #132105 02:30 PM, 13 Dec 2019
    и да internal_replication влияет на DDDL (on cluster). Приходится делать еще один кластер который используется чтобы делать alter для distributed, -- это баг, у меня есть тикет -- его исправят.
  • https://t.me/clickhouse_ru
    можете поподробнее, я кажется в что то такое щас уперся
  • https://t.me/clickhouse_ru
    @kudryavtsev #132107 02:33 PM, 13 Dec 2019
    ┌─host──────────────┬─port─┬─status─┬─error─────────────────────────────────────────┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ click2.admline.ru │ 9000 │ 48 │ Cannot execute replicated DDL query on leader │ 2 │ 1 │
    │ click3.admline.ru │ 9000 │ 48 │ Cannot execute replicated DDL query on leader │ 1 │ 1 │
    └───────────────────┴──────┴────────┴───────────────────────────────────────────────┴─────────────────────┴──────────────────┘
    ┌─host──────────────┬─port─┬─status─┬─error─────────────────────────────────────────┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ click1.admline.ru │ 9000 │ 48 │ Cannot execute replicated DDL query on leader │ 0 │ 0 │
  • https://t.me/clickhouse_ru
    @kudryavtsev #132108 02:33 PM, 13 Dec 2019
    оно ?
  • https://t.me/clickhouse_ru
    fyi
  • https://t.me/clickhouse_ru
    на каком запросе
  • https://t.me/clickhouse_ru
    alter table ontime_local on cluster magic add column test2 String;
  • https://t.me/clickhouse_ru
    ontime_local -- дистрибьютид?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132113 02:37 PM, 13 Dec 2019
    нет
  • https://t.me/clickhouse_ru
    @kudryavtsev #132114 02:37 PM, 13 Dec 2019
    а на дистрибьютед такая фигня
  • https://t.me/clickhouse_ru
    @kudryavtsev #132115 02:37 PM, 13 Dec 2019
    ┌─host──────────────┬─port─┬─status─┬─error───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ click2.admline.ru │ 9000 │ 371 │ An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table 'ontime' isn't replicated, but shard #1 is replicated according to its cluster definition (version 19.17.2.4 (official build)) │ 2 │ 0 │
    │ click1.admline.ru │ 9000 │ 371 │ An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table 'ontime' isn't replicated, but shard #1 is replicated according to its cluster definition (version 19.17.2.4 (official build)) │ 1 │ 0 │
    │ click3.admline.ru │ 9000 │ 371 │ An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table 'ontime' isn't replicated, but shard #1 is replicated according to its cluster definition (version 19.17.2.4 (official build)) │ 0 │ 0 │
    └───────────────────┴──────┴────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────┴──────────────────┘
  • https://t.me/clickhouse_ru
    @kudryavtsev #132116 02:37 PM, 13 Dec 2019
    alter table ontime on cluster magic add column test2 String;
  • https://t.me/clickhouse_ru
    А КАКАЯ? какой движек?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132118 02:38 PM, 13 Dec 2019
    репл
  • https://t.me/clickhouse_ru
    @kudryavtsev #132119 02:38 PM, 13 Dec 2019
    репмерджтри
  • https://t.me/clickhouse_ru
    ну значит какая-то другая ошибка, смотрите логи сервера
  • https://t.me/clickhouse_ru
    >DB::Exception: Table 'ontime' isn't replicated, but shard #1 is replicated according to its cluster definition

    просто опишите еще один кластер XXX где все ноды это шарды и internal_replication = false и исользуйте XXX только для alter-в дистрибьютид таблиц.
  • https://t.me/clickhouse_ru
    я использую.

    >то с какого из текущих он будет стягивать данные для ReplicatedMergeTree
    из обоих

    >и можно ли в таком случае указать конкретно с кого именно синхронизировать данные?
    нет
  • https://t.me/clickhouse_ru
    хм у меня альтер и на репл табл не работает
  • https://t.me/clickhouse_ru
    @kudryavtsev #132124 02:47 PM, 13 Dec 2019
    Cannot execute replicated DDL query on leader
  • https://t.me/clickhouse_ru
    @kudryavtsev #132125 02:48 PM, 13 Dec 2019
    ddl
  • @alltouch #132126 02:48 PM, 13 Dec 2019
    создали buffer в не дефолной базе.
    пытаемся получить с него данные
    > select count() from optimize.lead_report_buffer;
    получаем ошибку
    >Access denied to database default for user optimize

    я правильно понимаю, буферы могут жить только в дефолтной бд?
  • https://t.me/clickhouse_ru
    Failed to execute ALTER TABLE ADD INDEX ON CLUSTER · Issue #6704 · ClickHouse/ClickHouse

    CREATE TABLE test ON CLUSTER default ( timestamp DateTime, field UUID ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/db/test', '{replica}') PARTITION BY ...

  • https://t.me/clickhouse_ru
    @kudryavtsev #132128 02:49 PM, 13 Dec 2019
    короче с DDL беда
  • https://t.me/clickhouse_ru
    ну значит какая-то другая ошибка, смотрите логи сервера.
    может поле уже есть или еще что
  • https://t.me/clickhouse_ru
    @kudryavtsev #132130 02:51 PM, 13 Dec 2019
    багу скинул
  • https://t.me/clickhouse_ru
    @kudryavtsev #132131 02:51 PM, 13 Dec 2019
    выше
  • https://t.me/clickhouse_ru
    Cannot execute replicated DDL query on leader

    это значит что не смог, почему не смог написано дальше и в логах
  • https://t.me/clickhouse_ru
    @kudryavtsev #132133 02:53 PM, 13 Dec 2019
    в логах только вот про лидер строчка и все
  • https://t.me/clickhouse_ru
    @kudryavtsev #132134 02:54 PM, 13 Dec 2019
    хм ) да вы правы
  • @alltouch #132135 02:54 PM, 13 Dec 2019
    нашел ошибку в создании. вопрос закрыт
  • @alltouch #132136 02:54 PM, 13 Dec 2019
    создали buffer в не дефолной базе.
    пытаемся получить с него данные
    > select count() from optimize.lead_report_buffer;
    получаем ошибку
    >Access denied to database default for user optimize

    я правильно понимаю, буферы могут жить только в дефолтной бд?
  • https://t.me/clickhouse_ru
    directory for table already containing data parts - probably it was unclean DROP table or manual intervention
    вы правы
  • https://t.me/clickhouse_ru
    @kudryavtsev #132138 02:54 PM, 13 Dec 2019
    я не пойму а что дают распределенные запросы в случае когда internal_replication true ?
  • https://t.me/clickhouse_ru
    @kudryavtsev #132139 02:55 PM, 13 Dec 2019
    если шард один
  • https://t.me/clickhouse_ru
    @kudryavtsev #132140 02:55 PM, 13 Dec 2019
    никакой прибыли
  • https://t.me/clickhouse_ru
    ничего
  • https://t.me/clickhouse_ru
    @kudryavtsev #132142 02:55 PM, 13 Dec 2019
    угу)
  • https://t.me/clickhouse_ru
    @kudryavtsev #132143 02:55 PM, 13 Dec 2019
    спасибо за помощь
  • https://t.me/clickhouse_ru
    @kudryavtsev #132144 02:55 PM, 13 Dec 2019
    вы сильно помогли
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #132145 02:56 PM, 13 Dec 2019
    Товарищи, уже спрашивал, но вдруго кто ответит
    Если я шарду поставлю weight=0, правильно ли я понимаю, что это будет read-only шарда?
  • https://t.me/clickhouse_ru
    @den_crane #132146 02:56 PM, 13 Dec 2019
    on cluster -- это такое хелпер, его сделали совсем недавно (по моим меркам), у меня даже исользуются версия в одном из проектов, которая его не умеет), он несовершенен пока.
  • https://t.me/clickhouse_ru
    @kudryavtsev #132147 02:57 PM, 13 Dec 2019
    👌🏿
  • https://t.me/clickhouse_ru
    weight=0 -- в этот шард не будет записи от distributed, он будет пустой, совсем 0 записей.
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #132149 02:59 PM, 13 Dec 2019
    Мне нужно для задачи "остановить запись в эту шарду".
  • https://t.me/clickhouse_ru
    ну тогда да, подойдет.
  • https://t.me/clickhouse_ru
    Спасибо!
  • Спасибо!
  • https://t.me/clickhouse_ru
    я не понял вопроса?

    просто указать таг -- он совпадает с версией -- yandex/clickhouse-server:19.13.6.51
    docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server:19.13.6.51
  • https://t.me/clickhouse_ru
    @d60e87b4 #132154 03:21 PM, 13 Dec 2019
    Можно в OPTIMIZE TABLE table_name PARTITION partition_name FINAL
    в partition указать диапазон?
  • https://t.me/clickhouse_ru
    Я имел ввиду по какому принципу выбирать версию на которую можно смело обновиться)
  • Если возникло такое желание, то схема партиционирования явно не подходит
  • https://t.me/clickhouse_ru
    нет. Можно нагенерить

    select concat('optimize table `',table, '`partition ',partition, ';')
    from system.parts
    where active = 1 and table like '....' and partition like '%201906%'
    group by database,table,partition
    order by database,table,partition
  • https://t.me/clickhouse_ru
    ну я беру ту которую тестировал 6 месяцев в стейдже и нашел проблем, сейчас 18.14.18 у меня ОК -- стейбл. 19.13.6.51 -- тестирую
  • https://t.me/clickhouse_ru
    Ок, спасибо
  • https://t.me/clickhouse_ru
    Почему? я ток порядок навожу, что наделали программисты
  • https://t.me/clickhouse_ru
    спасибо
  • @dkutre #132162 03:25 PM, 13 Dec 2019
    Joined.
  • Сорян. Моя читать не умеет. Думал возникло неприодолимое желание оптимизировать часть партиции.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MrDataGrip #132165 03:41 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @yar_cat #132166 03:55 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #132167 04:09 PM, 13 Dec 2019
    https://www.shodan.io/search?query=%22for+clickhouse-client+program%22

    гм, 1254 ноды смотрят голым 9000 в интернет, т.е. скорее всего как минимум в 100 раз больше нод в мире. Неожиданно.
  • https://t.me/clickhouse_ru
    analyticsaqp
  • И похоже Hetzner пока что самый дешёвый способ светануть порт 9000 наружу.
  • https://t.me/clickhouse_ru
    я использую множесто дедиков по всей планете под КХ и постоянно ищу где дешевле. Так вот хецнер это самый дешевый способ собрать сервак с кучей объемных дисков, я думаю причина в этом.
    там 256 GB DDR4 ECC + 15x 10 TB SATA = 259.00€.
    в сев. америке за такой конфиг могут и $2k просить
  • По мне так у них в принципе ценник гуманный.
  • Только трафик сильно уж лимитированный (
  • А что мешает закрыть его от ненужных адресов?)
  • @aopetrov86 #132174 04:41 PM, 13 Dec 2019
    Вообще если заморочиться со сжатием, то стоимость дисков уже не так важна становится. Мы тут взялись за это дело и получили сжатие x16. невменяемый объём данных который на флешке унести можно.
  • https://t.me/clickhouse_ru
    как? что? я только 1G использую
  • @ushliy87 #132176 04:42 PM, 13 Dec 2019
    Так там 20 Тб в месяц, а потом драконовы тарифы
  • @ushliy87 #132177 04:42 PM, 13 Dec 2019
    Может у меня хецнер курильщика?)
  • https://t.me/clickhouse_ru
    Посмотрите на WorldStream
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ariutkin #132180 04:45 PM, 13 Dec 2019
    Гарантированный гигабит
  • https://t.me/clickhouse_ru
    @ariutkin #132181 04:45 PM, 13 Dec 2019
    За 120 евро
  • Я столько не тратил ещё за месяц.
  • Спасибо. Очень своевременно
  • https://t.me/clickhouse_ru
    ????? https://www.hetzner.com/news/traffic-limit/
    какой у вас год?
  • https://t.me/clickhouse_ru
    @ariutkin #132185 04:45 PM, 13 Dec 2019
    Диск в стоке SSD 120, но можно любой попросить
  • https://t.me/clickhouse_ru
    @ariutkin #132186 04:46 PM, 13 Dec 2019
    Единственный минус что они в BGP не умеют
  • https://t.me/clickhouse_ru
    @wenkaler #132187 04:46 PM, 13 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ariutkin #132188 04:47 PM, 13 Dec 2019
    Только могут со своей AS за анонсить одну сеть на один сервер
  • Позавчера буквально смотрел, натыкался. Сейчас поищу
  • https://t.me/clickhouse_ru
    @chistyakovsy #132190 05:10 PM, 13 Dec 2019
    Всем привет! Разбираемся с Clickhouse, находим следующее - ClickHouse merges data part in an unknown moment of time which we can not predict (речь об CollapsingMergeTree). Можно как то это контролировать, вызывать тогда и только тогда, когда нам это нужно, без этого not predict? Спасибо!
  • @aopetrov86 #132192 05:17 PM, 13 Dec 2019
    У меня такое приходится делать из-за того что меняется прошлое и сжатие.
  • @aopetrov86 #132193 05:18 PM, 13 Dec 2019
    В одном куске сжатие x16, а без оптимизации сильно меньше.
  • @aopetrov86 #132194 05:22 PM, 13 Dec 2019
    Поэтому OPTIMIZE TABLE изменчивое.прошлое PARTITION toYYYYMM(today() - toIntervalMonth(1)) воимя сжатия
  • https://t.me/clickhouse_ru
    @chistyakovsy #132195 05:23 PM, 13 Dec 2019
    Спасибо! Можем мы вообще не так понимаем как нашу задачу решить на Клике (так как первый раз его используем). Так что будем рады совету!
    Расклад такой - у нас есть данные о продажах. В день к нам приходят миллионы записей, мы по ним потом считаем статистику всякую. Проблема в том, что к нам периодически приходят корректировки по этим записям, по которым мы должны либо удалить часть записей либо поменять атрибуты. Причем эти корректировки приходят много позже оригинальных записей. Раз в сутки мы хотим иметь возможность снять снепшот таблицы с последними версиями всех записей. Подходит ли нам Клик? И если да, то как лучше сделать механизм обновления данных?
    Еще раз спасибо! (Не удаляйте, нам больше некуда идти).
  • https://t.me/clickhouse_ru
    миллионы в день это немного, тупо перезаливайте всю таблицу целиком.
  • @aopetrov86 #132197 05:25 PM, 13 Dec 2019
    У вас 3 варианта:
    1. Перезалив части информации с кратковременным отсутствием части данных в таблице
    2. Использование соответствующего табличного движка с поддержкой версионирования
    3. ALTER TABLE <name> REPLACE PARTITION ...
  • @aopetrov86 #132198 05:28 PM, 13 Dec 2019
    Минусы:
    1. минус онлайн отчётность
    2. плюс накладные расходы на версии
    3. минус MV
  • https://t.me/clickhouse_ru
    @Geri4xyz #132199 05:29 PM, 13 Dec 2019
    Joined.
  • @aopetrov86 #132200 05:30 PM, 13 Dec 2019
    Плюсы:
    1. тупо проще в реализации
    2. MV, правда с минусами из опять же п. 2
    3. Быстро и просто - можно перезаливать таблицу по партициям
  • https://t.me/clickhouse_ru
    @chistyakovsy #132201 05:31 PM, 13 Dec 2019
    Спасибо! У нас данные приходят инкрементально через кафку, кликхаус - единственное хранилище, а суммарное количетсво данных миллиарды, так что перезалив всей таблицы нам не пойдет.
    Движки таблиц смотрели, но тут интересен вопрос как долго будет проходить optimize final на миллиардах, учитвая что корректировки приходят к старым данным.
  • @aopetrov86 #132202 05:32 PM, 13 Dec 2019
    Кафка не гарантирует отсутствия дублей если что.
  • @aopetrov86 #132203 05:33 PM, 13 Dec 2019
    Проверено вот этими руками 🤲
  • @aopetrov86 #132204 05:33 PM, 13 Dec 2019
    В случае сбоев возможны повторы повторы
  • @aopetrov86 #132205 05:37 PM, 13 Dec 2019
    А под "инкрементально" подразумевается двойная запись или повтор транзакции которая изменилась?
  • https://t.me/clickhouse_ru
    @chistyakovsy #132206 05:39 PM, 13 Dec 2019
    Не очень понял. Мы продьюсим данные в кафку небольшими порциями записей, которые потом какой то консьюмер должен записать в Клик.
  • По какому принципу вы выбираете данные для доставки в шину?
  • @aopetrov86 #132208 05:41 PM, 13 Dec 2019
    Это всегда новые транзакции или это новые + изменившиеся с прошлого раза?
  • https://t.me/clickhouse_ru
    @chistyakovsy #132209 05:42 PM, 13 Dec 2019
    Новые + изменившиеся с прошлого раза
  • @aopetrov86 #132210 05:43 PM, 13 Dec 2019
    Т.е. условно у каждой записи на стороне CH есть "версия" и попахивает п.2
  • https://t.me/clickhouse_ru
    если реализовать exaclty once delivery на консьюмере и продьюсере то дубликатов не будет, транзакции гарантируют это. Просто надо понять что такое exaclty once delivery оно не тривиально в реализации.
  • @aopetrov86 #132212 05:46 PM, 13 Dec 2019
    Мы такой подход используем и даже с кафкой. Не ваш объём транзакций конечно, но лям+ в сутки проходит в сторону CH.
  • Если грамотно положить брокеры на бок, то они таки смогут. Именно это я и проверял.
  • https://t.me/clickhouse_ru
    можно потерять данные, но нельзя задублировать
  • @aopetrov86 #132215 05:48 PM, 13 Dec 2019
    Но тут надо ошибиться со степенью отказоустойчивости и админами
  • Правильно написанный продюсер какраз таки этого не допустит
  • @aopetrov86 #132217 05:49 PM, 13 Dec 2019
    + настройки топика
  • https://t.me/clickhouse_ru
    потерять в смысле -- угробить брокеры / топики - до того как консьюмер прочитал
  • Я рассматривал все варианты до наступления события "не смогли доставить в шину новую инфу". Подразумевалось что кластер будет утерян не полностью и через какое-то время будет поднята уцелевшая часть.
  • @aopetrov86 #132220 05:52 PM, 13 Dec 2019
    Тестировал всякие штуки вплоть до выдёргивания питания и сети.
  • @aopetrov86 #132221 05:54 PM, 13 Dec 2019
    Пока 4 года - полёт нормальный.
  • @aopetrov86 #132222 05:54 PM, 13 Dec 2019
    Пережили вторжение админов на 3х нодах с простоем 20 сек.
  • @aopetrov86 #132223 05:55 PM, 13 Dec 2019
    Один узел в итоге потеряли
  • @aopetrov86 #132224 05:55 PM, 13 Dec 2019
    На 5 узлах думаю не заметили бы даже админов.
  • Версионирование не очень и плохо, если ключ версионирования более или менее вменяемый.
  • https://t.me/clickhouse_ru
    Еще раз спасибо! А есть где глянуть на перформанс optimize final, хотелось бы уметь оценивать время, которое будет затрачено на вот это вот все?
    Причем мы хотим к началу нового дня получать уже все оптимизированное.
    Из того что я понял, нам стоит действовать так:
    1. Используем движок с версией для таблицы
    2. Ночью вызываем OPTIMIZE FINAl
    3. Делаем снепшот как SELECT FROM
    4. BI работает со снепшотом, новые данные идут записываются в первоночальную таблицу с новыми версиями
    5 ...
    6. PROFIT !
  • https://t.me/clickhouse_ru
    @irinaekgardt #132228 06:03 PM, 13 Dec 2019
    Joined.
  • @aopetrov86 #132229 06:04 PM, 13 Dec 2019
    Я по части данных пришёл к тому что проще партицию целиком без всяких шин перезалить в соседнюю таблицу и сделать https://clickhouse.yandex/docs/ru/query_language/alter/#alter_replace-partition
  • Можно делать SELECT FROM из исходной таблицы, просто в зависмости от схемы партиционирования,частоты принудительных OPTIMIZE'ов и любви к изменениям прошлого этот запрос будет в разной степени не оптимальным
  • @aopetrov86 #132231 06:07 PM, 13 Dec 2019
    Почти всегда можно найти баланс
  • Но у меня иезуитские требования "хотим менять сильно прошлое и видеть данные с актуальностью в час". При никаком источнике информации, который ляжет если за него взяться обеими руками.
  • Нашел. Внизу. Сослепу не заметил, что это для 10 Гбит интерфейсов
    https://www.hetzner.com/dedicated-rootserver/px62
  • https://t.me/clickhouse_ru
    я сразу написал, что использую только 1G
  • @ushliy87 #132235 06:16 PM, 13 Dec 2019
    угу. а я с 10 не связал как-то
  • https://t.me/clickhouse_ru
    Как то так получилось
  • @aopetrov86 #132237 06:26 PM, 13 Dec 2019
    Закупоньки... Странный PK(Primary key?): "A B" и "B B" слились в экстазе?
  • @aopetrov86 #132238 06:42 PM, 13 Dec 2019
    Или... PK1 это не название, а значение...
  • @aopetrov86 #132239 06:45 PM, 13 Dec 2019
    Тогда с OPTIMIZE, или помимо него, запрос будет SELECT PK, argMax(B, V) as B_actual FROM ... GROUP BY PK
  • https://t.me/clickhouse_ru
    @d60e87b4 #132240 06:49 PM, 13 Dec 2019
    а я правильно понимаю что OPTIMAZE FINAL работает как в постгресе Vaacum FULL. пересоздавая таблицы?
  • Партиции же, не?
  • @aopetrov86 #132242 06:50 PM, 13 Dec 2019
    Если они указаны конечно
  • https://t.me/clickhouse_ru
    Ну он как то мерджит таблицы по странному. Я следил за местом на диске, пока он не отожрал столько же диска сколько весит и сама таблица, размер не уменьшился
  • https://t.me/clickhouse_ru
    @gagarkin #132244 06:57 PM, 13 Dec 2019
    А можно как-то через использование версий и движка replaceMergeTree удалить запись?
    Ну т.е с Sign это можно сделать, создав просто запись с флагом -1 и вызвав final
  • https://t.me/clickhouse_ru
    если партиций мало то да. Все парты партиции записываются в новый парт, в какой-то момент существуют и новый парт и старые.
    Все файлы / парты -- имьютабл, не изменяются.
  • https://t.me/clickhouse_ru
    нет, нельзя удалить из replacingMergeTree, т.е. обычно поле типа deleted добавляют, и пишут версию с deleted=1
  • @v_statys #132247 06:59 PM, 13 Dec 2019
    помогите с distributed таблицами плиз
    есть 2 шарда по которым пополам поделены даннные
    есть distributed таблица на них
    и на одном из шардов другая таблица, с полным набором данных

    я ожидаю что distributed таблица должна работать быстрее чем таблица с полными данными, но по факту даже немного медленнее
    запросы к табличкам с половинными данными работают ожидаемо ~ 2 раза быстрее

    запросы тестовые вида:
    select FHospital, count(), count(distinct FPatKey)
    from default.PHARMACY_ConsumptionReports_test2
    group by FHospital;

    select FHospital, count(),count(distinct FPatKey)
    from default.Distr
    group by FHospital

    FHospital здесь - используется в ключе шардинга, но есть подозрение что кх не понимает что можно на каждом шарде посчитать и тянет к инициатору всё
    на реальныхсложных запросах тоже +- одно время или до 15% деградации на distributed таблице.

    План distributed:
    Expression
    Expression
    MergingAggregated
    Union
    ParallelAggregating
    Expression × 6
    MergeTreeThread
    Remote

    план обычный:
    Expression
    Expression
    ParallelAggregating
    Expression × 6
    MergeTreeThread
  • https://t.me/clickhouse_ru
    >я ожидаю что distributed таблица должна работать быстрее чем таблица
    >с полными данными, но по факту даже немного медленнее
    >запросы к табличкам с половинными данными работают ожидаемо ~ 2 раза быстрее
    это ожидаемо для некоторых запросов. Финальная агрегация+передача по сети могут занимать больше времени -- чем агрегация на локальной таблице.
  • https://t.me/clickhouse_ru
    @den_crane #132249 07:03 PM, 13 Dec 2019
    шардинг помогает когда надо много читать с диска, т.е. ускоряется диск
  • https://t.me/clickhouse_ru
    @den_crane #132250 07:03 PM, 13 Dec 2019
    финальную агрегацию можно выключить -- если данные шардированы как группируются
  • https://t.me/clickhouse_ru
    @den_crane #132251 07:05 PM, 13 Dec 2019
    >подозрение что кх не понимает что можно на каждом шарде посчитать
    кх не знает как шардированы данные, поэтому есть финальная агрегация -- иногда лишняя.
  • старался сделать максимально подходящий запрос, в результате по 20 записей на шард получается, сеть локальная <1мс
  • спасибо

    настройка есть для этого?
  • https://t.me/clickhouse_ru
    @den_crane #132254 07:06 PM, 13 Dec 2019
    >count(distinct FPatKey)

    передаются естественно все distinct FPatKey -- как иначе?
  • https://t.me/clickhouse_ru
    @den_crane #132255 07:08 PM, 13 Dec 2019
    т.е. каждый шард составляет свой длинный(distinct FPatKey)
    инициатор снова делает (distinct FPatKey) из двух списков с шардов
    потом считает count
  • https://t.me/clickhouse_ru
    --distributed_group_by_no_merge
  • https://t.me/clickhouse_ru
    @den_crane #132257 07:10 PM, 13 Dec 2019
    КХ не смотрит при селектах на ключ шардирования, потому что ему нельзя верить. Во первых его можно менять в любое время, во вторых можно писать локально -- мимо дистрибьютид таблицы.
  • да, я понимаю, думал ключ шардирования можно задействовать как то и запросы соответственно переписать. спасибо за ответы

    distributed_group_by_no_merge
    жаль не помогло
  • https://t.me/clickhouse_ru
    >жаль не помогло

    есть разница в статистике между

    select FHospital, count(),count(distinct FPatKey)
    from default.Distr
    group by FHospital

    select FHospital, count(),count(distinct FPatKey)
    from default.Distr
    group by FHospital settings distributed_group_by_no_merge=1
  • хм, похоже я рукожоп или в dbeaver тупил
    в вашем варианте всё как нужно(прирост в 2 раза, результаты правильные), буду ковырять дальше, еще раз спасибо!
  • https://t.me/clickhouse_ru
    чтобы в dbeaver работало set distributed_group_by_no_merge = 1 надо настроить session_id
  • session_id стоит
  • Тот самый случай когда самому интересно стало. Я так и не смог в бобра
  • @aopetrov86 #132264 07:23 PM, 13 Dec 2019
    Оно тупое
  • https://t.me/clickhouse_ru
    а может и не работает это в dbeaver, я sqlworkbench/j использую
  • Завели issue:
    https://github.com/ClickHouse/ClickHouse/issues/8212
    Wrong supertype for String and LowCardinality(Nullable(String)) · Issue #8212 · ClickHouse/ClickHouse

    DB::Exception: There is no supertype for types String, LowCardinality(Nullable(String)) because some of them are String/FixedString and some of them are not (version 19.17.4.11)

  • Пока выложена только моя презентация:
    https://clickhouse.github.io/clickhouse-presentations/meetup38/new_features/#

    Остальные презентации будут через несколько дней. @blinkovivan
  • https://t.me/clickhouse_ru
    ClickHouse/clickhouse-presentations

    Presentations, meetups and talks about ClickHouse. Contribute to ClickHouse/clickhouse-presentations development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    выложил
  • @milovidov_an #132272 09:02 PM, 13 Dec 2019
    Спасибо!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @strangeqargo #132274 09:33 PM, 13 Dec 2019
    Извините, плохая шутка
  • https://t.me/clickhouse_ru
    @strangeqargo #132275 09:33 PM, 13 Dec 2019
    Там 1gb памяти, проверял как без свопа работает
  • @849027275 #132276 10:00 PM, 13 Dec 2019
    Joined.
  • 14 December 2019 (40 messages)
  • https://t.me/clickhouse_ru
    @Glost14 #132277 12:25 AM, 14 Dec 2019
    Всем привет!
    Хотел уточнить, при исполнении SELECT с FORMAT JSONCompact есть ли гарантии, в каком порядке будут столбцы (то есть в каком порядке они будут перечислены в meta и в каком порядке они будут, соответственно, в data)?
    Использую MergeTree, если что.
    До сих пор было всё ок - возвращались столбцы всегда в том же порядке, в котором они были указаны в самом запросе после SELECT, просто хочется понимать, можно ли быть уверенным, что всегда так будет. В документации и в этом чате ничего по этому поводу не нашёл
  • Да, порядок такой как в запросе и так всегда будет.
  • https://t.me/clickhouse_ru
    @Glost14 #132279 12:29 AM, 14 Dec 2019
    Спасибо!
  • Хороший тест на обработку ошибок нехватки памяти.
  • @lexa_work #132281 07:57 AM, 14 Dec 2019
    А где можно побольше узнать про bloom индекс на массивы?
  • @dobro_perm #132282 07:58 AM, 14 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @bralbral #132283 10:13 AM, 14 Dec 2019
    После изменения файлов конфигурации обязательно грузить сервер? Есть ли возможность применить новый конфиг без этого ?
  • https://t.me/clickhouse_ru
    Смотри в олологи клика. Он там пишет, применил ли настройку в онлайне или нет
  • https://t.me/clickhouse_ru
    @michailmarketplace #132285 10:39 AM, 14 Dec 2019
    Подскажите плз. Есть порядка 70млн сущностей, для них надо построить сводную статистику по таблице в 10млрд строк.
    Мне нужны несколько полей, типа idсущности, число записей по одному критерию, по другому и тд. И одно поле - с большой порятнкой sum(multiif(...))
    1. выполняю insert into tmptable select ..., получаю результат, где для некоторых строк (видимо, особо больших) в калькулируемом поле значение = 0, все остальные данные в порядке.
    Странно.
    2. Выполняю select * from (select ... where id=проблемная сущность) - все ок, в калькулируемом поле значение, похожее на правду
    3. Выполняю insert into tmptable select ... where id=проблемная сущность - все ок, в калькулируемом поле значение, похожее на правду
    Повторяю полную ставку (1) - опять ноль в проблемном поле.
    В какую сторону копать? Ошибок ни в консоли, ни в логах не видно.
  • https://t.me/clickhouse_ru
    @michailmarketplace #132286 10:45 AM, 14 Dec 2019
    разобрался, поменял тип с uint32 до uint64 и вроде бы все стало нормально.
  • https://t.me/clickhouse_ru
    @ProffUst #132289 11:00 AM, 14 Dec 2019
    А бота от спама тут все ещё нет?
  • https://t.me/clickhouse_ru
    !report
  • https://t.me/clickhouse_ru
    @blinkovivan реклама! забань плиз
  • https://t.me/clickhouse_ru
    Done
  • https://t.me/clickhouse_ru
    @pobept #132293 12:37 PM, 14 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hombit #132294 02:23 PM, 14 Dec 2019
    Добрый день! Работаю на системе с 1 ГБ памяти, возникают существенные проблемы с памятью при заливе данных в таблицу, как в шеле через
    | clickhouse-client --query "INSERT INTO ... FORMAT CSV"
    так и при копировании/создании таблицы в клиенте через
    CREATE TABLE ... AS SELECT ...

    Либо память просто кончается и падает исключение, либо упираюсь в любой (доступный в рамках RAM) лимит на пользовательский запрос и падает исключение, либо приходится делать здоровый swap и все тормозит.

    Это проблема имеет решение? Поменять какую-то настройку, класть данные кусками? Почему вообще при поточном не рекурсивном заливе так происходит?
  • https://t.me/clickhouse_ru
    Кеш марков по умолчанию 5гб
  • https://t.me/clickhouse_ru
    @hombit #132296 02:35 PM, 14 Dec 2019
    Спасибо, подкручу. Но на 8ГБ системе те же проблемы были
  • https://t.me/clickhouse_ru
    @den_crane #132297 02:38 PM, 14 Dec 2019
    Но 1гб это нереально мало. Можно уменьшать max/min_compression_block_size, max_insert_block_size.
  • https://t.me/clickhouse_ru
    @hombit #132298 02:39 PM, 14 Dec 2019
    Документация советует вместе с mark_cache_size уменьшать mark_cache_min_lifetime, буду пробовать
  • https://t.me/clickhouse_ru
    @hombit #132299 02:40 PM, 14 Dec 2019
    Спасибо большое!
  • https://t.me/clickhouse_ru
    @lnuynxa #132300 04:39 PM, 14 Dec 2019
    У вас нет проблем с использованием FORMAT TEMPLATE по http?
  • https://t.me/clickhouse_ru
    сам и отвечу, относительный путь для настроек FORMAT TEMPLATE (format_template_*)считается от format_schema_path
    и если там пусто, то прилетает этот seg fault
    https://github.com/ClickHouse/ClickHouse/issues/8172
    ClickHouse process crashes because of seg fault in case of invalid query from JDBC driver · Issue #8172 · ClickHouse/ClickHouse

    ClickHouse Server: 19.17.5.18 rev. 54428 JDBC Driver: 0.2.2 Query: exists some.some Executing the query above using JDBC driver causes ClickHouse to crash. Stack: 2019.12.12 05:22:38.970810 [ 50 ] ...

  • https://t.me/clickhouse_ru
    @stepan_stepanov #132302 08:22 PM, 14 Dec 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stepan_stepanov #132303 08:24 PM, 14 Dec 2019
    Ребята
    Плачу сумму денег тому, кто поможет составить запрос:

    user_id date action_type_id
    1 14-12-2019 00:00:01 1
    1 14-12-2019 00:01:02 0

    2 14-12-2019 00:05:00 1
    2 14-12-2019 00:015:00 0

    3 14-12-2019 00:05:00 0

    4 14-12-2019 00:05:01 1

    Result:
    subscribers: 3 (1,2,4) где action_type == 1
    unsubscribers: 3 (1,2,3) где action_type == 0
    spammers: 1 (1) где diff(date) > 60сек
    unsub_fr_sub: 2 (1,2) где есть action_type 1 и 0

    Особенно интересуют spammers и unsubscr_from_subscr
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #132305 09:05 PM, 14 Dec 2019
    что такое diff(date) > 60сек ?
  • @Fwant #132306 09:08 PM, 14 Dec 2019
    похоже на ансабскрайб, только второй тоже подходит под условие
  • https://t.me/clickhouse_ru
    @lnuynxa #132307 09:11 PM, 14 Dec 2019
    больше похоже на опечатку и действия не должны быть чаще раза в минуту
  • @Fwant #132308 09:12 PM, 14 Dec 2019
    тогда первый не попадает
  • https://t.me/clickhouse_ru
    @den_crane #132309 09:13 PM, 14 Dec 2019
    create table Z Engine=Memory as
    select 1 user_id, toDateTime('2019-12-14 00:00:01') date, 1 action_type_id union all
    select 1, toDateTime('2019-12-14 00:01:02'), 0 union all
    select 2, toDateTime('2019-12-14 00:05:00'), 1 union all
    select 2, toDateTime('2019-12-14 00:15:00'), 0 union all
    select 3, toDateTime('2019-12-14 00:05:00'), 0 union all
    select 4, toDateTime('2019-12-14 00:05:01'), 1 ;

    SELECT
    sum(subscriber) AS subscribers,
    sum(unsubscriber) AS unsubscribers,
    sum(spammer) AS spammers,
    sum(unsub_fr_sub) AS unsub_fr_subs
    FROM
    (
    SELECT
    user_id,
    max(action_type_id = 1) AS subscriber,
    max(action_type_id = 0) AS unsubscriber,
    length(arrayFilter((i, j) -> (abs(i - j) > 60), arrayPopBack(arraySort(groupArray(date)) AS d), arrayPopFront(d))) >= 1 AS spammer,
    subscriber AND unsubscriber AS unsub_fr_sub
    FROM Z
    GROUP BY user_id
    )

    ┌─subscribers─┬─unsubscribers─┬─spammers─┬─unsub_fr_subs─┐
    │ 3 │ 3 │ 2 │ 2 │
    └─────────────┴───────────────┴──────────┴───────────────┘
  • https://t.me/clickhouse_ru
    может просто чутка не рассчитали)
  • https://t.me/clickhouse_ru
    где есть action_type 1 и action_type 0 и разница между ними не больше 60 сек, там ошибка, сори
  • https://t.me/clickhouse_ru
    @den_crane #132313 09:18 PM, 14 Dec 2019
    ну там легко исправить это в моем варианте, хаха. И теста для этого кейса нету.
  • https://t.me/clickhouse_ru
    @den_crane #132314 09:20 PM, 14 Dec 2019
    select sum(subscriber) subscribers, sum(unsubscriber) unsubscribers, sum(spammer) spammers, sum(unsub_fr_sub) unsub_fr_subs
    from (
    select user_id,
    max(action_type_id=1) subscriber,
    max(action_type_id=0) unsubscriber,
    length(arrayFilter(i,j -> abs(i.1-j.1)<60 and i.2<>j.2, arrayPopBack(arraySort(groupArray((date,action_type_id))) as d) ,arrayPopFront(d)))>=1 spammer,
    (subscriber and unsubscriber) unsub_fr_sub
    from Z group by user_id
    )
  • https://t.me/clickhouse_ru
    @lnuynxa #132315 09:20 PM, 14 Dec 2019
    SELECT
    sum(spammer) AS spam_cnt,
    sum(unsub_from_sub) AS unsub_from_sub_cnt,
    sum(sub) AS sub_cnt,
    sum(unsub) AS unsub_cnt
    FROM
    (
    SELECT
    user_id,
    sequenceMatch('(?1)(?t<60)(?2)')(ts, action_type = 1, action_type = 0) AS spammer,
    sequenceMatch('(?1)(?2)')(ts, action_type = 1, action_type = 0) AS unsub_from_sub,
    max(action_type) AS sub,
    1 - min(action_type) AS unsub
    FROM test.test
    GROUP BY user_id
    )
  • https://t.me/clickhouse_ru
    через массивы будет быстрее?
  • https://t.me/clickhouse_ru
    нет, и скорее всего по памяти sequencematch лучше
  • https://t.me/clickhouse_ru
    @lnuynxa #132318 09:22 PM, 14 Dec 2019
    subscriber and unsubscriber

    а если он сначала отпишется а потом подпишется?
  • https://t.me/clickhouse_ru
    ну это легко учесть если надо, можно все сделать через массивы
  • 15 December 2019 (24 messages)
  • @MaurerF #132320 05:19 AM, 15 Dec 2019
    Joined.
  • @tsaberyaby #132321 06:42 AM, 15 Dec 2019
    Joined.
  • @AlexNov89 #132323 02:08 PM, 15 Dec 2019
    Можно ли делать alter materialised view для aggregation merge tree?
    И можно ли делать ее backup?
  • https://t.me/clickhouse_ru
    @combot #132325 b o t 02:14 PM, 15 Dec 2019
    Alert! Ripple XRP Alerts/News Feed is a known spammer and is CAS banned. Ban is strongly recommended.
  • https://t.me/clickhouse_ru
    можно, смысла мало. Вы в курсе что MV это триггер на инсерт? И исходные таблицы вообще не используются, а инсерт просто пушит в MV то что вставили.

    Происходит инсерт в таблицу A, на ней MV1 которое делает типа group by day и пишет в aggregating. Если сделать MV2 select from MV1 оно будет видеть результат того group by day и можно сделать group by week например.

    >И можно ли делать ее backup?
    можно, какая разница, format native умеет стейты, freeze-у вообще все равно, это просто файлы.