184 похожих чатов

Добрый день всем, может быть кто сталкивался с таким? У нас

есть таблица events_distributed с полями a Int32, b Int32, c_xxx String, c_yyy String, c ENGINE Distributed и четыре шарда events_sharded с ENGINE ReplicatedMergeTree на разных машинах.

При вставке в events_distributed в одну из нод видим в логах ошибки вида:
There is no column with name c. There are columns: a, b, c_xxx, e.what() = DB::Exception (from 111.222.33.444:59118) (in query: INSERT INTO events_sharded (a, b, c_xxx, c_yyy) FORMAT RowBinary), Stack trace:

0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x28ae4d6]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x102a3af]
2. clickhouse-server(DB::ITableDeclaration::check(DB::Block const&, bool) const+0x922) [0x29b3472]
3. clickhouse-server(DB::MergeTreeDataWriter::splitBlockIntoParts(DB::Block const&)+0x35) [0x2a3e845]
4. clickhouse-server(DB::MergeTreeBlockOutputStream::write(DB::Block const&)+0x40) [0x29c1f90]
5. clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x486) [0x2b38906]
6. clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x91) [0x2af5aa1]
7. clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x41d) [0x2b3889d]
8. clickhouse-server(DB::MaterializingBlockOutputStream::write(DB::Block const&)+0x28) [0x2b27698]
9. clickhouse-server(DB::AddingDefaultBlockOutputStream::write(DB::Block const&)+0x235) [0x2c6f295]
10. clickhouse-server(DB::ProhibitColumnsBlockOutputStream::write(DB::Block const&)+0x4f) [0x2c892af]
11. clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x455) [0x2c507f5]
12. clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x2c50981]
13. clickhouse-server(DB::TCPHandler::processInsertQuery(DB::Settings const&)+0x2ce) [0x104405e]
14. clickhouse-server(DB::TCPHandler::runImpl()+0x67a) [0x10447aa]
15. clickhouse-server(DB::TCPHandler::run()+0x1c) [0x104540c]
16. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x315d0af]
17. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x10b) [0x317ac3b]
18. clickhouse-server(Poco::PooledThread::run()+0x87) [0x337b807]
19. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x333d456]

При этом на сам POST запрос ClickHouse возвращает 200 OK.
Проверили схемы на всех машинах — все поля присутствуют и в локальных _sharded, и в _distributed таблицах.
ClickHouse server version 1.1.54245.

Вопросы:
1. Почему в списке There are columns: a, b, c_xxx указаны не все столбцы events_sharded?
2. Почему кликхаус репортит попытку вставить столбец c, если прям там же, в приведённом запросе на вставку в шард, никакой попытки вставить это поле нету? (INSERT INTO events_sharded (a, b, c_xxx, c_yyy) FORMAT RowBinary).
Возможно, он при выводе названия поля съедает всё что после _?
3. Вставка в distributed таблицу это неблокирующая операция? Т.е. даже если клиенту вернулось 200 ОК, то ещё нет гарантии, что данные запишутся во все шарды?
4. Что делать?) Пересоздать все distributed и локальные таблицы?

Спасибо за внимание)

1 ответов

8 просмотров

Вы делали ALTER'ы? Distributed-таблицы и удаленные таблицы никак не синхронизируются при Альтерах. 3. Возвращается Ок если данные записались в локальное хранилище Distributed-таблицы. Затем эти данные в фоне вставляются в шарды. Поэтому если вставка в шарды не пройдет, то вы заметите это только по логам. Если вставка в шард завершилась неудачей, то она будет повторена через таймаут. 2. Он репортит, что во время вставки данных из локального хранилища в удаленную таблицу, она ожидает колонку c, а ее нет в вставляемом блоке. Проверьте что к тому моменту времени таблица на 111.222.33.444 имела нужную структуру. 1. Возможно ли так что, вы когда-то вставляли только (a, b, c_xxx)? 4. Зависит от того какая стуктура Distributed таблиц у вас была до этого.

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
4
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Подскажите, можно ведь комбинировать запись данных в один и тот же Stream через TFileStream и через TCompressionStream поочерёдно? Ну т.е. часть данных мне нужно сжать, часть ...
notme
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, кто сталкивался с тем, что Electron.js не разворачивает билд React.js-приложения? Голый body в чёрном цвете, как и должно быть, но остального - нет. Билд работает исп...
..
6
Карта сайта