Size: a a a

ClickHouse не тормозит

2021 February 14

S

Slach in ClickHouse не тормозит
Tatiana
Лучше один раз понять, что такое Atomic, чем напихать uuid в zpath и через некоторое время обломиться еще раз.
Есть же способы удалить таблицу синхронно.
Которые не работали для on cluster и фикс всего неделю назад выкатили
источник

G

GithubReleases in ClickHouse не тормозит
ClickHouse/ClickHouse tagged: v21.2.3.15-stable
Link: https://github.com/ClickHouse/ClickHouse/releases/tag/v21.2.3.15-stable
Release notes:
ClickHouse stable release v21.2.3.15-stable
источник

S

Slach in ClickHouse не тормозит
Tatiana
Вот я и говорю, при неаккуратном использовании можно не мало граблей насобирать.
Мне не нравится утверждение, что uuid в zpath использовать "НАДО"
ок, я понял, да, вообще как то с Atomic очень все криво выглядит
источник

MM

Michael M in ClickHouse не тормозит
Не могу разобраться с ошибкой при работе с https://github.com/ClickHouse/clickhouse-go

В функцию на Golang-е передаются email string и password []byte . я делаю запрос и получаю ошибку```

err := db.QueryRow(`SELECT true, id FROM users WHERE password=? AND email=? LIMIT 1`, clickhouse.Array(password), email).Scan(&exits, &id)


[code: 62, message: Syntax error: failed at position 45 (','): , 1, 104, 82, 38, 71, 17, 218, 67, 112, 202, 158, 22, 92, 85, 163, 140, 30, 216, 60, 29, 220, 87, 221, 230, 46, 212, 89, 194, 38, 36, 220, 230, 124, 201, 178, 5. Expected one of: UNION, LIMIT, WINDOW, LIKE, GLOBAL NOT IN, end of query, HAVING, AS, DIV, IS, GROUP BY, INTO OUTFILE, OR, QuestionMark, BETWEEN, OFFSET, NOT LIKE, MOD, AND, alias, ORDER BY, SETTINGS, IN, ILIKE, FORMAT, NOT ILIKE, WITH, NOT, token, NOT IN, GLOBAL IN]

Где тут ошибка?

@kshvakov , можешь подсказать?
источник

S

Slach in ClickHouse не тормозит
Michael M
Не могу разобраться с ошибкой при работе с https://github.com/ClickHouse/clickhouse-go

В функцию на Golang-е передаются email string и password []byte . я делаю запрос и получаю ошибку```

err := db.QueryRow(`SELECT true, id FROM users WHERE password=? AND email=? LIMIT 1`, clickhouse.Array(password), email).Scan(&exits, &id)


[code: 62, message: Syntax error: failed at position 45 (','): , 1, 104, 82, 38, 71, 17, 218, 67, 112, 202, 158, 22, 92, 85, 163, 140, 30, 216, 60, 29, 220, 87, 221, 230, 46, 212, 89, 194, 38, 36, 220, 230, 124, 201, 178, 5. Expected one of: UNION, LIMIT, WINDOW, LIKE, GLOBAL NOT IN, end of query, HAVING, AS, DIV, IS, GROUP BY, INTO OUTFILE, OR, QuestionMark, BETWEEN, OFFSET, NOT LIKE, MOD, AND, alias, ORDER BY, SETTINGS, IN, ILIKE, FORMAT, NOT ILIKE, WITH, NOT, token, NOT IN, GLOBAL IN]

Где тут ошибка?

@kshvakov , можешь подсказать?
clickhouse.Array(password)
зачем?
почемму не просто password?
источник

MM

Michael M in ClickHouse не тормозит
Потому что столбец определён как массив:
`password` Array(UInt8) CODEC(NONE),
источник

MM

Michael M in ClickHouse не тормозит
без clickhouse.Array() та же ошибка возникает.
источник

S

