BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Администрирование Apache Doris » Индексирование и эффективный доступ к данным

Индексирование и эффективный доступ к данным

Индексирование в аналитической платформе Doris играет ключевую роль в минимизации объема сканируемых данных и ускорении обработки запросов. В контексте OLAP-аналитики это особенно важно: данные приходят в больших объемах, обновляются постепенно, а запросы требуют быстрой фильтрации по множеству столбцов. Глава раскрывает архитектуру индексирования в Doris, механизмы фильтрации и prune-зон, параметры конфигурации, практики эксплуатации и методы диагностики эффективности индексов. Рассматриваются принципы применения индексов в типовых сценариях нагрузок и влияние на планировщик запросов, планирование памяти и общую производительность кластера.

 

Краткое содержание главы

  • Архитектура индексирования в Doris: структура планшетов, rowset-ов, zone maps и фильтры на уровне хранения.
  • Основные механизмы доступа к данным: zone maps, Bloom-фильтры и другие техники ускорения сканирования.
  • Практические подходы к настройке и эксплуатации индексов: выбор столбцов, параметры Bloom-фильтров, стратеги partitioning и распределения данных.
  • Мониторинг эффективности индексов: метрики, сигналы деградации и инструменты диагностики.
  • Практические сценарии применения индексов: типовые рабочие нагрузки, рекомендации по внедрению и эволюции конфигураций.

     

Архитектура индексирования в Doris

Архитектура Doris ориентирована на эффективную фильтрацию и минимизацию чтения данных на уровне хранения. Основные компоненты, связанные с индексированием, включают в себя механизм.zone maps (zone maps), которые представляют собой минимальные и максимальные значения в пределах сегментов и блоков данных. Zone maps позволяют планировщику запросов избежать чтения участков данных, не удовлетворяющих условиям отбора, что существенно уменьшает нагрузку на дисковую подсистему и сетевые потоки.

Кроме(zone maps), ключевую роль в эффективной фильтрации играет механизм Bloom-фильтров, применяемый на уровне столбцов. Bloom-фильтры позволяют быстро определить, вероятно ли значение присутствует в наборе данных, и тем самым исключить целевые сканирования по блокам, где вероятность попадания нулева или пустого результата минимальна. В контексте Doris Bloom-фильтры применяются на уровне сегментов или Tablet и работают совместно с zone maps, усиливая общий prune-эффект.

Важно понимать, что индексирование в Doris не строит однотипные узконаправленные индексы, как в реляционных СУБД с B-деревьями. Вместо этого Doris фокусируется на статистических структурах и фильтрах, которые позволяют планировщику запросов быстро сузить диапазоны чтения и затем применить точную фильтрацию уже на этапе выполнения скана. Такая архитектура особенно выгодна для больших таблиц и часто-совмещаемых запросов по нескольким столбцам с высокой кардинальностью, где полносканирование недопустимо по времени.

Планирование совместной работы.zone maps и Bloom-фильтров строится вокруг следующих принципов:

  • Применение zone maps на уровне блоков данных внутри Tablet для быстрого исключения больших диапазонов значений без чтения содержимого блоков.
  • Присоединение Bloom-фильтров к выборочным столбцам, чтобы дополнительно отсеивать блоки, где значения точно отсутствуют.
  • Совместная работа фильтров с распределением по сегментам и партициям, что позволяет быстро исключать целые партиции, не удовлетворяющие критериям отбора.

Эти механизмы сами по себе не требуют явной ручной индексации для каждого столбца и подцели, но требуют грамотной настройки и понимания рабочих нагрузок.

 

