Size: a a a

ClickHouse не тормозит

2020 May 17

DN

Dmitriy Novikov in ClickHouse не тормозит
Mimik Lamerger
всем спасибо буду поглощать инфу, на самом деле когда  много знаешь, много чем занимаешься и прям глобально глубоко копнуть бывает некогда чтобы структуировать все.
я могу еще посоветовать вот такую книгу... там в 1 части объясняется за LSM таблицы, причем очень достойно и очень понятно, да и вцелом книга норм https://www.ozon.ru/context/detail/id/144402960/
источник

ML

Mimik Lamerger in ClickHouse не тормозит
на диване я вообще не лежу его нет, сплю по 5-6 часов =) работы валом от ангулярки до мобилок на айос и андройд, ява плюсы бакенд, настрйока дженкинса кластеры в касандре, решил вот освоить кликхаус и понимаю что тут-то я вообще поплыл =))
источник

ML

Mimik Lamerger in ClickHouse не тормозит
я вот эту читал недавно: https://www.ozon.ru/context/detail/id/144499396/?stat=Yl8x тоже очень зашла
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
мне кажется это не сильно удачное название, то что я советую не про софт..., она про дату и что с ней делать, это не про разработку ПО
источник

ML

Mimik Lamerger in ClickHouse не тормозит
Dmitriy Novikov
мне кажется это не сильно удачное название, то что я советую не про софт..., она про дату и что с ней делать, это не про разработку ПО
Да я понял просто поделился, спасибо закажу
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Mimik Lamerger
Да я понял просто поделился, спасибо закажу
mercy
источник

SS

Sos Sahakyan in ClickHouse не тормозит
Доброй ночи всем!
Я столкнулся с проблемой в драйвере clickhouse-jdbc.
Формирую батч формата Native, и использую
https://github.com/ClickHouse/clickhouse-jdbc/blob/master/src/main/java/ru/yandex/clickhouse/util/ClickHouseRowBinaryStream.java#L323
для записи нуллов, как показано в инфе о методе. Но батч собирается кривым, почему-то..
Если же просто вставлять вместо нулла какое-то значение, то все ок, батч валидный.
КТо-нибудь сталкивался с такой проблемой и что с этим делать?
источник
2020 May 18

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sos Sahakyan
Доброй ночи всем!
Я столкнулся с проблемой в драйвере clickhouse-jdbc.
Формирую батч формата Native, и использую
https://github.com/ClickHouse/clickhouse-jdbc/blob/master/src/main/java/ru/yandex/clickhouse/util/ClickHouseRowBinaryStream.java#L323
для записи нуллов, как показано в инфе о методе. Но батч собирается кривым, почему-то..
Если же просто вставлять вместо нулла какое-то значение, то все ок, батч валидный.
КТо-нибудь сталкивался с такой проблемой и что с этим делать?
почему Native? Native и RowBinary это два разных формата.
Какая ошибка? В Таблице поля Nullable ?
Как insert написан?
источник

SS

Sos Sahakyan in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
почему Native? Native и RowBinary это два разных формата.
Какая ошибка? В Таблице поля Nullable ?
Как insert написан?
да, я понимаю, что это два разных формата, но я именно Native использую. Как я заметил в коде тут, Native тоже вполне можно формировать этим драйвером. https://github.com/ClickHouse/clickhouse-jdbc/blob/master/src/test/java/ru/yandex/clickhouse/util/ClickHouseRowBinaryStreamTest.java#L178
И формирую, собственно, но если не размечать NULL-ом ничего

инсерт что-то типа такого
clickhouse-client -q "insert into test_native format Native" < /var/tmp/test.native
источник

SS

Sos Sahakyan in ClickHouse не тормозит
ошибка:
Code: 50. DB::Exception: Unknown data type family: col1
где col1 - это название колонки
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
так не умеет jdbc драйвер Native формат, только одну строку может. Используйте RowBinary
https://github.com/ClickHouse/clickhouse-jdbc/blob/master/src/test/java/ru/yandex/clickhouse/integration/RowBinaryStreamTest.java
источник

SS

Sos Sahakyan in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
так не умеет jdbc драйвер Native формат, только одну строку может. Используйте RowBinary
https://github.com/ClickHouse/clickhouse-jdbc/blob/master/src/test/java/ru/yandex/clickhouse/integration/RowBinaryStreamTest.java
почему же у меня пачка из 10к строк, собранная этим драйвером вставляется в базу в формате Native? :)
С нуллом не понятно, только, как нужно нулл размечать...

Если на живом примере, далее перечислил байтмассив, где указывается кол-во полей, кол-во строк, далее название поля, тип и его значения. и так же с другим полем. Такой батч я собираю этим драйвером. Не это ли формат Native? Все совпадает с описанием в документации и сам кликхаус его воспринимает в формате Native.
2 -- cols
3 -- rows
4   99  111  108   49  -- col1
5   85   73  110  116   56 -- uint8
5    3    1  -- col1 values
4   99  111  108   50  -- col2
5   85   73  110  116   56 -- uint8
6    4    2  -- col2 values
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
ЕМНИП в RowBinary и наверное в Native сначала идет байт 0/1 признак Null или нет, если Null тогда дальше идет след. колонка/строка, если не Null тогда значение
источник

SS

Sos Sahakyan in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
ЕМНИП в RowBinary и наверное в Native сначала идет байт 0/1 признак Null или нет, если Null тогда дальше идет след. колонка/строка, если не Null тогда значение
я тоже так думал, но что-то пошло не так :) спасибо за помощь
источник

ML

Mimik Lamerger in ClickHouse не тормозит
доброй ночи, снова недотепа я =) скажите такой риторический наверное больше вопрос, почему яндекс решил сделать нумерацию колонок не с нуля а с единицы?  results.getMetaData().getColumnName(i+1);
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sos Sahakyan
я тоже так думал, но что-то пошло не так :) спасибо за помощь
отдельно колонки с null отдельно значения, как и на диске

stream.writeString("name");
stream.writeString("Nullable(String)");

for (int i = 0; i < numberOfRows; i++) {
   stream.markNextNullable(false);
}

for (int i = 0; i < numberOfRows; i++) {
   stream.writeString("Имя " + i);
}
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
имена методов конечно жесть, надо всего переделывать, с markNextNullable на markNextNull
источник

SS

Sos Sahakyan in ClickHouse не тормозит
ого, класс! спасибо! Было неочевидно с Nullable(String)
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Mimik Lamerger
доброй ночи, снова недотепа я =) скажите такой риторический наверное больше вопрос, почему яндекс решил сделать нумерацию колонок не с нуля а с единицы?  results.getMetaData().getColumnName(i+1);
???  JDBC API  20 лет назад без яндекса в сантехники дизайнили

https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
Columns are numbered from 1
источник

ML

Mimik Lamerger in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
???  JDBC API  20 лет назад без яндекса в сантехники дизайнили

https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
Columns are numbered from 1
а jdbc причем? или Яндекс решли, не править это а протащили через себя? я  отдельно ведь jdbc не ставлю а тяну с репы их драйвер и работаю с ним, странно что вот такая нумерация.
источник