@clickhouse_ru

Страница 166 из 723
Alexander
09.06.2017
16:04:13
раньше, кстати, все бодренько-шустренько вставлялось

Дмитрий
09.06.2017
16:20:35
Может слишком маленькими пачками вставляете и кликхаус не успевает их мержить?

Alexander
09.06.2017
16:30:23
теоретически, возможно, вставляю спарком через коннектор. но вроде как репартиционировал побольше и batch size 3 ляма выставил

Alexander
09.06.2017
19:59:48
array(...) - не считается агрегатной функцией? - не понятно.

Google
papa
09.06.2017
21:57:01
array - это функция конструирования массива из аргументов переданных в функцию. агрегатная функция это groupArray

SELECT groupArray(x) FROM ( SELECT [number, number + 1] AS x FROM system.numbers LIMIT 2 ) ┌─groupArray(x)─┐ │ [[0,1],[1,2]] │ └───────────────┘

Alexander
09.06.2017
22:26:52
А полиморфизм функций планируется? А то много всего одинакового, но только для разных типов данных. Понятно что это даже не второстепенная задача.

papa
09.06.2017
23:13:17
1. у кликхауса сейчас идеология делять много функций, каждая для своего случая как можно оптимальней. например поэтому нет неявной конверсии типов, а есть явная и есть перегрузки под различные комбинации типов аргументов. 2. например одна из сигнатур arrayMap :: (a->b) -> [a] -> [b], это достаточно полиморфно?

Alexander
09.06.2017
23:19:55
1. у кликхауса сейчас идеология делять много функций, каждая для своего случая как можно оптимальней. например поэтому нет неявной конверсии типов, а есть явная и есть перегрузки под различные комбинации типов аргументов. 2. например одна из сигнатур arrayMap :: (a->b) -> [a] -> [b], это достаточно полиморфно?
да, вполне логично. Достаточно или нет - это тяжело оценить. В кдб с другой стороны обратная ситуация - всё очень полиморфно, но кажется что не хватает оптимизации как раз для простых типов/вариантов использования.

1. у кликхауса сейчас идеология делять много функций, каждая для своего случая как можно оптимальней. например поэтому нет неявной конверсии типов, а есть явная и есть перегрузки под различные комбинации типов аргументов. 2. например одна из сигнатур arrayMap :: (a->b) -> [a] -> [b], это достаточно полиморфно?
Сейчас посмотрел, и подумал, что не достаточно, но конечно от случая зависит, так как векторизированный 1+[1,2,3] в sse может мало того что быть быстрее, чем +1 через map. Но и с виду проще :). Т.е. map сама по себе плохая операция, но тут бы как раз помог бы полиморфизм +

papa
09.06.2017
23:32:43
а, ну то есть полиморфизм у вас не в терминах system f, хорошо.

Alexander
09.06.2017
23:33:36
Да, систем-ф на apl пока не получилось натянуть.

Вообще как язык k/q очень эффективен и при этом прост.

papa
09.06.2017
23:38:56
насчет того что он прост я видел разные мнения.

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

Alexander
09.06.2017
23:43:29
кликхаус более многословен, это правда. но он все таки больше sql, чем например язык для работы с массивами. что иногда неудобно.
Согласен. K/Q как язык в общем-то очень эффективен и прост. Т.е. полиморфизм местами (в данном случае для plus) эффективнее чем более сложные конструкции типа map (\x -> x+1)

Slach
10.06.2017
11:33:58
https://github.com/yandex/ClickHouse/issues/777 есть подвижки с zetcd но пока все валится на вставке блин =( я в C++ не шарю, было бы круто разобраться с этими падениями

Google
Alex
10.06.2017
11:37:01
Посмотрю на следующей неделе.

Maksim
10.06.2017
12:30:15
я конечно продолжаю быть в шоке от кликхауса: у нас 900 млн записей в таблице, индексов нет и всё работает очень и очень быстро.

