Size: a a a

ClickHouse не тормозит

2020 August 18

A

Alex in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
в смысле alter delete ?  не вызовет.
спасибо!
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrii Kakoichenko
Спасибо, то есть, это обыкновенный secondary index, по аналогии с другими субд, получается по сути?
это да похоже на nested loop  - на коррелированный подзапрос

select  (select что_то from справочник where pk_поиндексу = поле_из_огромная_таблица)
from огромная_таблица
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
это да похоже на nested loop  - на коррелированный подзапрос

select  (select что_то from справочник where pk_поиндексу = поле_из_огромная_таблица)
from огромная_таблица
Nested loop да. Но все равно про справочник не понял.
Если у меня в маленькой есть  user_id, и я хочу получить все посещения страниц из большой, но без фулскана. То есть, условно,

select *
from small s
nested loop join big b on s.user_id=b.user_id

В случае схемы со словарем что произойдёт под капотом? Я просто возьму посещения из словаря? Или словарь поможет быстрее найти данные в большой, и они извлекутся из нее?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrii Kakoichenko
Nested loop да. Но все равно про справочник не понял.
Если у меня в маленькой есть  user_id, и я хочу получить все посещения страниц из большой, но без фулскана. То есть, условно,

select *
from small s
nested loop join big b on s.user_id=b.user_id

В случае схемы со словарем что произойдёт под капотом? Я просто возьму посещения из словаря? Или словарь поможет быстрее найти данные в большой, и они извлекутся из нее?
вы как-то с asof перескочили на совсем другое.

будет "фуллскан" большой всегда, и сделать вы можете мало что с этим, либо играться с блум skip_index, либо большую положить еще раз order by user_id.

таска плохая и не должно быть ее вообще, либо берите не КХ
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
вы как-то с asof перескочили на совсем другое.

будет "фуллскан" большой всегда, и сделать вы можете мало что с этим, либо играться с блум skip_index, либо большую положить еще раз order by user_id.

таска плохая и не должно быть ее вообще, либо берите не КХ
Большая order by user id, timestamp
Asof тут рядом) Частая задача, когда в маленькой лежит user id + время некоего действия. И надо понять, какое событие из большой предшествовало ему.

Например, в маленькой время ставки, и надо найти, с какой страницы она была сделана
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrii Kakoichenko
Большая order by user id, timestamp
Asof тут рядом) Частая задача, когда в маленькой лежит user id + время некоего действия. И надо понять, какое событие из большой предшествовало ему.

Например, в маленькой время ставки, и надо найти, с какой страницы она была сделана
только самым простым select where из большой без всяких join
источник

NO

Narek Olkinyan in ClickHouse не тормозит
Всем привет! Никто не сталкивался с задачей загрузки данных из Hive в ClickHouse при помощи PySpark? Столкнулся с тем, что при попытке загрузить датафрейм через jdbc CH ругается на ошибки:
Caused by: java.lang.Throwable: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 66: NOT NULL, "col1" TEXT , "col2" TEXT , "col3" DATE , "col4" DATE , "col5" INTEGER , "col6" TIMESTAMP NOT NULL, "col. Expected one of: ALIAS, CODEC, COMMENT, MATERIALIZED, ClosingRoundBracket, Comma, TTL, token, DEFAULT (version 19.14.10.16)
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
только самым простым select where из большой без всяких join
Where user_id in (select user_id from small)?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Narek Olkinyan
Всем привет! Никто не сталкивался с задачей загрузки данных из Hive в ClickHouse при помощи PySpark? Столкнулся с тем, что при попытке загрузить датафрейм через jdbc CH ругается на ошибки:
Caused by: java.lang.Throwable: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 66: NOT NULL, "col1" TEXT , "col2" TEXT , "col3" DATE , "col4" DATE , "col5" INTEGER , "col6" TIMESTAMP NOT NULL, "col. Expected one of: ALIAS, CODEC, COMMENT, MATERIALIZED, ClosingRoundBracket, Comma, TTL, token, DEFAULT (version 19.14.10.16)
неправильный синстаксис sql , КХ такое не понимает пока, у него Nullable(String)
источник

AZ

Artem Zuikov in ClickHouse не тормозит
Andrii Kakoichenko
Where user_id in (select user_id from small)?
да, так вы поменяете таблички местами (крупная станет слева и используете индекс через IN), потом поджойните результат asof-ом о small.
источник

AZ

Artem Zuikov in ClickHouse не тормозит
вариант со словарем не для asof, не умеет много строк по одному ключу
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Спасибо, суть ясна
источник

JA

Jason Aukuso in ClickHouse не тормозит
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
источник

l

lnuynxa in ClickHouse не тормозит
Artem Zuikov
давайте issue сделаем. на вскидку не ясно, что там. нужна схема и какой-то простенький генератор данных типа insert select в таблицу.
источник

NO

Narek Olkinyan in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
неправильный синстаксис sql , КХ такое не понимает пока, у него Nullable(String)
Дело в том, что этот SQL автоматически сгенерировался JDBC-драйвером (0.2.4 от 02.2020) , может ли быть такое, что версия базы CH более старая (19.14.10.16 от 12.2019), чем драйвер, и следует взять более старшую версию JDBC?
Звучит, конечно, глупо, но я стараюсь рассмотреть все варианты
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Narek Olkinyan
Дело в том, что этот SQL автоматически сгенерировался JDBC-драйвером (0.2.4 от 02.2020) , может ли быть такое, что версия базы CH более старая (19.14.10.16 от 12.2019), чем драйвер, и следует взять более старшую версию JDBC?
Звучит, конечно, глупо, но я стараюсь рассмотреть все варианты
причем тут это, у вас у PySpark коннектор к КХ должен быть. В любом случае генерить таблицы автоматически -- полное безумие, особенно в КХ (бигдата), потому что потом уже ничего не поменять.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
вот первый попавшийся из гуглв
https://github.com/VaBezruchko/spark-clickhouse-connector
источник

SL

Sergey Lossev in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
c чего вы взяли что default создан через create user ?
А что делать, если юзер default создан сто лет назад через XML, а создавать нового юзера он не хочет? Не понимаю, с какого конца подойти к задаче, чтобы можно было создавать, раздавать и запрещать безо всяких XML

client.execute(f"""SHOW GRANTS FOR default""")
[('GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, KILL QUERY, SYSTEM, dictGet, INTROSPECTION, SOURCES ON *.* TO default',)]
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Lossev
А что делать, если юзер default создан сто лет назад через XML, а создавать нового юзера он не хочет? Не понимаю, с какого конца подойти к задаче, чтобы можно было создавать, раздавать и запрещать безо всяких XML

client.execute(f"""SHOW GRANTS FOR default""")
[('GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, KILL QUERY, SYSTEM, dictGet, INTROSPECTION, SOURCES ON *.* TO default',)]
чего? default в любом случае через xml создается.

вы видно ему не выдали <access_management>1</access_management>
источник

SL

Sergey Lossev in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
чего? default в любом случае через xml создается.

вы видно ему не выдали <access_management>1</access_management>
Блин, это ж опять КХ перезапускать...
источник