Типы индексов и принципы доступа

  • Zone maps (Зональные карты)

    • Зональные карты являются базовым механизмом prune в Doris. Они хранят минимальные и максимальные значения по диапазонам данных внутри блоков Tablet. При выполнении запроса планировщик может определить, что часть блоков не может удовлетворять условиям отбора и пропустить их чтение целиком.
    • Эффективность zone maps сильно зависит от умения разделять данные на мелкие, но умеренные по размеру блоки. Плохо подобранная картина дистрибуции данных может привести к недостаточной точности prune и, как следствие, к большему объему сканирования.
    • Практически zone maps особенно полезны для временных диапазонов, дат- и числовых столбцов, а также для столбцов с ограниченной дисперсией значений.
  • Bloom-фильтры

    • Bloom-фильтры применяются к набору столбцов, позволяя быстро определить, что определённое значение не содержится в наборе данных. Это снижает вероятность чтения блоков, где искомое значение отсутствует в принципе.
    • Параметризация Bloom-фильтров включает выбор столбцов, к которым они применяются, и целевые точности (false positive probability, FPP). Малая FPP повышает точность prune, но увеличивает требования к памяти и вычислениям на этапе загрузки данных.
    • Эффективность Bloom-фильтров наиболее заметна на столбцах с высокой кардинальностью в условиях запросов типа точного совпадения, IN-условий и фильтрации по диапазонам, где фильтры снижают число блоков, попавших в сканирование.
  • Другие техники индексирования и сжатия

    • Dictionary encoding и другие формы кодирования значений на уровне столбцов улучшают эффективность сравнения и фильтрации, особенно для строковых полей с повторяющимися значениями.
    • Минимальные и максимальные значения в рамках блоков (в сочетании с zone maps) помогают распознавать случаи, когда запись в блоке не может удовлетворить условиям запроса.
    • В Doris данная область максимально интегрирована в общий планировщик запросов и систему хранения, поэтому отдельные внешние индексы не требуют отдельной поддержки на уровне SQL.

Таким образом, основное различие между индексацией в Doris и традиционными индексами заключается в том, что Doris предпочитает распределённые, целевые фильтры и статистические структуры, которые работают на уровне хранения и сканирования, а не в сложных структурах дерева поиска. Это обеспечивает линейно масштабируемые решения для больших объёмов данных и высоких скоростей LIN-сканирования в аналитических нагрузках.

 

Настройка и эксплуатация индексов

  • Выбор столбцов для Bloom-фильтров

    • Практическая рекомендация: включать Bloom-фильтры в столбцы с высокой селективностью и частыми точечными запросами, а также в столбцы, используемые в фильтрах и условиях связи (JOIN/WHERE).
    • Избегать избыточного применения Bloom-фильтров к столбцам с низкой селективностью или к столбцам, где фильтрация почти всегда возвращает большой процент строк, так как это может увеличить расход памяти без существенного выигрыша в скорости.
  • Настройка порогов и памяти

    • Установка целевых параметров FPP (false positive probability) требует баланса между точностью prune и потреблением памяти. Более низкое значение FPP снижает вероятность чтения лишних блоков, но увеличивает потребление памяти для фильтров.
    • Важно мониторить влияние фильтров на общую нагрузку памяти: Bloom-фильтры занимают память как на уровне чтения, так и в кэшах.
  • Partitioning и распределение данных

    • Эффективность zone maps усиливается, когда данные хорошо партиционированы по критическим столбцам отбора (например, по датам, регионам, ключам бизнеса). Правильная архитектура партиционирования приводит к раннему отсеиванию целых партиций на раннем этапе выполнения запроса.
    • Распределение по buckets (или hash-дистрибуция) должно обеспечивать сбалансированную загрузку между узлами кластера и минимизировать перекрестную коммуникацию во время сканирования.
  • Эксплуатационные практики

    • Регулярная актуализация статистик: сбор минимальных/максимальных значений, объёмов данных и распределения по колонки для поддержания эффективности prune.
    • Внедрение автоматизированных процедур для анализа частоты использования Bloom-фильтров и зональных карт по рабочим нагрузкам, чтобы корректировать настройки.
  • Привязка к бизнес-логике

    • Определение критичных для низкой задержки путей обращений - как правила отбора, применяемые в большинстве запросов, позволит сконцентрировать фильтры именно на этих столбцах.
    • Эволюция конфигураций под изменение спроса: например, переход к более агрессивной фильтрации по некоторым столбцам после роста их кардинальности в новой версии бизнес-данных.

       

Мониторинг эффективности индексов и диагностика

  • Метрики prune-эффективности

    • Доля блоков, пропущенных благодаря zone maps, и доля блоков, сработавших Bloom-фильтрами.
    • Время ответа на запросы, особенно для операций, зависящих от фильтрации по нескольким столбцам.
  • Метрики памяти и вычислительной нагрузки

    • Потребление памяти Bloom-фильтров и их влияние на общий профиль потребления памяти узла.
    • Частота попадания Bloom-фильтров и профиль их ложноположительных срабатываний.
  • Диагностика и инструменты

    • Поддержка средств планирования запросов и EXPLAIN-операторов (где возможно) для оценки того, какие фильтры применяются на этапе планирования.
    • Логи и метрики исполнения для анализа узких мест: чтение сегментов, сканирование блоков, перераспределение данных и повторные попытки чтения.
  • Роль автоматизации

    • Наличие автоматических процедур анализа текущих конфигураций индексов и рекомендации по адаптации параметров под текущую нагрузку и паттерны запросов.
    • Регулярные аудиты схем индексирования в рамках изменения бизнес-логики и данных.

       

