@clickhouse_ru

Страница 651 из 723
Aleksandr
10.09.2018
12:36:14
Alex
10.09.2018
12:37:17
Первый шаг тоже можно делать ON CLUSTER. У вас Replicated* таблички?

Aleksandr
10.09.2018
12:39:02
да

пробовал сделать вот так: alter table db.tablename_sharded on cluster cluster1 add column count UInt16 default 1 after column_name; получил в ответ: An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table tablename_sharded 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., e.what() = DB::Exception

Google
Aleksandr
10.09.2018
12:41:31
у меня стоит: <internal_replication>false</internal_replication>

это мой первый кластер по этому мог ошибится в конфигах ?

Alex
10.09.2018
12:42:55
А почему? Если Replicated таблички, как раз должно быть true

Aleksandr
10.09.2018
12:43:16
значит скоро будет true ?

спасибо

Иван
10.09.2018
12:43:35
само дектоп приложение нормально работает (особенно с последней версией драйвера), проблема в настройке обновлений через шлюз
А шлюз в каком режиме запущен? Когда я это дело пробывал, было требование запускать его в персанал мод.

Иван
10.09.2018
12:54:43
Посмотрел, да в июле добавили поддержку enterprise. А на десктопе что прям получилось врубить DirectQuery для клика?

Anton
10.09.2018
13:01:39
На свежих ODBC такая ошибка возникает, когда в результате в полях есть NULL. ifnull-те значения в селекте, либо откатитесь на драйвер, зарелизиненный до августа

Alexey
10.09.2018
13:04:04


Буду еще раз пытаться

думабю поможет

Google
Anton
10.09.2018
13:04:34
Проблема появилась с августовских релизов

Aleksandr
10.09.2018
13:17:46
А почему? Если Replicated таблички, как раз должно быть true
теперь появилась другая проблема, после того как сделал alter table db.tablename_sharded on cluster cluster1 add column…; все прошло хорошо, теперь пробую для distributed сделать: alter table db.tablename on cluster cluster1 add column…; и получаю: An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table tablename isn't replicated, but shard #2 is replicated according to its cluster definition, e.what() = DB::Exception

в чем может быть проблема?

I
10.09.2018
13:25:10
Подскажите, кто как хранит время с таймзоной?

papa
10.09.2018
13:26:19
unix timestamp

I
10.09.2018
13:27:20
unix timestamp
Я так понимаю, это единственный приемлемый на текущий момент вариант? Строка однозначно хуже?

Michal
10.09.2018
13:35:20
Я так понимаю, это единственный приемлемый на текущий момент вариант? Строка однозначно хуже?
Если вам не нужна большая производительность на этом столбце - можно и в строке. Но обычно столбец активно используется.

Мы просто храним 2 таймстампа. Один в "честной" UTC, другой - тоже в UTC, но там время со смещением клиента записано.

Если одну из второй вычесть можно выяснить какое в тот момент времени было смещение таймзоны от UTC.

При этом в "локальном" времени клиента время может идти неравномерно - например перескакивать при переводе часов на зимнее/летнее.

При этом всякие функции работы со временем корректно работают на обоих полях

Если вам не нужно хранить много разных таймзон - то вообще проблем нет никаких. Если много разных - то кроме того варианта который выше можно хранить в каждой строке смещение от UTC, и добавлять поправку "на лету". Можно не хранить, а держать эту поправку в словаре для каждого клиента.

I
10.09.2018
13:45:25
Мне как раз и не нравится концепция двух таймстемпов и вычисления диффа. Поэтому и задаю вопрос)

Michal
10.09.2018
13:47:24
Мне как раз и не нравится концепция двух таймстемпов и вычисления диффа. Поэтому и задаю вопрос)
Если не нужно одновременно данные для разных таймзон обрабатывать - то можно просто в селект добавлять нужную таймзону.

I
10.09.2018
13:47:55
Если не нужно одновременно данные для разных таймзон обрабатывать - то можно просто в селект добавлять нужную таймзону.
Так к сожалениию не выдет. Выброка идет именно по срезу с большим кол-вом городов

Michal
10.09.2018
13:48:30
Тогда или два таймстампа или таймстами+смещение.

Смещение можно в словаре

I
10.09.2018
13:49:27
Я так понимаю, напрямую никак нельзя сериализовать/десериализовать java-объект в базу? Т.е. прогонять придется через собственный маппер?

@mfilimonov спасибо за ответ)

Google
Denis
10.09.2018
13:51:24
А зачем нужно хранить время не в UTC? Я 20 лет занимаюсь только БД и никогда не мог понять зачем это надо?

Это как если хранить температуру в 3 полях, в кельвинах, цельсиях и фаренгейтах, вот нафига?

Michal
10.09.2018
13:52:43
А зачем нужно хранить время не в UTC? Я 20 лет занимаюсь только БД и никогда не мог понять зачем это надо?
У базы 100 клиентов из разных городов. Напишите запрос - в какое время (локальное) они охотнее всего делают инсерты :)

