Привет! Сегодня я продолжаю тему сравнения систем и движков массивных параллельных вычислений. В прошлой публикации я раскрыл основные принципы проведения тестирования, которыми руководствуется наша команда, и привел результаты как реальных промышленных сценариев, так и синтетических тестов. Материал вызвал интерес и дискуссию: значит, он актуальный и полезный. Для кого-то факты стали убедительными, а кто-то усомнился в объективности результатов, поэтому, как и было обещано, я делюсь материалами сравнительного тестирования, выполненного по общепринятому стандарту TPC-DS. Сегодня вы узнаете, повлияла ли смена методики на результаты.

Введение

TPC-DS (Transaction Processing Performance Council – Decision Support) — это стандартный отраслевой эталон для измерения производительности систем поддержки принятия решений (Decision Support Systems, DSS). Проще говоря, это тест, который показывает, насколько хорошо та или иная система (например, база данных или платформа для больших данных) справляется со сложными аналитическими запросами в условиях, приближенных к реальным.

Данный стандарт разработан организацией Transaction Processing Performance Council (TPC) для оценки систем, работающих с большими объемами данных и выполняющих комплексные аналитические задачи. TPC-DS моделирует деятельность ритейл компании, включая продажи, запасы и маркетинг, и использует эту модель для генерации набора данных и запросов.

Ключевые характеристики TPC-DS

Реалистичный сценарий: Считается, что TPC-DS имитирует рабочую нагрузку аналитической системы, близкую к реальной. Это делает результаты теста более показательными для оценки поведения систем в промышленной эксплуатации.

Комплексные вариативные запросы: Методика включает 99 различных аналитических SQL-запросов, которые варьируются по сложности. Среди них есть запросы на создание отчетов, интерактивный анализ (OLAP) и задачи так называемого интеллектуального анализа данных (Data Mining). Эти запросы проверяют способность системы обрабатывать объединения таблиц, агрегации и фильтрацию данных.

Большой объем данных: TPC-DS может генерировать наборы данных различного масштаба — от нескольких гигабайт до сотен терабайт, что позволяет тестировать системы под различные настройки стендов с точки зрения адекватности соотношения исходного объема и аппаратных ресурсов экспериментального окружения.

Почему TPC-DS важна?

TPC-DS считается объективным и стандартизированным способом сравнения производительности различных платформ для анализа данных. Большинство поставщиков систем и баз данных используют результаты этого эталона для демонстрации возможностей своих продуктов. Вариативность SQL-запросов, входящих в стандарт, часто позволяет выявить сильные и слабые стороны не только самой системы, но и ее основных функциональных компонентов, таких как оптимизатор запросов, модуль расчета необходимых ресурсов (так называемый estimator) и так далее. Поэтому многие вендоры используют эталоны TPC-DS во внутренних тестах на отдельных запросах, например, прорабатывая стратегии оптимизатора или внося другие изменения в работу движка процессинга.

Чем распространеннее методика и чем большим количеством участников она поддерживается, тем больше она вызывает доверия.

Недостатки методики

Модель данных и характер запросов TPC-DS моделируют деятельность розничной компании, включая продажи, запасы и маркетинг. Именно поэтому некоторые организации, например из области финансов, иногда считают ее неприменимой для себя и разрабатывают собственные подходы. Как раз такой случай и альтернативную методику я описывал в предыдущей статье.

Следующий недостаток, по моему мнению, заключается в том, что стандарт ориентирован больше на сценарии BI, ROLAP, adhoc, небольшой и средний ETL (относительно самого размера данных соответствующего scale-фактора), и меньше — на тяжелый ETL, для которого помимо сложности запроса еще характерна материализация результата работы.

Описание тестового окружения

  • Испытания проводились в Яндекс Облаке

  • Использовались managed-сервисы:

    • S3 Storage

    • Managed Kubernetes, в котором разворачивались compute-движки lakehouse-платформы

  • TPC-DS scale-factor 10000 (~10 ТБ до сжатия)

  • Генерация данных выполнялась через Spark

  • Файловый формат parquet, сжатие ZSTD Compression Ratio 3, табличный формат Iceberg

  • Целевой объем данных в сжатом виде ~2 ТБ

  • Данные были секционированы

  • Версия ядра Impala 4.5

  • Версия ядра Trino 459

Все запросы запускались as is из методики без внесения изменений в текст запроса. Процессинговые движки настраивались на максимальную производительность и максимальную утилизацию всех доступных аппаратных ресурсов. Между разными итерациями система перезапускалась для сброса локального кэширования. Каждым движком индивидуально выполнялся сбор и анализ статистики.

Вычислительные мощности выделялись исходя из принципов, предъявляемых в первой публикации — объем оперативной памяти compute-кластера должен быть кратно меньше объема данных, так как такая ситуация приближена к промышленной эксплуатации. Не будет лишним повторить еще раз: ни в коем случае не доверяйте тестам, в которых объем набора данных сопоставим или меньше объема оперативной памяти.

Для worker-узлов использовалась следующая конфигурация: 32 vCores, 256 ГБ памяти, локальный 100 ГБ SSD-диск для spill и cache операций. Суммарно 4 worker-узла. Суммарное количество compute-ресурсов: 128 vCores, 1024 ГБ памяти. В случае Trino был еще выделенный узел координатора, но мы не будем учитывать его ресурсы. Impala прекрасно работает без выделенного координатора до определенной нагрузки, к которой, к слову, мы в данном тесте не приблизились.

Итерация 1

В первой итерации тестирования запускался однопоточный режим работы, при котором все 99 запросов выполняются последовательно. Результаты такого теста нельзя применять для оценки реальной производительности, но он полезен для первичной «пристрелки», устранения шероховатостей настройки.

Полная таблица со всеми запросами по порядку приведена в конце статьи. Для удобства анализа разобьем запросы на три группы: «Простые запросы», которые исполняются до 10 секунд, «Средние» — от 10 до 100 секунд, «Тяжелые» — работающие свыше 100 секунд.
 

Таблица. Время работы “Простые запросы”

Запрос

Impala, сек

Trino, сек

query12

1

7

query20

1

9

query21

1

2

query41

1

1

query52

1

7

query42

2

6

query55

2

9

query56

2

6

query73

2

6

query83

2

5

query92

2

2

query32

3

4

query40

3

30

query77

3

8

query10

4

7

query58

4

9

query61

4

11

query69

4

7

query8

5

12

query19

6

10

query53

6

14

query68

6

14

query3

7

63

query33

7

7

query89

7

18

query98

7

17

query26

8

21

query30

8

17

query43

8

14

query5

9

92

query60

9

12

query63

9

15

query84

9

12

query90

9

13

query1

10

15

query39

10

12

query49

10

37

query86

10

23

Диаграмма. Сравнительное время работы запросов “простых запросов”. Чем меньше тем лучше.
Диаграмма. Сравнительное время работы запросов “простых запросов”. Чем меньше тем лучше.

Таблица. Запросы “средней сложности”

Запрос

Impala, сек

Trino, сек

query37

11

19

query62

11

31

query66

11

18

query48

12

87

query6

13

10

query15

13

9

query46

13

18

query79

13

25

query25

14

36

query45

14

10

query2

15

57

query80

16

131

query34

17

18

query59

17

108

query13

18

121

query36

18

31

query22

19

27

query7

20

31

query29

20

69

query82

20

37

query17

21

78

query18

21

26

query35

21

18

query71

21

23

query85

21

70

query94

21

30

query81

22

14

query31

26

39

query51

26

30

query70

27

83

query95

30

170

query91

31

4

query27

32

24

query54

32

48

query96

38

15

query99

45

64

query50

47

367

query16

49

69

query38

49

109

query87

50

104

query76

54

124

query44

74

213

query57

75

190

query97

88

147

query74

93

194

Диаграмма. Сравнительное время работы запросов “средней сложности”. Чем меньше тем лучше
Диаграмма. Сравнительное время работы запросов “средней сложности”. Чем меньше тем лучше

 Таблица. “Сложные” запросы.

