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

> @milovidov_an Алексей, добрый день! Мы обновили CH до версии: 1.1.54140. Перестали загружаться

встроенные гео-словари со следующей ошибкой:

<Error> EmbeddedDictionaries: Cannot load dictionary! You must resolve this manually.: Code: 0, e.displayText() = DB::Exception: Region id is too large: 1000006, should be not more than 1000000

Судя по коду:

https://github.com/yandex/ClickHouse/blob/master/dbms/src/Dictionaries/Embedded/RegionsHierarchy.cpp#L41
https://github.com/yandex/ClickHouse/blob/master/dbms/src/Dictionaries/Embedded/RegionsNames.cpp#L59

это ограничение:

const size_t max_size = 1000000;

Но наши словари опираются на базу geonames.org, на которую, в т.ч., опирается поставщик данных MaxMind, где максимальный geoname_id (в терминах CH - это region_id), который используется нами - это 11073439.

Появилось это в этом коммите https://github.com/yandex/ClickHouse/commit/f9eb536825ae3cfab65b1d8d37a2bdd67c58010d

С чем связанно такое ограничение max_size ?

Можно ли предложить PR по увеличению этого лимита до 20 млн ?

2 ответов

13 просмотров

Действительно. Выглядит как надуманное ограничение. Такое ощущение, что предполагалось, что вся геобаза будет лежать в виде недо-хэштаблицы (т.е. попросту массива размером миллион), где комфортно расположились бы все айдишники по порядку, почти без пропусков, видимо из какой-то внутренней яндексовской геобазы. Я нашёл вариант, как это "закостылить" и прикрутить сюда базу максмайнд: перенумеровать айдишники максмайнд и создать кастомный внешний словарь с отображением из одних id в другие (+скрипт для регулярного обновления получившегося дикта). Только так появляется возможность использовать встроенные в КХ геофункции. Разумеется, остаётся ещё вариант использовать собственные внешние словари, а не геофункции КХ. Но, конечно, я не оставляю надежды, что разработчики кх исправят этот недочет, и добавят возможность использовать обычные хэш-таблицы для хранения геобазы.

Если до этого всё работало нормально, то давай PR, и просто увеличим.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта