
Alex
28.02.2017
22:52:48
по дефолту там 9009

Алексей
28.02.2017
22:53:16
Спасибо?

Magistr
01.03.2017
05:38:27

Константин
01.03.2017
06:02:13

Google

Константин
01.03.2017
06:12:31
Вопрос к разработчикам:
В конфиге прописал interserver_http_host
SELECT hostName()
┌─hostName()─┐
│ CH-2-1 │
└────────────┘
хотя, как говорит комент к параметру конфига, то, он как раз таки и влияет на вывод функции hostName()
вывод которой используется при репликации

Dmitriy
01.03.2017
07:08:26
Доброе утро. Подскажите как лучше перелить данные из одного кластера в другой?
Я думал из консоли через трубу две каманды select и insert
Используя clickhouse-client

Константин
01.03.2017
07:09:20
как раз этим и занимаюсь, только не с кластера в кластер, а с сингл инстанса в кластер
я прописал конфиг кластера на сингле
на сингле создал дистрибьютед таблицу
и через insert select переливаю данные из локальной таблицы в distributed

Dmitriy
01.03.2017
07:15:49
спасбо.

Vitaliy
01.03.2017
08:42:15
Привет!
как эфективно хранить ipv6 адреса, если трафика от них почти нет?

Google

Valeriy
01.03.2017
08:57:31
FixedString(16) чем плохо? Пропуски должны хорошо пожаться, я думаю.

Vitaliy
01.03.2017
09:04:38
не знаю, может чем-то он плох...

Andrey
01.03.2017
09:06:29

Valeriy
01.03.2017
09:08:05
Хранить, конечно, надо в таких строках в бинарном виде, есть для этого специальные функции: https://clickhouse.yandex/reference_en.html#IPv6NumToString(x)

Vitaliy
01.03.2017
09:09:26
а может под это дело сделать бинартый тип данных?
а не хранить это все в строке

Боб
01.03.2017
09:15:05
Если для таблицы зада индекс
EventDate, Timestamp, Country
то запрос
select * from table WHERE EventDate=toDate('2017-01-01') AND Country=RU
будет использовать учитывать что данные уже упорядочены как надо?
Или надо обязательно все поля индекса перечислять, даже если там любое значение подходит, например:
WHERE EventDate()=toDate('2017-01-01') AND TimeStamp BETWEEN toDateTime('2017-01-01 00:00:00') AND toDateTime('2017-01-01 23:59:59') AND Country = 'RU'
Timestamp - это то же что EventDate, только с точностью до секунд, т.е. упорядоченность хронологическая.

Pavel
01.03.2017
09:53:30
А есть ли планы обновить юзера с metrika на clickhouse для Docker образов?
https://hub.docker.com/r/yandex/clickhouse-server/~/dockerfile/ <-- а-то вот тут до сих пор USER metrika

Dmitriy
01.03.2017
10:28:40

Alex
01.03.2017
10:30:27
Блоки данных дедуплицируются. При многократной записи одного и того же блока данных (блоков данных одинакового размера, содержащих одни и те же строчки в одном и том же порядке), блок будет записан только один раз. Это сделано для того, чтобы в случае сбоя в сети, когда клиентское приложение не может понять, были ли данные записаны в БД, можно было просто повторить запрос INSERT. При этом не имеет значения, на какую реплику будут отправлены INSERT-ы с одинаковыми данными. То есть, обеспечивается идемпотентность INSERT-ов. Это работает только для последних 100 вставленных в таблицу блоков.

Dmitriy
01.03.2017
10:32:51
я прошу прощения, а что понимать под блоком?
в доке, вроде написано что это такое. спасибо

Alex
01.03.2017
10:41:29


mAX
01.03.2017
10:51:14
Товарищи, задача по типу фильтрации товаров на Яндекс Маркете.. Есть база около 1 млн товаров электротехнической продукции, там у каждого товара несколько десятков параметров. Как и на маркете это да/нет, диапазоны значений (вес, длина, допустимые токи и т.д.), перечисления по типу разрешения экранов мониторов..
Хотелось бы имеет возможность добавить все эти свойств в колонки и как можно быстрее делать фильтрацию этих товаров по свойствам..
Вобщем как на маркете.
Изменять данные не нужно.. Добавляются один раз.
Насколько я понимаю CH должен хорошо подходить под эту задачу?
Волнует тот факт что нету null и не очень понятно как задать отсутствие определённого свойства у объекта.
Прошу подтвердить или опровергнуть мои мысли)
Колонок вот только может получится несколько сотен возможно.. И тупые запросы в которых много where с and or и сортировка


Dmitry
01.03.2017
10:54:37
Подойдет
>Волнует тот факт что нету null и не очень понятно как задать отсутствие определённого свойства у объекта.
Сделать поле Int8 с тремя значениями

mAX
01.03.2017
10:56:57
Понятно, спасибо! Попробую..
Эксперимент провести вроде бы должно быть легко!)

Google

Alex
01.03.2017
10:57:09
Если выборки например для показа и нужны все свойства товаров, грубо говоря SELECT *, то не очень подойдёт

Игорь
01.03.2017
10:57:41
вчера на митапе говорили

Dmitry
01.03.2017
10:58:45
null тоже не бесплатно

mAX
01.03.2017
10:59:31

Игорь
01.03.2017
10:59:36
не поспоришь

Dmitry
01.03.2017
11:00:35
для хранения bool все равно используется int8 или uint8 (1 байт), так что отсутсвующее значение можно легко добавить

Dmitriy
01.03.2017
11:01:45
Алексей говорил что null реализованы не доконца. лучше не использовать, хоть они и есть