Запрос

Impala, сек

Trino, сек

query93

102

487

query65

121

137

query28

126

350

query88

126

112

query11

144

357

query47

156

368

query9

170

325

query24

194

497

query75

219

310

query4

262

798

query64

310

203

query72

333

65

query14

416

2778

query78

710

573

query23

1007

3436

query67

1324

878

Диаграмма. Сравнительное время работы “сложных” запросов. Чем меньше тем лучше 
Диаграмма. Сравнительное время работы “сложных” запросов. Чем меньше тем лучше 

Таблица. Оценка эффективности

Impala

Trino

Общее время прохождения теста, сек

~ 2 часа 1 мин

~ 4 часа 17 минут

Стоимость вычислений

918 руб 32 коп

1952 руб 30 коп

Стоимость вычислений определялась по калькулятору Яндекс.Облака как стоимость аренды четырех compute-узлов / 30 дней / 3600 сек * на время длительности теста в секундах. Выделенный координатор Trino в расчете стоимости не учитывался.

Диаграимма. Сравнение времени прохождения всего теста. Все запросы. Чем меньше тем лучше.
Диаграимма. Сравнение времени прохождения всего теста. Все запросы. Чем меньше тем лучше.

Итерация 2

Результаты получены. Можно ли подводить итоги? Конечно, нет. Следуя своим же принципам, мы делаем выводы только на основе сценариев, приближенных к промышленной эксплуатации — конкурентная нагрузка. Для второй итерации мы провели испытания TPC-DS в два потока, которые запускаются одновременно. Потоки и порядок SQL-запросов формировались в соответствии с описанием в методике. Основная идея, заложенная в ней, — запросы в потоках должны запускаться так, чтобы симулировалась работа пользователей, исполняющих разные запросы над различными данными, а не выполнялся один и тот же запрос одновременно, но в нескольких сессиях.

Общее время прохождения теста определялось как разница от начала выполнения теста до времени завершения работы самого последнего запроса в двух потоках обработки. Так как оба движка функционировали в условиях конкурентной нагрузки, то для такой задачи в несколько итераций запуска подбирались оптимальные ресурсные очереди и параметры кластеров, чтобы тест выполнялся минимальное время при отсутствии отказов и падений хотя бы одного запроса из 198. Если регистрировалось падение хотя бы одного запроса, то результат не засчитывался и продолжалась настройка устойчивой конфигурации. Для Trino выполнялась тонкая настройка параметров retry_policy, query_max_total_memory, query_max_memory_per_node, query_max_memory в нескольких итерациях. Вычислительные мощности compute-кластера не изменялись и были такими же, как в испытаниях в 1 поток. Для Impala использовались настройки - mem_limit, mt_dop.

Таблица. Оценка эффективности. 2 потока 

Impala

Trino

Общее время прохождения теста, сек

~ 4 часа 1 минута

~ 11 часов 43 минуты

Стоимость вычислений

1831 руб 44 коп

5350 руб 00 коп

С увеличением нагрузки движки повели себя по разному. У Impala мы наблюдаем деградацию примерно в два раза, Trino же — в 2,7 раза относительно теста в 1 поток.

Итерация 3.

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

Таблица. Оценка эффективности. 4 потока 

Impala

Trino

Общее время прохождения теста, сек

~ 8 часов  11 минут

~ 34 часа 2 минуты

Стоимость вычислений

3736 руб 95 коп

15536 руб 64 коп

Impala деградирует пропорционально нагрузке в 4 раза,  Trino уже в 8 раз.

Диаграмма. Сравнение времени работы при конкурентной нагрузке. Чем меньше тем лучше.
Диаграмма. Сравнение времени работы при конкурентной нагрузке. Чем меньше тем лучше.

Давайте попробуем представить, что наш кластер вычислений должен регламентно выполнять этот объем работы в течение года - ровно 365 запусков по одной итерации раз в день. Какая будет накопленная стоимость вычислений?

Impala

Trino

Стоимость вычислений, руб

1 млн 363 968 руб 75 коп

