5 лет прошло, как думаете?
В статье были выявлены нюансы. Интересно узнать какие изменения произошли с этими нюансами. Выдержка из статьи: В процессе тестирования выяснилось, что эта БД для наших задач не подходит — джойны в ней представлены только номинально. Так, например: поддерживается только JOIN с подзапросом в качестве правой части; условия в join-е не пробрасываются внутрь подзапроса; распределённые join-ы выполняются неэффективно. Оказалось практически невозможным переписать «тяжёлые» запросы (N1-N3) на синтаксис Clickhouse. Также печалит ограничение по памяти — результат любого из подзапросов в любом запросе должен вмещаться в память на одном (!) сервере из кластера. Несмотря на то, что для BI-задач эта БД оказалась непригодна, по результатам тестирования она нашла применение в хранилище в другом проекте. Отдельно хочется отметить очень подробную и удобную документацию, доступную на официальном сайте (к сожалению, пока она покрывает не все аспекты использования БД), а также поблагодарить разработчиков Yandex за оперативные ответы на наши вопросы при проведении тестирования.
про джойны стало чуть лучше, но вывод статьи был бы точно таким же. оптимизатора нет, merge join нет, предикаты не проталкиваются в join, distributed join-ы очень наивная реализация, короче join-ы пока это брошенный ребенок. до магии exasol еще очень далеко. Вообще загадка как это сделано в exasol.
Возможно из-за этого. Выдержка из статьи https://habr.com/ru/company/tinkoff/blog/310620/ EXASOL позволяет посмотреть план только выполненных запросов. Это связано с тем, что план создается на ходу во время выполнения за счет анализа промежуточных результатов. Отсутствие классического explain работе не мешает, но с ним привычнее.
нет. То что оптимизация шагов плана делается на ходу, это понятно. Там другое, непонятно какой алгоритм используется, якобы они изобрели магические индексы, которые они строят на лету при джойне и затем хранят и меняют при обновлении таблицы, эти вспомогательные индексы позволяют очень быстро джойнить. И вот тут конкретно непонятно как именно сделано, потому что надо очень много хранить дополнительно данных/колонок если сделать в лоб.
Про переписать запросы на синтаксис клика - я думаю стало лучше, завезли оконки, все такое. Но все же схема хранения данных предоставленная в статье не оч для клика
Обсуждают сегодня