Т.е. например в 17 часов 26 минут :)

При этом эти "локальные" 17:26 могут случиться в 18:26 19:26 или даже 23:56 :)

ну короче суточная активность с учетом локальных таймзон. Например на локальных суточных графиках оч. хорошо видно как "просыпаются" люди в одтельных тайзонах. Если же всё посчитать в UTC (когда разные таймзоны наложены друг на друга) - получается такая непонятная кардиограмма и не понятно кто и во сколько "проснулся" :)

Denis
10.09.2018
13:59:14
Т.е. из таймзоны вычисляется местоположение? Т.е. странно это, в чехии просыпаются в 5 утра, в тойже таймзоне в Росси в 7.

I
10.09.2018
13:59:41
Т.е. по таймзоне можно получить релевантные данные относительно местоположения

Michal
10.09.2018
14:01:02
иногда это бывают даже совсем идиотские истории про "конец дня" который случается в разных городах в разное время.

Ну вычислять местоположение по таймстампах - это немного другая история.

Alexey
10.09.2018
14:02:41
Проблема появилась с августовских релизов
Обновил сервер ClickHouse и установил новый ODBC драйвер версии 2018-09-03 и все. Проблема ODBC: ERROR (Cannot interpret NULL as int64: invalid stoll argument" РЕШЕНА.

Denis
10.09.2018
14:02:50
Я вчера улицу перелшел, оказался в другой провинции и время сдвинулось на час, а в булочной на другой стороне не сдвинулось ?

I
10.09.2018
14:03:00
Т.е. из таймзоны вычисляется местоположение? Т.е. странно это, в чехии просыпаются в 5 утра, в тойже таймзоне в Росси в 7.
Речь как раз и шла о том, чтобы хранить время в таймзоне сервера, но при выборке опираться на таймзону города и относительно ее вычислять смещение

Michal
10.09.2018
14:03:22
Потому что она в другой таймзоне

:)

А теперь задача: напишите запрос сколько денег потеряла булочная сравнивая среднесуточную активность пользователей в булочных с суточной активностью пользователей в этой конкретной булочной. :) И как изменились бы её доходы если бы она открывалась на час раньше. Всё это с учетом информации о том что через дорогу живет в два раза больше людей в другом часовом поясе.

Denis
10.09.2018
14:46:30
т.е. у каждой булочной она своя система таймзон, я не понимаю как TZ и локальное время одной булочной применить к другой, т.е. мы поймем что для Чехии надо открываться в 5 и начинать печь булки в 3, проблема в том что для Росии это неверно, я согласен, для анализа это проще чем использовать UTC + (местоположение булочной и покупателя).

Konstantin
10.09.2018
15:30:40
подскажите, как корректно дропунть партиции на всех нодах для дистриб таблицы?

Mike
10.09.2018
15:33:48
alter table db.table_local on cluster clustername drop partition='partname' ?

Google
Konstantin
10.09.2018
15:42:07
alter table db.table_local on cluster clustername drop partition='partname' ?
спасибо, Table table_rep is replicated, but shard #2 isn't replicated according to its cluster definition. Possibly <internal_replication>true</internal_replication> is forgotten in the cluster config. необходимо прописать internal_replication или на живом кластере это уже не прокатит?

Mike
10.09.2018
15:42:37
алтерить нужно mergetree таблицу, а не дистрибутед

или у меня лыжи уже под конец вечера не едут

Konstantin
10.09.2018
15:43:52
точнее ReplicatedMergeTree

Konstantin
10.09.2018
15:44:56
Можно прописать, а можно просто ручками на каждом шарде запустить
вариант ручакми знаю, хотелось более ленивого)

Mike
10.09.2018
15:45:09
мы в тяжелых случаях ансиблом по всем хостам запрос прогоняем

Konstantin
10.09.2018
15:46:30
а возможности писать PARTITION like '....' не появилось еще? если за год дропать то 12 партицией на каждой ноде?)

Mike
10.09.2018
15:50:08
проще использовать delete по условию

Ivan
10.09.2018
16:10:11
@blinkovivan а можно вот такое реализовать в ODBC? https://github.com/Microsoft/DataConnectors/blob/master/docs/odbc.md
Почитал по диагонали: звучит скорее как разработка плагина к Power BI на C#, от ODBC там только тот факт, что он в конечном счете будет использоваться для передачи данных...

Konstantin
10.09.2018
16:11:45
Почитал по диагонали: звучит скорее как разработка плагина к Power BI на C#, от ODBC там только тот факт, что он в конечном счете будет использоваться для передачи данных...
ага (глянул внимательнее)\, изначально сложилось впечатление что это спецификация драйвера должна быть какая то особая.

осталось научиться и написать коннектор, штука была бы очень нужная)

Aliaksandr
10.09.2018
17:14:03
можно ли использовать haproxy для балансировки между 2-мя репликами?
Лучше использовать chproxy - https://github.com/Vertamedia/chproxy . Он лучше осведомлен о специфике запросов к clickhouse