5 млн 670 873 руб 60 коп

Разница: ~ 4 млн 307 тыс руб. на обработке 10 Тб RAW данных на четырех compute-узлах. Теперь мысленно представьте, какая будет разница если данных будет 100 Тб, а число узлов будет 40.

А что же GreenPlum?

С движками lakehouse-платформы разобрались, теперь дошла очередь и до GreenPlum. Но для начала нам нужно пересобрать стенд, ведь GreenPlum — это традиционная shared-nothing MPP система, размещаемая не поверх объектного хранилища, а на выделенных локальных дисках. Для объективного сравнения, все сервисы lakehouse-системы тоже должны быть размещены без использования облачных сервисов. Так будет честнее и более приближено к реальности on-premise инсталляции. 

Таблица. Аппаратное обеспечение GreenPlum

Тип узла

vCPU

RAM

Disk

Master * 1

16

64

1 SSD * 1,5 Тб

Segment * 4

32

256

4 SSD * 2 Тб 

Total

144

1088

16 SSD Storage layer 

Второй мастер GreenPlum для теста НТ нам не нужен. В расчетах он все равно участия не принимает, а деньги тратит.

Таблица. Аппаратное обеспечение Data Ocean Nova

Тип узла

vCPU

RAM

Disk

MinIO host * 4

8

24

4 * 2 Тб

Worker host * 4

32

256

1 * 100 Гб

Total

152

1120

16 SSD Storage storage layer

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

Data Ocean Nova была установлена на виртуальной инфраструктуре ЯО по схеме decoupled-архитектуры: изолированный кластер S3 на базе MinIO и изолированный compute-кластер, в котором была развернута Impala 4.4.1. Главное, чтобы число и тип дисков, используемых для подсистемы хранения, точно совпадали, и чтобы эти диски были наиболее производительными из всех, которые способен предоставить облачный оператор. GreenPlum был развернут на виртуальных машинах ЯО также с использованием высокопроизводительных дисковых накопителей.

Параметры теста:

  • TPC-DS scale-factor 10000 (~10 Tb несжатых данных)

  • GreenPlum настраивался на максимальную производительность

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

    • Настройка ресурсного менеджмента на конкурентную работу

  • Для Impala данные, как и в предыдущих тестах, были в формате parquet + iceberg с компрессией ZSTD

Условия успешности прохождения теста не менялись: при нагрузке в 1 поток все 99 запросов должны успешно завершиться, при режиме запуска в четыре потока - 396 запросов должны завершиться без ошибок и падений.

Таблица. Результаты тестирования.

Data Ocean Nova Impala 4.4.1 + S3 minio

OSS GreenPlum 6.27.1

1 поток

4 потока

1 поток

4 потока

Время работы, сек

~ 2 часа 8 минут

~ 8 часов 48 минут

~ 13 часов 20 минут

~ 53 часа 20 минут

Стоимость вычислений, руб

2377 руб 44 коп

9798 руб 27 коп

13961 руб 

55846 руб 45 коп

Стоимость вычислений определена по той же методике: стоимость аренды узлов IaaS в Яндекс.Облака (открытый прайс лист) в течение месяца / 30 дней / 24 часа / 3600 сек * длительность расчета сек 

Диаграмма. Сравнение Data Ocean Nova и OSS GreenPlum. Чем меньше тем лучше.
Диаграмма. Сравнение Data Ocean Nova и OSS GreenPlum. Чем меньше тем лучше.
Рис. Графики утилизации ресурсов GreenPlum. TPC-DS 4 потока.
Рис. Графики утилизации ресурсов GreenPlum. TPC-DS 4 потока.

В очередной раз на практике мы убеждаемся, что lakehouse-система Data Ocean Nova, даже с физическим разделением хранения и вычислений, с точки зрения стоимости показывает себя как минимум в 6 раз эффективнее, чем GreenPlum. Перевод производительности в стоимость демонстрирует разницу в стоимости владения такой системой с точки зрения капитальных затрат на оборудование. В реальности различие будет еще выше, так как поддержка и лицензионное обеспечение являются производными от аппаратного сайзинга. Да и эксплуатационные расходы такой системы тоже будут кратно больше. Она ведь и места в ЦОДе занимает значительно больше, и энергопотребление имеет высокое. MPP-системы, работающие по принципу full table scan, к сожалению, безнадежно устарели десятилетие назад.

