@clickhouse_ru

Страница 699 из 723
Ievgen
12.10.2018
03:39:29
between last и last - 24h ?

Денис
12.10.2018
03:39:58
ребят привет, подскажите, как выбрать за последний доступный день? если выбрать event_date=today(), а данных не было пару дней, то я их не увижу. Хочется выбрать за последний доступный день, такое возможно?
сам себе отвечу. выборку делаем через туже выборку, но с лимитом в еденицу: select * from base where event_date = (select event_date from base where ... ORDER BY event_time DESC limit 1) ORDER BY event_time DESC

between last и last - 24h ?
нет, заранее не известно, когда были последние данные, нужна крайняя дата

изменил сообщение, забыл сортировку по времени

Google
Денис
12.10.2018
03:41:15
в мануале не нашел конструкции готовой для выборки последнего доступного дня

Ievgen
12.10.2018
03:42:28
походу про ласт это я вообще с потолка ) извиняюсь

Денис
12.10.2018
03:43:09
бывает)) не страшно, хоть кто-то ответил, уже приятно))))

Ievgen
12.10.2018
03:43:26
max походу а не last

нет под рукой консоли чтобы проверить что скажет select max(event_date)

потому что мне кажется что вот эту конструкцию select event_date from base where ... ORDER BY event_time DESC limit 1 как раз и можно поменять на max()

terry
12.10.2018
04:02:29
сделал зеркало документации http://clickhouse.xyz

кому лень открывать впн и прокси)

Stanislav
12.10.2018
04:30:00
А что случилось с http://clickhouse.yandex ?

Денис
12.10.2018
04:32:45
Не подумал я чтото про эту функцию, а ещё математик называется)))))

ООО, спасибо, щас проверю!
не подходит, функция аггрегирующая, необхоимо группировка, немного не то, что требуется)

SELECT * FROM base WHERE ... AND event_date = (select max(event_date) from base where ... )

Google
Денис
12.10.2018
04:38:09
хотя так выглядит изящнее

terry
12.10.2018
05:15:01
А что случилось с http://clickhouse.yandex ?
у меня яндекс заблочен, нужно впн или прокси, потому сделал, что бы было доступно не только через дебри правительственных блокировок

Stanislav
12.10.2018
05:16:01
А... Тады github в помощь, там тоже есть.

terry
12.10.2018
05:22:25
А... Тады github в помощь, там тоже есть.
лень шерстить гитхаб, если можно удобно смотреть в html, дока с гитхаба таки и взята

Ivan
12.10.2018
09:07:46
можно закинуть pr со ссылкой вот сюда: https://github.com/yandex/ClickHouse/blob/master/docs/en/interfaces/third-party_client_libraries.md

Timur
12.10.2018
09:08:04


Denis
12.10.2018
09:36:17
да-да, не промоушен, а случайность)

Konstantin
12.10.2018
09:42:23
подскажите, можно ли в уже созданную таблицу добавить SAMPLE BY ?

Wolf
12.10.2018
09:45:55
НЕТ

Alexey
12.10.2018
10:47:23
@kshvakov Кирилл добрый день ! В продолжении нашего вчерашнего вечернего разговора, хотел уточнить. У меня есть конфигурация в API: [clickhouse]host(s)=10.10.10.83:9000, 10.10.10.88:9000, database=testdb, username=admin [clickhouse][dial] secure=false, skip_verify=true, strategy=random, ident=1, server=0 -> 10.10.10.83:9000 [clickhouse][connect=1][hello] -> Golang SQLDriver 1.1.54213 [clickhouse][connect=1][hello] <- ClickHouse 18.10.54405 (UTC)

Когда приложения обращается к ClickHouse

оно всегда обращается на первую ноду

на вторую ноду ни разу не обратилось за 5 запросов

строка подключения такая: click_house_conn = "tcp://10.10.10.83:9000?username=admin&password=password&debug=true&database=testdb&alt_hosts=10.10.10.88:9000"

Почему не ходит на вторую ноду ?

То что запросы всегда уходят на первую ноду проверил через tcpdump

Такое ощущение что по умолчание не random используется, а in_order

Google
Alexey
12.10.2018
10:52:48
сервер на котором расположено API телнетит обе ноды

Alexander Nairashvili
12.10.2018
10:53:48
Если мне не измеяет память, alt_hosts - отрабатывает, если первая нода перестала отвечать, чтобы устроить load balance нужен - балансер. прим chproxy

in_order - это про другое

это настройка проксирования запросов от distr_table в реплики одного и того же шарда

Alexey
12.10.2018
10:54:44
Вчера @kshvakov писал что Драйвер сам умеет балансировать. Можно покрутить таймауты, но ситуация интересная, такое бывает, надо смотреть что у вас с сеткой.

я имею ввиду что он написал что драйвер сам умеет балансировать

Alexander Nairashvili
12.10.2018
10:56:30
может балансировка работает при параллельных запросах? а при последовательных - нет? мы никогда не наблюдали балансировку в этом драйвере, но у нас все запросы идут последовательно - батчами.