Практические сценарии и лучшие практики

  • Большие архивные таблицы с временными диапазонами

    • Для архивов характерны плотные запросы на диапазоны дат. Эффективная зона карт и разумная партиционировка по дате позволяют почти полностью исключить чтение архивных сегментов, не попадающих под критерии времени.
  • Таблицы с высокой кардинальностью и частыми точечными запросами

    • Bloom-фильтры по ключам как оптимизация основных путей доступа: точечные запросы и IN-условия быстро проходят через фильтры, уменьшая размер сканирования.
  • Таблицы с повторяющимися строковыми значениями

    • Dictionary encoding в сочетании с zone maps обеспечивает экономию памяти и ускорение фильтрации по строковым столбцам, особенно когда запрос включает точечное совпадение или диапазон по категориальным значениям.
  • Композитные фильтры и многопутевые запросы

    • Комбинация zone maps и Bloom-фильтров в нескольких столбцах может значительно снизить объем сканируемых данных в запросах с множеством условий. Важно балансировать между количеством фильтров и затратами на их применение.
  • Внедрение в продукционные кластеры

    • Поэтапная апробация на тестовых средах: сначала на отдельных таблицах, затем на сегментах нагрузки, затем на продакшн-данных. В процессе важно фиксировать влияние на задержки и пропускную способность, а также корректировать параметры FPP и партиционирование.
  • Интеграция с BI и эксплуатационные аспекты

    • Эффективное использование индексов тесно связано с инфраструктурной консистентностью и доступностью к BI-слою. Обеспечение согласования параметров индексации с требованиями SLA, частотой обновления данных и режимами репликации - залог устойчивой производительности аналитических сценариев.
  • Риски и ограничения

    • Чрезмерное применение Bloom-фильтров может увеличить память и нагрузку на планировщик. Небольшие, плохо спроектированные наборы Bloom-фильтров могут приводить к меньшему выигрышу или даже к задержкам. Важно тщательно тестировать влияние на реальных сценариях.
  • Интеграции и совместимость

    • В рамках экосистемы Doris индикаторы индексирования тесно связаны с механизмами хранения и планирования запросов. Для внедрения в существующие BI-проекты следует обеспечить совместимость между источниками данных, средствами доступности и мониторинга - включая JDBC/ODBC-слой и интерфейсы администрирования.

       

Key takeaways

  • Doris использует zone maps и Bloom-фильтры как основные механизмы индексации для эффективного доступа к данным, а не традиционные B-деревья.
  • Эффективность индексирования зависит от грамотной архитектуры партиционирования, выбора столбцов под Bloom-фильтры и баланса между точностью фильтров и потреблением памяти.
  • Производительность запросов во многом зависит от качества статистик и согласованности данных внутриTablet-ов, что требует регулярного обновления статистик и мониторинга.
  • Практические сценарии показывают преимущество индексов при диапазонной фильтрации и точечных запросах на столбцах с высокой селективностью.
  • Мониторинг и диагностика индексов должны быть встроены в операционные процессы: отслеживать prune-эффективность, память и влияние на планировщик запросов.
  • Применение индексов должно быть эволюционным: начинать с ключевых столбцов, настраивать по мере изменения нагрузки и данных, регулярно переоценивать параметры.
  • Градиентные улучшения конфигурации требуют тесной кооперации между архитекторами данных, администраторами и бизнес-аналитиками для соблюдения SLA и достижимости целей аналитических workload.

     

FAQ

  1. Что такое zone maps и почему они важны в Doris?

Zone maps - это метаданные, содержащие минимальные и максимальные значения блоков данных в планшете. Они позволяют планировщику запросов пропускать блоки, не удовлетворяющие критериям отбора, тем самым сокращая объем данных, которые нужно прочитать. Это основа эффективной фильтрации в больших аналитических таблицах и одна из главных причин высоких скоростей сканирования в Doris.

 

  1. Как работают Bloom-фильтры в Doris и когда их использовать?