Теперь давайте сравним по той же методике стоимость вычислений в течение года. Представим, что наш compute-кластер должен регламентно выполнять этот объем работы в течение 12 месяцев — ровно 365 запусков. Какая будет накопленная стоимость вычислений?

Data Ocean Nova / Impala

GreenPlum 6

Стоимость вычислений, руб

3 млн 576 368 руб 55 коп.

20 млн 383 954 руб 25 коп

Разница: ~ 16 млн 807 тыс руб.  

Разница выглядит ощутимо, но что она дает? Можно сэкономить 16.8 млн рублей от общего бюджета  на ФОТ (фонд оплаты труда) на Data-команду всего-то на обработке 10 ТБ данных, и это на маленьком кластере в 4 узла, который позволит получить больший объем функционала и с попаданием в сроки. 

Пользуясь случаем, анонсирую масштабный интересный материал по нагрузочному тестированию GreenPlum 6.X, GreenPlum 7.X и Cloudberry, которое провели мои коллеги, и совсем скоро его опубликуют. Обещаю, что там будет много интересного, например ответ на вопрос — можно ли взбодрить технологию шардированного Postgres, просто добавив новые features вроде BRIN-индекса или подняв версию ядра Postgres.

Какие еще общепринятые методики тестирования есть и стоит ли на них ориентироваться?

Какие другие открытые методики тестирования можно использовать для задачи конкурентного нагрузочного тестирования кроме TPC-DS? Один из вариантов — TPC-H. Но, несмотря на то что методика TPC-H также предназначена для проверки аналитических систем, она имеет ряд недостатков по сравнению с TPC-DS:

  • Более простая модель данных: 

    • Использует простую «звезду» с меньшим количеством таблиц, а не «снежинку», как TPC-DS

  • Ограниченное количество запросов: 

    • Содержит всего 22 запроса, которые, хотя и являются аналитическими, менее сложны и разнообразны по сравнению с TPC-DS

  • Меньшие требования к оптимизатору: 

    • Считается, что TPC-H менее требователен к оптимизатору из-за относительной простоты запросов, поэтому может не в полной мере раскрыть возможности сложных оптимизаторов запросов в современных MPP-системах

В последнее время мне часто встречаются сравнительные результаты тестирования систем и движков по методике ClickBench. Это собственный тест производительности, разработанный командой ClickHouse. Он использует реальный набор данных и относительно простые запросы, характерные для области применения ClickHouse.

ClickBench очень хорош для оценки производительности ClickHouse в сценариях, для которых он изначально создавался — быстрый доступ к данным с фильтрацией и агрегацией в рамках одного объекта. Но тесты ClickBench не рекомендуется использовать для выбора основного движка платформы. На 42 SQL-запроса нет ни одного хотя бы с одним соединением (JOIN)!

Дальнейшие планы по тестированию

Сейчас мы проводим тестирование процессингового движка StarRocks, также входящего в нашу платформу данных Data Ocean Nova. Кроме того, мы планируем провести тестирование и сравнение Spark 4 vs Spark 3.5 и их производительности относительно других MPP SQL-движков lakehouse-платформы в задачах ELT-pipeline.

Дополнительно мы прорабатываем методику объективного нагрузочного тестирования движков в задаче «быстрого доступа к материализованной витрине данных на чтение». Если у вас есть идеи, то предлагайте!

Обращение к читателям и сообществу

Наша команда заинтересована в проведении объективных сравнительных тестирований технологий, которые представлены в нашей платформе данных. Зачастую это наш внутренний соревновательный процесс, а не сравнения с другими решениями, представленными на рынке. Наша задача — предоставить клиенту систему, которая максимально соответствует его ожиданиям по функционалу и производительности, и правильно рассчитать аппаратный сайзинг, который напрямую влияет на стоимость владения системой. Пользователь или владелец платформы данных, выбирая подходящую технологию, должен руководствоваться не только принципом «так удобнее», но и понимать, сколько за «удобство» придется заплатить.