я никак не могу понять: если я хочу сделать сервер для постоянной репликации для бекапа, мне всё равно надо использовать зукипер? Я бы хотел это отложить до последнего

Maksim
10.06.2017
12:57:16
я хочу копирование всех записей на другой сервер с минимальной задержкой

Vitaliy
10.06.2017
13:13:26
Тогда без зукипера никак. А какие с ним сложности?

Maksim
10.06.2017
13:15:38
с ним в принципе надо разбираться и надо поднимать несколько экземпляров

Denys
10.06.2017
13:38:01
Можешь поставить его через Cloudera Manager

Ilya
10.06.2017
14:17:50
С зукипером кстати как и с любой инфраструктурной штукой одна проблема - не хочется усложнять себе жизнь, когда у тебя уже стоит скажем консул. Зоопарк мало кто любит.

Ivan
10.06.2017
15:27:47
Можно смигрировать все на зукипер :)

Vladimir
10.06.2017
15:28:41
У zetcd минус это скорость, которая может стать критичной. Даже если он с кх заработает

Ilya
10.06.2017
15:33:41
В современном мире скорее всего у тебя будет любые 2 из консула, etcd, zookeeper что бы ты ни делал
Хз, хз. Вон в тарантуле планируют поддержать все 3 и дать выбор пользователю.

Vladimir
10.06.2017
15:36:18
Хз, хз. Вон в тарантуле планируют поддержать все 3 и дать выбор пользователю.
Я в чудеса не верю, вероятно один из трёх будет ощутимо лучше работать

Ilya
10.06.2017
15:42:18
Я в чудеса не верю, вероятно один из трёх будет ощутимо лучше работать
Если будет удовлетворять требованиям, то какая разница? Выше, сильнее и быстрее не всегда лучше -иногда нужно просто чтобы без гемора. :)

Alex
10.06.2017
16:50:08
Скорее всего, речь будет идти не о быстрее-выше-сильнее, а о злостных и непонятных багах, возникающих на двух других системах из-за того, что код был написан в расчёте на одну из них и хорошо отлажен там же. (Тоже не верю в чудеса)

Ilya
10.06.2017
17:08:29
Ну что спорить, увидим. :)

Alexey
11.06.2017
06:43:32
Мы подумываем над тем, чтобы удалить поддержку SET GLOBAL. (Конечно, удалять будем постепенно - сначала из документации, а только потом из кода). Причина - не очевидный порядок применения по отношению к настройкам из профилей пользователей, особенно во время обновления этих профилей; и эту логику стало сложно поддерживать. Я сам несколько раз пользовался этой возможностью для экспериментов по включению всем некоторых новых настроек. Но это не сильно удобнее, чем добавить или отредактировать файл в users.d. Поэтому я сомневаюсь в том, насколько она нужна. Вопрос - есть ли кто-нибудь из вас, кто пользовался SET GLOBAL и кто что думает по этому поводу?

Dima
11.06.2017
10:02:50
Привет всем еще раз. Не хочу засорять чат, но спрошу. Нужен специалист по СН. Делаем трекер для нашей рекламной сети. Все функции и задачи уже сформированы. Работы на 2 недели с полным фокусом на наших задачах. Кому нибудь интересно? Если знаете кому может быть интересно, можете помочь связаться? Всем хорошего воскресенья.

Vladimir
12.06.2017
06:40:49
@miptgirl @the_real_jkee выше спам

Google
Slach
12.06.2017
13:26:32
всем привет, пытаюсь юзать скрипт по загрузке данных из yandex metrica https://github.com/yndx-metrika/logs_api_integration/ юзаю виртуалку ubuntu 16.04 с 2 гигами оперативки и дефолтным конфигом получаю Out of memory: Kill process 13197 (BackgrProcPool) score 906 or sacrifice child Jun 12 13:21:53 local-metrika2clickhouse-clickhouse-pro kernel: Killed process 13182 (ConfigReloader) total-vm:14636140kB, anon-rss:1830256kB, file-rss:692kB данных вроде не много грузится куски по 70 мегабайт суммарно данных 1.5 гигабайта в TSV формате как так получается что clickhouse умирает по OOM ?