Kirill
12.10.2018
11:04:40
Почему не ходит на вторую ноду ?
На вторую пойдет в новом подключении - это либо параллельные запросы, либо если время жизни соединения закончилось (откроется второе к новой ноде)

in_order - это про другое
in_order - подключаться к первой рабочей из списка

Alexey
12.10.2018
11:06:23
Каждый раз какой бы тип балансировик не указывал в этой строке [clickhouse][dial] secure=false, skip_verify=true, strategy=random, ident=1, server=0 -> 10.10.10.88:9000 стратегия всегда рандом

даже когда ставлю in_order

strategy=random - это тип балансировки ?

Kirill
12.10.2018
11:08:15
strategy=random - это тип балансировки ?
Да, только параметр называется connection_open_strategy

Alexey
12.10.2018
11:08:55
интересно почему независимо от того, что я прописываю, random или in_order всегда отображается рандом

может я не правильно указываю ?

Alexey
12.10.2018
11:09:26
&alt_hosts=10.10.10.88:9000&balancing=in_order"

Kirill
12.10.2018
11:11:18
&alt_hosts=10.10.10.88:9000&balancing=in_order"
connection_open_strategy=in_order

Alexey
12.10.2018
11:11:33
Вот оно что, попробую сейчас спасибо !

Google
LeiDruid
12.10.2018
11:23:03
Товарищи, а как канонично вкатывать обновления схемы (добавление колонок) в ReplicatedMT ?

Distributed на них отсутствует

Alexey
12.10.2018
11:23:48


Wolf
12.10.2018
11:23:54
выкатываешь альетр тейбл адд колумн он кластер

потом удаляешь и создаешь снова дистрибьютед таблицу

Alexey
12.10.2018
11:24:34
@kshvakov Пуляю запросы через Postman в API, оно всегда кидает на первую ноду Не зависимо от того, стоит random или in_order. Пробовал ждать 2 минуты между пулянием запроса в API. Складывается такое ощущение что хоть и указана стратегия рандом, оно всегда работает как in_order. Только после выключение первой ноды, запросы пошли на вторую

LeiDruid
12.10.2018
11:24:45
выкатываешь альетр тейбл адд колумн он кластер
Так нет же ни кластера, ни distributed

Wolf
12.10.2018
11:26:04
ну а как без кластера может быть репликейтед ?

LeiDruid
12.10.2018
11:26:25
Так не нужен же кластер для реплики

Только ЗК

Alexey
12.10.2018
11:32:18
@kshvakov может в нашей версии драйвера (Golang SQLDriver 1.1.54213) некорректное поведение балансировщика ?

Wolf
12.10.2018
11:33:54
Так не нужен же кластер для реплики
ну делайте руками тогда добавление колонки на каждом

Kirill
12.10.2018
11:34:23
LeiDruid
12.10.2018
11:34:28
ну делайте руками тогда добавление колонки на каждом
А что в этот момент будет с репликацией ?

Alexey
12.10.2018
11:34:59
Попробую

Wolf
12.10.2018
11:34:59
кластер это просто описание в конфиге где у вас реплики лежат чтобы можно было онкластер сделать запросы в данном случае , хотя если у вас просто пара реплик то можно на одном запустить запрос на добавление и автоматом выполнится на второй реплике

Wolf
12.10.2018
11:36:40
А что в этот момент будет с репликацией ?
ничего все будет работать , я уже так много раз делал так что все таки и пойдет

LeiDruid
12.10.2018
11:37:02
Т.е на реплике повторять этот запрос не нужно ?

Alexey
12.10.2018
11:37:32
@kshvakov после выключения первой ноды, я ее включил, но запросы все идут все равно на вторую ноду. Вызвал паралельно выполнение нескольких запросов, все равно все выполняется только на второй ноде теперь.

Google
LeiDruid
12.10.2018
11:38:55
нет
спасибо

Alexey
12.10.2018
11:40:52
У меня для тестов есть два запроса, один запрос выполняется 10 секунд, другой 1 секунду. Я сначала вызываю выполнение 10 секундного запроса, а потом 5 раз выполняю запрос который выполняет по 1 секунде

Все я понял

спасибо

наши разработчики сказали что они держат открытым соединение после выполнения запроса

Wolf
12.10.2018
11:44:55
ну это и правильно , надо по таймауту раз в пять минут скажем прерывать его

Alexey
12.10.2018
11:45:09
А это зачем ?

Denis
12.10.2018
11:45:34
так если 2 реплики, не логичнее ли пул из 2 соединений держать?

а прерывать - какой смысл? на другую ноду перейти?

Alexey
12.10.2018
11:47:30
Я думаю смысла прерывать нет

2 ноды только на одном стейджинге

есть где 4 ноды

Kirill
12.10.2018
11:48:19
наши разработчики сказали что они держат открытым соединение после выполнения запроса
Что они там делают? Соединение открыто всегда если только не указано SetConnMaxLifetime (его стоит указать, тогда оно будет "незаметно" переоткрыто)

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