Dmitry
01.03.2017
11:02:09
и это тоже
с ними ещё бывают проблемы

mAX
01.03.2017
11:02:53
Да, согласен.. Можно обойтись и без null. Но с ними как-то удобнее))

Dmitry
01.03.2017
11:02:58
У нас есть больше сотни таблиц и везде мы обходимся без null

Alex
01.03.2017
11:03:20
Хороший индикатор того, что можно не опасаясь использовать null-ы - когда они появятся в документации ;)

mAX
01.03.2017
11:03:21
Спасибо за консультацию, будем пробовать!)

Alex
01.03.2017
11:03:32
А сейчас там много неочевидного поведения, да и просто багов

Константин
01.03.2017
11:12:33
как-то странно, на кластере выполняю запрос в distributed таблицу - запрос выполняется секунды 3, вижу только один прогрессбар, а не несколько
это нормально?

Dmitriy
01.03.2017
11:16:55
думаю да . у меня также
версия CH 1.1.54164.

Google

Felixoid
01.03.2017
11:17:59
Вопрос по поводу наследования профилей https://clickhouse.yandex/reference_ru.html#%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA
сказано, что могут наследоваться друг другом. Может ли один профиль наследовать настройки из нескольких других?

Dmitry
01.03.2017
11:24:04

Константин
01.03.2017
11:25:11
Когда впервые видел демо работы КХ на ютубе, там было несколько.

Alexander
01.03.2017
11:31:52
Нажимайте периодически на ENTER, будут появлятся новые прогрессбары (собственно, сам прогресс). Скорее всего вы видели именно это

Константин
01.03.2017
12:00:59

Alexey
01.03.2017
12:03:48
Привет!
как эфективно хранить ipv6 адреса, если трафика от них почти нет?
Да, FixedString(16). Причём можно сделать два столбца - один - только для IPv4 типа UInt32 (в случае IPv6 заполняется нулём), а другой - FixedString(16) - и для IPv4 и для IPv6. Если для отчёта нужен только IPv4, то использование столбца типа UInt32 будет эффективнее. Впрочем, это уже усложнение.

Denys
01.03.2017
12:05:59
Ребята, а если большую ReplicatedMergeTree таблицу джойнить саму на себя с фильтрацией - нормальный кейс для КХ?

mAX
01.03.2017
12:13:32
Товарищи, а КХ-клиент под винду не собирали?

Pavel
01.03.2017
12:15:50

mAX
01.03.2017
12:16:06
Который консольный, красивый

Pavel
01.03.2017
12:16:45
Нет. И он не соберётся, так как для этого надо собрать весь КХ.

mAX
01.03.2017
12:17:05
Понятно, спасибо!
/stat@combot

Combot
01.03.2017
12:17:09
combot.org/chat/-1001080295593

Боб
01.03.2017
12:46:05
@milovidov_an
Боб Смит:
Если для таблицы зада индекс
EventDate, Timestamp, Country
то запрос
select * from table WHERE EventDate=toDate('2017-01-01') AND Country=RU
будет использовать учитывать что данные уже упорядочены как надо?
Или надо обязательно все поля индекса перечислять, даже если там любое значение подходит, например:
WHERE EventDate()=toDate('2017-01-01') AND TimeStamp BETWEEN toDateTime('2017-01-01 00:00:00') AND toDateTime('2017-01-01 23:59:59') AND Country = 'RU' ?

mAX
01.03.2017
12:57:13
Товарищи, если в КХ данные таблицы хранятся по колонкам, то верно ли что для всех колонок всегда есть уже построенный индекс?

Dmitry
01.03.2017
13:00:34
Нет. Индекст есть только по PK

Combot
01.03.2017
13:04:49
combot.org/chat/-1001080295593

Боб
01.03.2017
13:53:58
Нет. Индекст есть только по PK
Понятно что по ПК.
Тут получается что используется часть ключа.
Читал в канале что кликхаус умеет использовать ключи с пропусками, но подробной информации об этом не нашел.
Т.е. сможет ли он использовать ключ эффективно именно в этом сценарии

Google

Dmitry
01.03.2017
13:55:55
что значит ключи с пропусками?

Renat
01.03.2017
14:13:05
хочу странного: возможно ли выполнить detach таблицы и attach, но уже с другим PK?

Alex
01.03.2017
14:14:32
что значит ключи с пропусками?
Наверно имеется в виду вот что: представим, что у нас дата вообще одинаковая во всех записях. Тогда можно указывать условие на второе поле индекса (пропустив первое), и индекс всё равно будет использоваться.

Dmitry
01.03.2017
14:15:00

Renat
01.03.2017
14:22:32
Создать новую таблицу с нужным PR + insert from select - единственный способ?

Dmitry
01.03.2017
14:24:18
да

Alex
01.03.2017
14:48:12
Т.е. сможет ли он использовать ключ эффективно именно в этом сценарии
Индекс не будет использоваться (точнее, будет использоваться только для условия на date), даже если указать условие на timestamp. Скорее всего у вас с одинаковым timestamp совсем немного событий. От сортировки по country в таком случае мало толку, она не позволит отсечь большие диапазоны строк.

Vladimir
01.03.2017
14:58:17
Вопрос - поддерживаются ли источник данных Postgres в словарях? MySQL, КХ, executable скрипт, http, файл - вижу есть. А постгрес?
ну либо odbc коннектор.

Dmitry
01.03.2017
14:58:41
"или любой ODBC источник."
https://clickhouse.yandex/reference_ru.html#Внешние словари
для посгреса наверняка ODBC есть