I
10.09.2018
17:25:35
А может кто-нибудь скинуть пример конфига словаря и внешний файл с источником данных?

Konstantin
10.09.2018
18:45:43
коллеги, если найдутся сочувствующие помогите запилить DirectQuery коннектор КХ для Power BI на основе: https://github.com/Microsoft/DataConnectors/tree/master/samples/ODBC/SqlODBC =)

Dmitry
10.09.2018
19:22:10
Коллеги, добрый вечер! Одна нода кликхауса не стартует с ошибкой: <Error> Application: DB::Exception: Shard address 'detached' does not match to 'user[:password]@host:port#default_database' pattern Подскажите, куда смотреть?

Dmitry
10.09.2018
19:53:31
Кирилл, спасибо. Снова выручили) Это последствия ручного восстановления данных)

Google
Michal
10.09.2018
20:24:27
Старее, не помню сейчас номер версии - с начала лета.

Alexey
10.09.2018
20:31:16
Старее, не помню сейчас номер версии - с начала лета.
Я сейчас готовлю changelog, там как раз есть пункт по этому поводу.

Вольдемар
11.09.2018
07:19:48
Какие кто использует способы для изменения формата даты при выгрузке, например, в тот же csv. Например, если надо вывести дату в файл в формате DD.MM.YYYY HH24:MI:SS

Alexander
11.09.2018
07:38:37
Здравствуйте, подскажите пожалуйста, выполняю команду sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 выводит ошибку Executing: /tmp/apt-key-gpghome.Xrk7HSuSwb/gpg.1.sh —keyserver keyserver.ubuntu.com —recv E0C56BD4 gpg: keyserver receive failed: Server indicated a failure ошибка выводится в образе вагранта, на локальной машине все ставится нормально

Igor
11.09.2018
07:42:43
Всем доброго утра. У меня возник вопрос. В bigquery у меня есть переменная в формате DATETIME. Мне нужно добавить к ней 7 дней, для построения неравенства. Но функции DATE_ADD(), DATE_SUB() не хотят работать.

Максим
11.09.2018
07:45:16
Добрый день. Подскажите с такой задачей: Есть столбцы уникальный id клиента, дата и время посещения, нужно присвоить каждому уникальному id свой номерной порядок от первого до последнего посещения.

Igor
11.09.2018
07:45:42
Делаю примерно так: INS_DATE between REQDATE and DATE_SUB(DATE(REQDATE), INTERVAL 7 DAY)

Ivan
11.09.2018
07:48:30
Igor
11.09.2018
07:49:37


Michal
11.09.2018
07:49:59
т.е. у каждой булочной она своя система таймзон, я не понимаю как TZ и локальное время одной булочной применить к другой, т.е. мы поймем что для Чехии надо открываться в 5 и начинать печь булки в 3, проблема в том что для Росии это неверно, я согласен, для анализа это проще чем использовать UTC + (местоположение булочной и покупателя).
Конечно, политически верный вариант (5NF и т.п.) - хранить один таймстамп (нормальный, в UTC) + таймзону/локацию пользователя в виде какого-нибудь timezone_id. Ну и чтобы база умела прозрачно для пользователя "переводить стрелки часов" если возникает такая потребность. Но мы тут про большие данные, где всякие там нормализации скорее мешают чем помогают, да и у Кликхауса нет "встроенной" возможности использовать одновременно много таймзон, если они хранятся вместе с данными. Поэтому проще и удобнее просто тупо 2 таймстампа, или таймстамп + смещение.

Ivan
11.09.2018
07:51:24
может редактор просто не знает?

mozgoo
11.09.2018
08:09:49
Всем привет. Обьясните или ткните нормальной ссылкой на информацию по vertical и horizontal merge. Интересно понять, как они работают, а гугл одну экономику скидывает

Michal
11.09.2018
08:12:39
Ordinary (horizontal) merge proceeds like follows: take several sorted parts and create a read cursor for each of them, then create a resulting part by repeatedly appending to it the smallest row among those pointed by the current cursors. By contrast, vertical merge proceeds as follows: first perform a horizontal merge on primary key columns, remembering for each row the part number from which it was taken (this is the rows_sources file). Then for each non-key column perform a "gather" step: gather the values of the resulting column from the source columns according to the rows_sources. For wide tables vertical merge performs much better.

mozgoo
11.09.2018
08:20:23
@mfilimonov И на том спасибо?

Yaroslav
11.09.2018
08:21:39
Всем привет, какой способ загрузки данных в ClickHouse самый быстрый? Какой формат использовать при вставке? Может быть использовать какой-нибудь clickhouse-driver?

Igor
11.09.2018
08:25:06
Всем доброго утра. У меня возник вопрос. В bigquery у меня есть переменная в формате DATETIME. Мне нужно добавить к ней 7 дней, для построения неравенства. Но функции DATE_ADD(), DATE_SUB() не хотят работать.

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