Если вы сомневаетесь в приведенных результатах тестов, обязательно воспроизведите их самостоятельно. Делитесь своими наблюдениями, приглашайте к обсуждению или совместному тестированию. Спасибо, что дочитали.

Телеграм канал Data Sapience

Справка о продукте: 

Data Ocean Nova – универсальная Lakehouse-платформа данных нового поколения, представленная вендором Data Sapience. Продукт решает комплексные задачи массивно-параллельной обработки данных. В том числе позволяет создавать и масштабировать оперативные слои данных в реальном времени, бесшовно работать с CRM- и ML-платформами, предоставлять федеративный доступ к базам данных и выступает в качестве виртуального хранилища. Поддерживает on-premise инсталляцию, частное облако и гибридный сценарий использования, а также Multi-tenant развертывание для создания изолированных сред на базе общей инфраструктуры.

К преимуществам решения относятся: объединение подходов Data Warehouse и Data Lake при реализации аналитического хранилища; лучшая производительность на рынке при сравнительно низкой стоимости владения; возможность не переплачивать за «избыточные» мощности при росте данных или из-за устаревших технологий; низкий порог входа для пользователей и совместимость с прикладными системами, такими как Business Intelligence, MLOps, аналитический CRM, MDX\OLAP, ODBC\JDBC\ADBC клиентские приложения, Data Governance решения; встроенные процессы автоматического обслуживания данных; AI-функционал помощи разработчику и администратору.

Справка о компании: 

Data Sapience — российский вендор, разработчик ИТ-решений для бизнеса. Входит в группу компаний GlowByte. Разработкой продуктов занимается команда с 15-летним опытом работы в консалтинге и с ведущими вендорами. Продукты организации состоят в Реестре отечественного ПО: CM Ocean – платформа CVM-маркетинга; TALYS Ocean – платформа интегрированного управления рисками; Kolmogorov AI — платформа аналитики данных, машинного обучения и MLOps; Data Ocean Governance – платформа управления данными организации; Data Ocean – универсальная Lakehouse-платформа данных.


Приложение

Таблица: Время работы запросов TPC-DS. 1 поток. В соответствии с порядком запроса в методике.

Номер запроса

Время работы Impala, сек

Время работы Trino, сек

Номер запроса

Время работы Impala, сек

Время работы Trino, сек

query1

10

15

query51

26

30

query2

15

57

query52

1

7

query3

7

63

query53

6

14

query4

262

798

query54

32

48

query5

9

92

query55

2

9

query6

13

10

query56

2

6

query7

20

31

query57

75

190

query8

5

12

query58

4

9

query9

170

325

query59

17

108

query10

4

7

query60

9

12

query11

144

357

query61

4

11

query12

1

7

query62

11

31

query13

18

121

query63

9

15

query14

416

2778

query64

310

203

query15

13

9

query65

121

137

query16

49

69

query66

11

18

query17

21

78

query67

1324

878

query18

21

26

query68

6

14

query19

6

10

query69

4

7

query20

1

9

query70

27

83

query21

1

2

query71

21

23

query22

19

27

query72

333

65

query23

1007

3436

query73

2

6

query24

194

497

query74

93

194

query25

14

36

query75

219

310

query26

8

21

query76

54

124

query27

32

24

query77

3

8

query28

126

350

query78

710

573

query29

20

69

query79

13

25

query30

8

17

query80

16

131

query31

26

39

query81

22

14

query32

3

4

query82

20

37

query33

7

7

query83

2

5

query34

17

18

query84

9

12

query35

21

18

query85

21

70

query36

18

31

query86

10

23

query37

11

19

query87

50

104

query38

49

109

query88

126

112

query39

10

12

query89

7

18

query40

3

30

query90

9

13

query41

1

1

query91

31

4

query42

2

6

query92

2

2

query43

8

14

query93

102

487