Alex
12.06.2017
13:28:34
а сколько памяти сама ось в виртуалке кушает?

Shine
12.06.2017
14:12:26
'max_memory_usage_for_user', 'max_memory_usage_for_all_queries'

смотрите в эту сторону

Slach
12.06.2017
15:35:38
<Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 20140701_20140731_568_568_0, approx. 8192 rows starting from 0 что значит эта запись в логах?

Patch
12.06.2017
15:38:43
Только что поставил Clickhouse на CentOS. (Александр АТ c google groups, если ты это читаешь, то просто "от души")). Я больше все-таки работаю с данными, чем программирую, поэтому в знаниях часто пробелы, но есть огромное желание попробовать, а под рукой есть сервер и БД, которая прямо-таки требует внимания) Алексей, спасибо за все это и отличную документацию! А Яндексу и сообществу спасибо за опен-сорс)

Slach
12.06.2017
16:13:40
у меня очень странное поведение просто, у меня тупо в какой то момент сейчас сервер падает, но без всякого OOM уже и эта запись 2017.06.12 16:10:06.886533 [ 12 ] <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 20140601_20140630_552_552_0, approx. 8192 rows starting from 0 последнее что есть в log файле и последнее что есть в .err.log файле это просто 2017.06.12 16:10:01.027339 [ 3 ] <Warning> ConfigProcessor: Include not found: clickhouse_compression т.е. жалобы на конфиг при этом service clickhouse-server restart не помогает сервер тупо не стартует

хотя service clickhouse-server status показывает ● clickhouse-server.service - LSB: Yandex clickhouse-server daemon Loaded: loaded (/etc/init.d/clickhouse-server; bad; vendor preset: enabled) Active: active (exited) since Mon 2017-06-12 16:09:58 UTC; 3min 55s ago

Pavel
12.06.2017
16:14:54
попробуйте включить core dumps или запустить clickhouse под gdb

а в dmesg написано что "clickhouse-server segfaulted..." или подобное?

Slach
12.06.2017
16:18:30
ну вот сделал я service clickhouse-server stop потом service clickhouse-server start и видимо запустилась какая то компактификация потому что у меня 20-30 мегов в секунду чтение и iotop даже в консоли не может запуститься... в смысле консольный ввод вывод тормозит а хост машина показывает что VboxHeadless отжирает 20-30 мегов на чтение

Alexey
12.06.2017
16:26:33
> запустилась какая то компактификация Так и есть. Компактификация (мерж) производится в фоне почти всегда. > 20-30 мегов в секунду чтение Это мало. > iotop даже в консоли не может запуститься... Проблема с виртуальной машиной - слишком урезанная конфигурация?

Совет такой: откройте top -d0.5 отсортируйте по оперативке: Shift+M и смотрите, что происходит.

Slach
12.06.2017
17:16:29
так, ну вот сейчас заработали лимиты и приложение которое льет данные стало выпадать ValueError: Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 477.21 MiB (attempt to allocate chunk of 1048576 bytes), maximum: 476.84 MiB, e.what() = DB::Exception зачем нужно 0.5 гигабайта памяти для TSV файла который весит 70 мегабайт?

файл c данными это просто выгрузка из metrika logs api

