Documentation
📚 Вопросы с собеседований
Greenplum вопросы

Вопросы по GreenPlum

Из реальных собеседований (Q/A)

  1. Как вы выбираете distribution key в Greenplum?
  • Если таблица небольшая (до ~100 тыс. строк) и используется как словарь для join, используется REPLICATED.
  • Если это конечная витрина без дальнейших join (фильтрация/отчетность), используется DISTRIBUTED RANDOMLY.
  • Если заранее известны поля группировки, возможна дистрибуция по ним.
  • В большинстве случаев используется DISTRIBUTED BY по ключу join, чтобы минимизировать пересылку данных между сегментами.
  1. Что такое Data Skew?
  • Data Skew (перекос данных) это ситуация, когда на одном сегменте данных сильно больше, чем на других.
  • Запрос выполняется со скоростью самого медленного сегмента, поэтому общая производительность падает.
  1. Какие типы таблиц вы используете в Greenplum?
  • Append Optimized Tables
  • Колоночное хранение
  • Фокус на DWH-нагрузке (без выраженной транзакционной нагрузки)
  1. Когда вы используете replicated таблицы?
  • Когда таблицы выступают в роли словарей (маленькие таблицы, часто используемые в join).
  1. Как реализуется партиционирование таблиц?
  • Чаще всего по дате (по месяцам).
  • При необходимости используются субпартиции по дополнительным признакам.
  1. Использовали ли EXPLAIN / EXPLAIN ANALYZE?
  • Да, для анализа и оптимизации запросов.
  1. Какие методы оптимизации запросов применяли?
  • Разделение сложного запроса на этапы (временные таблицы).
  • Выбор только нужных колонок.
  • Предварительные преобразования данных.
  • Корректная дистрибуция по ключу join.
  • Проверка плана выполнения (EXPLAIN).
  • Контроль отсутствия Nested Loop на больших объемах.
  • Актуализация статистики таблиц.
  1. Какой самый сложный запрос вы писали?
  • Запрос примерно на 1000 строк.
  • Работа с интервальными данными.
  • Использование оконных функций (например, LAG).
  • Задачи типа "поиск островов".
  1. Использовали ли оконные функции, CTE, аналитические функции?
  • Да, использовались:
  • Оконные функции (LAG, ранжирование, агрегирующие).
  • CTE (WITH).
  • Агрегации.
  • Процентили, медиана.
  • Массивные агрегации.

Базовые вопросы

  1. Что такое GreenPlum?
  2. Что такое дистрибуция и какие виды существуют?
  3. Что такое партицирование и какие виды существуют?
  4. Что такое MPP-архитекрута?
  5. Какие индексы существуют в GP?
  6. Какие виды таблиц по хранению данных бывают в GP?
  7. Какими методами можно подлючать внешние таблицы?
  8. Какой порт используется по умолчанию для подключения к БД?