Сбор статистики для CBO
Эта тема описывает базовую концепцию оптимизатора на основе стоимости (CBO) Selena и как собирать статистику для CBO для выбора оптимального плана запроса. Selena 2.4 вводит гистограммы для сбора точной статистики распределения данных.
Начиная с версии 1.5.0, Selena поддерживает сбор статистики из таблиц Hive, Iceberg и Hudi, снижая зависимость от других систем метаданных. Синтаксис аналогичен сбору внутренних таблиц Selena.
Что такое CBO
CBO крити чески важен для оптимизации запросов. После того как SQL-запрос поступает в Selena, он разбирается в логический план выполнения. CBO переписывает и преобразует логический план в несколько физических планов выполнения. Затем CBO оценивает стоимость выполнения каждого оператора в плане (такую как CPU, память, сеть и I/O) и выбирает путь запроса с наименьшей стоимостью в качестве финального физического плана.
CBO Selena был запущен в Selena 1.16.0 и включен по умолчанию начиная с версии 1.19. Разработанный на основе фреймворка Cascades, CBO Selena оценивает стоимость на основе различной статистической информации. Он способен выбирать план выполнения с наименьшей стоимостью среди десятков тысяч планов выполнения, значительно улучшая эффективность и производительность сложных запросов.
Статистика важна для CBO. Она определяет, является ли оценка стоимости точной и полезной. Следующие разделы подробно описывают типы статистической информации, политику сбора и как собирать статистику и просматривать статистическую информацию.