https://mega.nz/#!uU42CBoI!58xKHMdW1tBgsWBRzUGdo6zcHhRA6pnSWBIeUWbet60 вот образец данных которые я пытаюсь грузить через запрос вот такого вида CREATE DATABASE metrika2clickhouse; CREATE TABLE metrika2clickhouse.hits_all ( Artificial UInt8, Browser String, BrowserCountry String, BrowserEngine String, BrowserEn gineVersion1 UInt16, BrowserEngineVersion2 UInt16, BrowserEngineVersion3 UInt16, BrowserEngineVersion4 UInt16, BrowserLanguage String, BrowserMajorVersion String, BrowserMinorVersion String, ClientID UInt64, ClientTimeZone Int16, CookieEnabled UInt8, CounterID UInt32, Da te Date, DateTime DateTime, DeviceCategory String, Download UInt8, Event UInt8, FlashMajor UInt8, FlashMinor UInt8, From String, GoalsID Array(UInt32), HasGCLID UInt8, HttpError String, IFrame UInt8, IpAddress String, JavascriptEnabled UInt8, LastAdvEngine String, LastSe archEngine String, LastSearchEngineRoot String, LastSocialNetwork String, LastSocialNetworkProfile String, LastTrafficSource String, Link UInt8, MobilePhone String, MobilePhoneModel String, NetworkType String, NotBounce UInt8, OpenstatAd String, OpenstatCampaign String, OpenstatService String, OpenstatSource String, OperatingSystem String, OperatingSystemRoot String, PageCharset String, Params String, PhysicalScreenHeight UInt16, PhysicalScreenWidth UInt16, Referer String, RegionCity String, RegionCountry String, ScreenColors UInt8, Scr eenFormat UInt16, ScreenHeight UInt16, ScreenOrientation String, ScreenWidth UInt16, ShareService String, ShareTitle String, ShareURL String, Title String, URL String, UTMCampaign String, UTMContent String, UTMMedium String, UTMSource String, UTMTerm String, WatchID UInt 64, WindowClientHeight UInt16, WindowClientWidth UInt16 ) ENGINE = MergeTree(Date, intHash32(ClientID), (Date, intHash32(ClientID)), 8192) INSERT INTO metrika2clickhouse.hits_all FORMAT TabSeparatedWithNames

в общем я не удержался https://github.com/yandex/ClickHouse/issues/868 сделал issue потому что считаю такое поведение clickhouse очень странным

Google
Alexey
12.06.2017
18:59:49
В целом в этом нет ничего странного, так как на каждый столбец выделяются буферы для ввода-вывода (по-умолчанию по 1 MB), а также выделяются буферы для столбцов одного блока. Хотя 0.5 гигабайта всё-равно выглядят черезмерно, и с этим можно разобраться. Спасибо, что приложили файл.

Pavel
12.06.2017
22:00:59
Ребят, давайте финансы в личку, а?

@artmkin Павел, а не было каких-либо изменений с ColumnDate? Почему-то в С++ клиенте отвалились поля Date (все по нулям), хотя считается все как и раньше, поле DataTime рядом - заполняется корректно.

+void ColumnDate::Append(const std::time_t& value) { + data_->Append(static_cast<uint16_t?value / 86400)); +}

кажется я понял свою ошибку :)

починилось, я пытался кастить и сам приводить в нужный формат дату, а нужно было лишь использовать тот же time_t, что использовал для DateTime. Красота :) Прошу прощения за беспокойство.

Alexey
12.06.2017
23:15:32
+void ColumnDate::Append(const std::time_t& value) { + data_->Append(static_cast<uint16_t?value / 86400)); +}
С первого взгляда этот код выглядит абсолютно неверным, так как в сутках не обязательно 86400 секунд и сутки не обязательно начинаются тогда же как в UTC. Можно предположить, что он корректный, если бы в описании этой функции было указано, что туда надо передавать особенное значение time_t, которое соответствует началу нужного дня в UTC. Но в комментариях этого не написано. Указано только бессмысленное: /// Appends one element to the end of column. void Append(const std::time_t& value); Поэтому не удивительно, что при использовании этого кода возникает путаница.

