Size: a a a

ClickHouse не тормозит

2020 September 03

DC

Denny Crane [not a Y... in ClickHouse не тормозит
я не работаю в разработке КХ, и мне лично кафка мало интересна, я не буду смотреть никакие докеры.

заведите тикет на гитхабе, Михаил Филимонов может посмотрит
источник

SI

Sergei Iamskoi in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
я не работаю в разработке КХ, и мне лично кафка мало интересна, я не буду смотреть никакие докеры.

заведите тикет на гитхабе, Михаил Филимонов может посмотрит
Сорри, подумал что из разработчиков. С json-ом все ок, не теряются. Пока на нем остановлюсь, спротобафом тогда позже буду разбираться. Возможно действительно в продюсере дело
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
нет я просто обычный участник чата , обычный кх дба со сверхбольшим ЧСВ, не имею отношения к разработке и к Яндексу.
источник

S

Slach in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
нет я просто обычный участник чата , обычный кх дба со сверхбольшим ЧСВ, не имею отношения к разработке и к Яндексу.
про сверхбольшое ЧСВ =) ты сильго преувеличиваешь
источник

Р

Руслан in ClickHouse не тормозит
Доброго дня, при попытке получить из кафки сообщение:
{
   "a1": "val1",
   "b2": {
       "c3": "val3"
   }
}

через kafka engine:
create table test (
   a1 String,
   b2 String
) ENGINE Kafka()
SETTINGS kafka_format 'JSONEachRow'
...

получаю ошибку:
Cannot parse JSON string: expected opening quote: (while read the value of key b2)

Версия кх 20.4.5.36
источник

Р

Руслан in ClickHouse не тормозит
Получается, нельзя вложенный json сохранить в поле string? Как тогда получить доступ к b2, чтобы например в MV извлечь из него внутренности?
источник

SK

Serge Kovalev in ClickHouse не тормозит
Подскажите по импорту csv
В таблице поле UInt32, а в csv встретились не число, а текст в этой колонке, при консольном импорте получаем exceprion -... Is not like int32
опция input_format_defaults_for_ommited_fields не помогла
Как разрешить клиенту продолжать импорт и если не число, то вставлять значение по умолчанию?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Руслан
Доброго дня, при попытке получить из кафки сообщение:
{
   "a1": "val1",
   "b2": {
       "c3": "val3"
   }
}

через kafka engine:
create table test (
   a1 String,
   b2 String
) ENGINE Kafka()
SETTINGS kafka_format 'JSONEachRow'
...

получаю ошибку:
Cannot parse JSON string: expected opening quote: (while read the value of key b2)

Версия кх 20.4.5.36
1я проблема в том что это НЕ!!!!!!!!! JSONEachRow!!!!!!!!!!!.
2я да, с вложенными полями трудности, конкретно ваш можно распасить и выдрать b.c если включить input_format_import_nested_json

вы джейсоны сами формируете для КХ или это данность?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Serge Kovalev
Подскажите по импорту csv
В таблице поле UInt32, а в csv встретились не число, а текст в этой колонке, при консольном импорте получаем exceprion -... Is not like int32
опция input_format_defaults_for_ommited_fields не помогла
Как разрешить клиенту продолжать импорт и если не число, то вставлять значение по умолчанию?
можно либо через insert into input function преобразовать seleсt-м toInt32OrZero

или пропустить эту строку совсем включив
--input_format_allow_errors_num arg                              Maximum absolute amount of errors while reading text formats (like CSV, TSV). In case of error, if at least absolute or relative
                                                                  amount of errors is lower than corresponding value, will skip until next line and continue.
 --input_format_allow_errors_ratio arg                            Maximum relative amount of errors while reading text formats (like CSV, TSV). In case of error, if at least absolute or relative
                                                                  amount of errors is lower than corresponding value, will skip until next line and continue.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
input_format_defaults_for_ommited_fields вообще не про это
источник

SK

Serge Kovalev in ClickHouse не тормозит
Пропускать не вариант. Таких строк много и остальные колонки ценные.
источник

SK

Serge Kovalev in ClickHouse не тормозит
Спасибо, попробую через преобразование
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
пример input
INSERT INTO example SELECT id, ifNull(num, -1) FROM input('id UInt32, num Nullable(Int32)') format JSONEachRow {"id": 1, "num": null};
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
или можно еще через MV + Null таблица -- я всегда его использую
источник

Р

Руслан in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
1я проблема в том что это НЕ!!!!!!!!! JSONEachRow!!!!!!!!!!!.
2я да, с вложенными полями трудности, конкретно ваш можно распасить и выдрать b.c если включить input_format_import_nested_json

вы джейсоны сами формируете для КХ или это данность?
На структуру жсон повлиять не можем, будет более сложная, это просто пример.
input_format_import_nested_json это ведь про тип Nested? Там вложенность 1, скорее всего не хватит.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Руслан
На структуру жсон повлиять не можем, будет более сложная, это просто пример.
input_format_import_nested_json это ведь про тип Nested? Там вложенность 1, скорее всего не хватит.
вас ждет боль, много боли
в целом КХ вообще не понимает JSON для input. JSONEachRow -- это очень упрощенное подмножество JSON-а.

можно вставлять JSON-ы как String и в MV парсить JSONExtract функциями
источник

Р

Руслан in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
вас ждет боль, много боли
в целом КХ вообще не понимает JSON для input. JSONEachRow -- это очень упрощенное подмножество JSON-а.

можно вставлять JSON-ы как String и в MV парсить JSONExtract функциями
К боли мы готовы) но пока не получается жсон в стринг, если не JSONEachRow то что использовать?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Руслан
К боли мы готовы) но пока не получается жсон в стринг, если не JSONEachRow то что использовать?
create table i(J String) Engine=Null;
create table f(a String, i Int64, f Float64) Engine=MergeTree order by a;

create materialized view vv to f
as select (JSONExtract(J, 'Tuple(String,Tuple(Int64,Float64))') as x),
       x.1 as a,
       x.2.1 as i,
       x.2.2 as f
from i;

echo '{"s": "val1", "b2": {"i": 42, "f": 0.1}}' |clickhouse-client -q "insert into i format JSONAsString"

select * from f
┌─a────┬──i─┬───f─┐
│ val1 │ 42 │ 0.1 │
└──────┴────┴─────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ад
источник

Р

Руслан in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
create table i(J String) Engine=Null;
create table f(a String, i Int64, f Float64) Engine=MergeTree order by a;

create materialized view vv to f
as select (JSONExtract(J, 'Tuple(String,Tuple(Int64,Float64))') as x),
       x.1 as a,
       x.2.1 as i,
       x.2.2 as f
from i;

echo '{"s": "val1", "b2": {"i": 42, "f": 0.1}}' |clickhouse-client -q "insert into i format JSONAsString"

select * from f
┌─a────┬──i─┬───f─┐
│ val1 │ 42 │ 0.1 │
└──────┴────┴─────┘
Правильно понимаю, что нужно использовать kafka_format='JSONAsString'? У нас просто версия КХ в которой его ещё нет, и чтобы обновиться, надо точно понять что поможет..
источник