Slach in ClickHouse не тормозит
Michael M
Не могу разобраться с ошибкой при работе с https://github.com/ClickHouse/clickhouse-go

В функцию на Golang-е передаются email string и password []byte . я делаю запрос и получаю ошибку```

err := db.QueryRow(`SELECT true, id FROM users WHERE password=? AND email=? LIMIT 1`, clickhouse.Array(password), email).Scan(&exits, &id)


[code: 62, message: Syntax error: failed at position 45 (','): , 1, 104, 82, 38, 71, 17, 218, 67, 112, 202, 158, 22, 92, 85, 163, 140, 30, 216, 60, 29, 220, 87, 221, 230, 46, 212, 89, 194, 38, 36, 220, 230, 124, 201, 178, 5. Expected one of: UNION, LIMIT, WINDOW, LIKE, GLOBAL NOT IN, end of query, HAVING, AS, DIV, IS, GROUP BY, INTO OUTFILE, OR, QuestionMark, BETWEEN, OFFSET, NOT LIKE, MOD, AND, alias, ORDER BY, SETTINGS, IN, ILIKE, FORMAT, NOT ILIKE, WITH, NOT, token, NOT IN, GLOBAL IN]

Где тут ошибка?

@kshvakov , можешь подсказать?
в /var/log/clickhouse/clickhouse-server.log и в system.query_log посмотрите
там должен быть запрос который после обработки clickhouse-go приходит на сервер

а password в golang у вас slice []uint8 ?
источник

MM

Michael M in ClickHouse не тормозит
password []byte
источник

S

Slach in ClickHouse не тормозит
можно еще
password=[?]

попробовать в SQL запросе
источник

MM

Michael M in ClickHouse не тормозит
посмотрел таблицу и логи. там пишет, что ошибка парсинга запроса. сам запрос не пишет.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Michael M
Потому что столбец определён как массив:
`password` Array(UInt8) CODEC(NONE),
безотносительно проблемы
`password` Array(UInt8) CODEC(NONE), -- это полнейшая дичь, просто нереальная, нельзя массивы использовать для этого

просто password String -- в String можно положить любой набор байт
источник

S

Slach in ClickHouse не тормозит
Michael M
посмотрел таблицу и логи. там пишет, что ошибка парсинга запроса. сам запрос не пишет.
в system.query_log запрос не пишет??? ;)

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

MM

Michael M in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
безотносительно проблемы
`password` Array(UInt8) CODEC(NONE), -- это полнейшая дичь, просто нереальная, нельзя массивы использовать для этого

просто password String -- в String можно положить любой набор байт
прочитал ещё раз https://clickhouse.tech/docs/ru/sql-reference/data-types/array/ . ничего страшного не обнаружил. Почему строки лучше массивов?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
массивы совсем не для этого. Они нужны когда вам необходимо работать с отдельными элементами массива.
Использовать массивы так как вы используете это идиотизм, это 100 кратный overhead по CPU
источник

MM

Michael M in ClickHouse не тормозит
Slach
можно еще
password=[?]

попробовать в SQL запросе
помогло вроде... Спасибо.
источник

S

Slach in ClickHouse не тормозит
и это =)
судя по запросу, использовать clickhouse как хранение пользователей и пытаться авторизоваться через него
не тот юзкейс ради которого он создан вообще
источник

D

Dj in ClickHouse не тормозит
хранить бинарный зашифрованный пароль ок же, жить можно, не?
не думаю что они вообще делают аггрегацию по этой колонке...

я бы больше задумался о том, что делать когда данные не обновятся или потеряются )
источник

MM

Michael M in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
массивы совсем не для этого. Они нужны когда вам необходимо работать с отдельными элементами массива.
Использовать массивы так как вы используете это идиотизм, это 100 кратный overhead по CPU
оно внутри хранится разве не как последовательность байт?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Michael M
оно внутри хранится разве не как последовательность байт?
нет, оно хранится сложно
источник