query44

74

213

query94

21

30

query45

14

10

query95

30

170

query46

13

18

query96

38

15

query47

156

368

query97

88

147

query48

12

87

query98

7

17

query49

10

37

query99

45

64

query50

47

367

-

-

-

Комментарии (4)


  1. miksoft
    25.06.2025 22:22

    • Генерация данных выполнялась через Spark

    Если у вас есть Spark, то что же его в тест не включили?


    1. EvgenyVilkov Автор
      25.06.2025 22:22

      Так написал же что сделаем. И Starrocks и Spark. Все в порядке приоритета. Тестирование даже одного движка занимает достаточно много времени, если делать хорошо. Плюс тестированием каждого движка занимается команда этого движка (с привлечением экспертов из консалтинга), а у нее в приоритете, как правило, продуктовые задачи развития и по многим задачам есть срок контрактных обязательств.

      Когда сделаем, то фактуру все равно общую дадим общего сравнение чтобы все было в "одной табличке"


  1. oneti
    25.06.2025 22:22

    У нас импала в проде, ваша синтетика не валидна. Проблемы импалы

    1 - не шерит памят между воркерами, трино шерит.

    2 - проблема с обновлением метаданных, валит хайв метастор через листерн

    3 - залипают дискрипторы, что приводит к зависанию импалы, нужно каждый день перезагружать

    4 - драйвера ограничены, только от клоудеры

    5 - проблемы с Кириллицей

    6 - из-за того, что не шерит память сильно просидает из-за перекосов

    а у вас какая-то синтетика, в реальности ваши секунды никому не нужны, нужен стабильный движок и трино отлично с этим справляется.


    1. EvgenyVilkov Автор
      25.06.2025 22:22

      У меня для вас плохие новости - у нас не ванильная импала. В ней нет проблем о которых вы пишете. Также как у нас и не ванильный HMS и не ванильный каталог импалы, отсутствуют проблемы с кириллицей и очень много других доработок в том числе с кэшированим (наверное про все доработки нужно сделать отдельную публикацию). Но на результаты конкретно TPC-DS они не влияют. В своих внутренних продуктовых тестах мы в том числе проводим НТ на DDL операции и работу каталога.

      В целом складывается интересная ситуация - я публикую кейсы работы с промышленными данными в ответ получаю - вы все подстроили , покажите TPC-DS. Показываю TPC-DS - это все синтетика в реальности все не так.

      Вы собственно можете верить во все что угодно, но для начала предметного диалога вы можете выложить свое тестирование по TPC-DS в которой ваш Trino пройдет в 2 или 4 потока на указанном объеме ресурсов без падений, и с цифрами близкими к этим, а желательно лучше, а потом можем поговорим про реальность.

      Если вы заметили, то по тексту я заранее предупреждаю что выбор остается за пользователем что ему решать что использовать Impala, Trino, StarRocks или Spark. Есть хорошая область применения и сценарии, где Trino отлично справляется и часть наших клиентов сознательно выбирают этот движок, а Impala даже не устанавливают. Задача поставщика - не рассказывать про серебряную пулю (которой ни является ни Impala, ни Starrocks, ни Trino), а правильно сформировать ожидания, что в некоторых сценариях, придется, например, иметь больше одного кластера Trino (под разные группы нагрузки), или объем оперативной памяти для k8s worker'ов нужен бОльший и тд.

      PS

      Я кстати понимаю, могут быть фантомные боли Impala 2.Х или 3.Х где при очень большой нагрузке (десятки и стони тысяч запросов в сутки) такие проблемы были и остаются тк достаточно много инсталляций CDH и CDP живут в той же РФ без поддержки. Сам через это проходил. Но, даже не внося изменения в код, а делая тонкий тюнинг HMS, делая выделенный координатор или группы координаторов и другие трюки, большинство эксплуатационных проблем решаются в той же 3й версии. Поэтому мне очень интересно будет если вы опишите свой опыт. Вдруг это оракловый BDA с весьма странным выбором под СУБД HMS, странной компоновкой мастер узлов в стойке и тд.