Size: a a a

2020 February 17

N

Nikolay in Data Engineers
У Авито 200 серверов постгресс и вертика. Вот и весь датавольт
источник

VS

Vladislav 👻 Shishkov in Data Engineers
причем тут сервисные бд?
источник

AZ

Anton Zadorozhniy in Data Engineers
нормализованные модели для детального слоя это нормально (pun intended), я сам делал в России с полдесятка хранилищ (в том числе довольно крупные) на 3NF моделях, одно на DV, вроде все у людей нормально
источник

AZ

Anton Zadorozhniy in Data Engineers
тяжелые витрины частично материализуют конечно, это плата за гибкость
источник

AZ

Anton Zadorozhniy in Data Engineers
с другой стороны есть линейно масштабируемые аналитические СУБД, если что-то медленно - просто докупай узлы, и все будет быстро)
источник

N

Nikolay in Data Engineers
Anton Zadorozhniy
с другой стороны есть линейно масштабируемые аналитические СУБД, если что-то медленно - просто докупай узлы, и все будет быстро)
Какие например ?
источник

AZ

Anton Zadorozhniy in Data Engineers
Nikolay
Какие например ?
Терадата, я слышал, неплохо масштабируется)
источник

OA

Oleksandr Averchenko in Data Engineers
Anton Zadorozhniy
Терадата, я слышал, неплохо масштабируется)
Очень дорогая.
источник

AZ

Anton Zadorozhniy in Data Engineers
но вообще любая МРР СУБД целится в такую задачу, из того с чем я работал - Exadata, Vertica, Redshift, BigQuery - у всех конечно свои особенности и ограничения, но это рабочие решения
источник

AZ

Anton Zadorozhniy in Data Engineers
Oleksandr Averchenko
Очень дорогая.
это все относительно
источник

V

Vasiliy in Data Engineers
Anton Zadorozhniy
с другой стороны есть линейно масштабируемые аналитические СУБД, если что-то медленно - просто докупай узлы, и все будет быстро)
Такой прозрачный намек)
источник

A

Anton Kovalenko in Data Engineers
Nikolay
Какие например ?
+ Greenplum
+ ClickHouse
источник

А

Алексей in Data Engineers
Anton Zadorozhniy
статистика используется оптимизатором, я не очень в курсе текущего состояния вещей (кстати может кто расскажет) но теория тут неплохо изложена https://cwiki.apache.org/confluence/display/Hive/Cost-based+optimization+in+Hive
по доке не очень понял, а есть возможность задать свои значения стоимости для отклика сети, скорости чтения/записи с диска? или используются константы?
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
по доке не очень понял, а есть возможность задать свои значения стоимости для отклика сети, скорости чтения/записи с диска? или используются константы?
это иначе работает, СВО оптимизатор считает относительные стоимости разных планов для вашего запроса и выбирает тот что дешевле, например вы указали одну последовательность джоинов, а он из статистики знает размеры таблиц и кардиналити отношений, и может предложить последовательность которая будет лучше (при условии всех иннер джоинов конечно); также он выбирает тип джоина исходя из размеров и селективности колонок каждой стороны, ну и так дальше; хотя производительность сети,  и дисков может отличаться у разных систем, оптимизатор берет их за константы и оценивает планы «при прочих равных»
источник

А

Алексей in Data Engineers
понятно, спасибо, наверно это уже не столь значимо для выбора плана.
Но стоимость доступа к дискам/сети/озу в идеале тоже хотелось бы задавать для своего кластера, оптимизатор же стоимостный, а не кардинальный)
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
понятно, спасибо, наверно это уже не столь значимо для выбора плана.
Но стоимость доступа к дискам/сети/озу в идеале тоже хотелось бы задавать для своего кластера, оптимизатор же стоимостный, а не кардинальный)
он оценивает относительную стоимость запроса, не абсолютную
источник

AZ

Anton Zadorozhniy in Data Engineers
в общем если у вас тормозит запрос где агрегация без джоинов, или один тривиальный джоин, или наоборот кругом аутер джоины (они не ассоциативны, нельзя переставлять) или джоины по условию отличному от равенства - оптимизатор ничем не поможет
источник

А

Алексей in Data Engineers
понятно что кардинальность важней для выора последовательности, но тип join выбирается из стоимости и "Lr = 4 * NEt" (пример константы из доки на чтение 1 байта с диска) может повлиять на тип соединения: к примеру сделать бродкаст или мерж
источник

AZ

Anton Zadorozhniy in Data Engineers
да, это все влияет, и я думаю что хайв пока берет все за константы или сэмплирует (но это не точно)
источник

AZ

Anton Zadorozhniy in Data Engineers
и хайв же не контролирует свой ввод/вывод, вот посчитал что он стоимость чтения как при потоковом чтении, а система занята и все чтение по скорости стало рандомным, и чего теперь делать? та же история и с сетью, так что я бы, если бы этот кусок писал, вынес все за скобки
источник