Bloom-фильтры применяются к столбцам, чтобы определить, вероятно ли значение присутствует в наборе данных. Если фильтр говорит "нет", блок не сканируется. Это особенно полезно для столбцов, по которым часто выполняются точечные запросы и IN-условия. При этом нужно внимательно подбирать FPP, чтобы не тратить память на малоэффективные фильтры.

 

  1. Какие столбцы рекомендуется поместить под Bloom-фильтры?

Рекомендуется выбирать столбцы с высокой частотой отбора, высокой селективностью, где запросы часто ограничивают данные по точечным значениям или небольшим наборам значений. Не стоит перегружать Bloom-фильтрами столбцы с низким эффектом или очень высокими ложноположительными сработками, что может привести к перерасходу памяти.

 

  1. Как выбрать параметры Bloom-фильтров, такие как FPP?

Выбор FPP есть баланс клиентской потребности в точности и доступной памяти. Малое значение FPP уменьшает вероятность пропустить данные, но требует большего объема памяти для фильтров. Рекомендуется начинать с умеренного значения (например, 0.01-0.05) и накапливать статистику по рабочим нагрузкам для корректировки.

 

  1. Как партиционирование влияет на индексацию и фильтрацию?

Хорошее партиционирование по критическим столбцам отбора позволяет zone maps исключать целые партиции на раннем этапе. Это существенно уменьшает объем сканирования. Неправильное или слишком грубое партиционирование может снизить эффективность prune и привести к перерасходу ресурсов.

 

  1. Какие метрики следует мониторить для оценки эффективности индексов?

Ключевые метрики включают долю блоков, исключённых зональными картами и Bloom-фильтрами, время отклика на запросы, объём прочитанных данных и память, занятая Bloom-фильтрами. Важно также следить за частотой ложноположительных срабатываний и влиянием фильтров на планировщик.

 

  1. Что делать, если индексы перестали давать прирост производительности?

Проведите аудит партиционирования и распределения данных, оцените выбор столбцов для Bloom-фильтров, проверьте актуальность статистик, соберите новые данные о рабочих нагрузках, протестируйте изменение параметров FPP и пересмотрите стратегию фильтрации. Возможно потребуется перераспределение данных или изменение схемы хранения.

 

  1. Есть ли риски при использовании индексации в Doris?

Основной риск - перерасход памяти на Bloom-фильтры и слишком агрессивная фильтрация, что может увеличить количество ложноположительных срабатываний и снизить точность. Другой риск - неэффективное партиционирование, которое не обеспечивает нужного prune-эффекта. Необходимо регулярно тестировать и корректировать настройки под текущие нагрузки.

 

  1. Как индексы взаимодействуют с планировщиком запросов в Doris?

Индексы влияют на выбор плана выполнения путём раннего prune. Планировщик оценивает, какие блоки и какие партиции стоит считывать на основе zone maps и Bloom-фильтров. Эффективность взаимодействия зависит от актуальности статистик и корректной настройки фильтров.

 

  1. Какие практические шаги можно предпринять для внедрения индексов в продакшн?

Начать с анализа рабочих нагрузок, выбрать 1-2 наиболее критичных столбца для Bloom-фильтров и провести A/B тестирование с различными параметрами FPP. Постепенно расширять зону фильтрации и партиционирование по мере необходимости и по мере роста данных. Включать мониторинг и сбор статистик, чтобы адаптировать параметры под изменяющиеся паттерны запросов.

 

← Предыдущая статья
Материализованные представления и агрегаты: использование и обслуживание
Следующая статья →
Кэширование, буферы и управление памятью

 

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ООО "Интернэшнл Ресторант Брэндс" – это крупнейший франчайзинговый партнер компании Yum! Brands Russia & CIS в России, отвечающий за рост и развитие бренда KFC на территории РФ. На сегодняшний день у компании более 350 ресторанов. Ежедневно в рестораны приходит 200 000+ гостей.

  • Группа компаний «Галакс» ведет свою деятельность с 2005 года, являясь в те годы дистрибьютором известных международных марок в ряде крупнейших торговых сетей России в сегменте аудио и видео аксессуаров. Активно работая в этом направлении и приобретая ценный опыт, начали создавать собственные торговые марки «GAL» и «VIXTER»

  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • AbbVie – компания, которая стремится решить самые серьезные проблемы здравоохранения. Это биофармацевтическая компания, сфокусированная на исследованиях и разработках.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.