Pavel
12.06.2017
23:16:56
на самом деле код делающий тоже самое у меня выглядел примерно также :(

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

его наверное просто стоит передавать далее как time_t и не заморачиваться преобразованием в самой библиотеке отправляя эту проблему в CH ;)

Александр
13.06.2017
09:56:01
Ребят....проблема с distributed таблицей. Пишу данные и в логах вот такое сыпится 2017.06.13 12:55:19.446774 [ 22 ] <Error> statements.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (10.20.122.3:9000), e.what() = DB::NetException, Stack trace: 0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2969826] 1. clickhouse-server(DB::WriteBufferFromPocoSocket::nextImpl()+0x5ad) [0x297de7d] 2. clickhouse-server(DB::Connection::sendData(DB::Block const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe5) [0x2b6f365] 3. clickhouse-server(DB::Connection::sendQuery(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, DB::Settings const*, DB::ClientInfo const*, bool)+0xc35) [0x2b709b5] 4. clickhouse-server(DB::RemoteBlockOutputStream::writePrefix()+0x6a) [0x2c25eda] 5. clickhouse-server(DB::StorageDistributedDirectoryMonitor::processFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x6f9) [0x2aa4cf9] 6. clickhouse-server(DB::StorageDistributedDirectoryMonitor::findFiles()+0x14c) [0x2aa680c] 7. clickhouse-server(DB::StorageDistributedDirectoryMonitor::run()+0xc5) [0x2aa6d05] 8. clickhouse-server() [0x36744ef] 9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f4f0fd8a6ba] 10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f4f0f3ab82d]

ClickHouse server version 1.1.54236

Alexander
13.06.2017
10:01:17
@FacedSID и скорость вставки смешная получается, да?

Александр
13.06.2017
10:02:29
@FacedSID и скорость вставки смешная получается, да?
Проблема в том, что данные даже не пишутся в таблицу, их нет. Хотя в соседнюю распределенную таблицу пишутся, но в ней всего 4 столбца, она как лог служит

Может стоит на последний стейбл обновиться?

Alexander
13.06.2017
10:06:41
я вот до 1.1.54236 обновился, и тоже такая шляпа началась

Александр
13.06.2017
10:08:17
Ну в гите вроде как 54237 последняя, но ее вроде не собрали в релиз еще

Интересно, а если делать даунгрейд версии сервера, ничего не сломается?

Nataliya
13.06.2017
12:02:59
Всем привет! ClickHouse meetup наконец-то едет в Минск! Встреча 29 июня. Будет интересно как администраторам ClickHouse, так и тем, кто пока только присматривается к системе. Мы приглашаем белорусских пользователей также поделиться своим опытом использования ClickHоuse и выступить на встрече с блиц-докладами. Участие в мероприятии бесплатное, но необходимо заранее зарегистрироваться: количество мест в зале ограничено. Посмотреть программу и подать заявку на участие можно на странице встречи: https://events.yandex.ru/events/meetings/29-june-2017/

Google
Nataliya
13.06.2017
12:03:53
Также можно поделиться с друзьями в сетях https://www.facebook.com/Yandex.Events/posts/1568900803130035 https://vk.com/yandex.events?w=wall-17796776_5432 https://twitter.com/ya_events/status/874564684531335168

Denys
13.06.2017
12:04:41
Боюсь спрашивать про митап в Украине)

Nataliya
13.06.2017
12:10:20
А я боюсь отвечать :) Приезжайте в Минск!

Pavel
13.06.2017
12:10:42
Минск прекрасен, рекомендую :)

Ruslan
13.06.2017
12:12:04
А когда уже в москве?)

Alex
13.06.2017
12:15:04
а онлайн будет?

Nataliya
13.06.2017
12:15:38
Нет, не планируется.

Alex
13.06.2017
12:15:51
пичалька(

Shine
13.06.2017
12:16:08


а тут написано, что будет трансляция

кому верить ? )

Nataliya
13.06.2017
12:17:18
Верить мне, не будет трансляции (



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