Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Артемий Козырь. Сибур. Лучшие способы убить производительность аналитической СУБД

GIL
September 19, 2019

Артемий Козырь. Сибур. Лучшие способы убить производительность аналитической СУБД

Вредные советы о лучших способах убить производительность аналитической СУБД.
1. Передавайте много данных по сети.
2. Обрабатывайте лишние объемы данных.
3. Пренебрегайте мониторингом.
4. Никогда не используйте сжатие данных!
5. И, конечно же, забывайте про резервирование

GIL

September 19, 2019
Tweet

More Decks by GIL

Other Decks in Technology

Transcript

  1. Неравномерная загрузка узлов Общая скорость = Скорость bottleneck Что делать?

    •Знай свои данные •Физический дизайн: ключ распределения •Подсказки оптимизатору: статистики, хинты
  2. Передавать много данных по сети • Data locality / Map

    Side Join • Распределение по одинаковому ключу (JOIN, AGGREGATE, ) • Максимально фильтровать данные перед передачей по сети
  3. Обрабатывать лишние объемы данных • Физический дизайн (храним отсортированные данные)

    • Индексы, статистики – читаем только искомые данные • Партиционирование (холодные – теплые - горячие)
  4. Карт-бланш на доступ к ресурсам • Ресурсные пулы (ETL, Analytics,

    BI, ...) • Оптимизация по времени суток и задачам • Отстрел «глупых» запросов
  5. Подвергать OLTP-нагрузке • Накладные расходы на атомарные UPDATE / DELETE

    • Найти нужную строку, перезаписать большой кусок данных • Delete Vectors / Vacuum / Compaction • Ограниченная поддержка транзакций и индексов
  6. Пренебрегать мониторингом • Без мониторинга система превратится в Черный Ящик

    • Без возможности понять, что происходит внутри • Определенные метрики и показатели укажут на корневые причины проблем, а также способы их устранения