О каталоге Greenplum (1)
В сообществах Greenplum обсуждают хабростатью.
Я такой себе Greenplum DBA, но позволю себе небольшой коментарий.
На самом деле, статью надо разбивать на 2 части. Первая про проблему мелких файлов в лейкхаусе, а точнее, мелких объектов в S3, которые генерит любой формат с дельтой. Вторая про проблему распухания каталога в Гринпламе.
В чем суть. Колоночный формат в классической MPP СУБД (Greenplum, Clickhouse, Vertica etc) кладет в файловую систему 1 файлик на каждую колонку каждой таблицы. В случае партиционированной таблицы, это умножается еще и на количество партиций. В случае гринплама сюда же прибавим логические шарды-сегменты, и их зеркала, которые еще умножают число файлов на свой фактор параллелизма. Если таблицы широкие и партиций много, то файликов становится неприлично много. Когда-то кластер от такого начинает страдать.
Конкретно в Гринпламе за этим огромным зоопарком следит такая штука, как системный каталог. Это, по сути, набор индексированных постгресовых таблиц на мастер-сегменте. С помощью этих таблиц сама СУБД узнает, где у нее чего и сколько лежит. И эта же структура используется при планировании пользовательских запросов.
Коллеги описывают ситуацию, когда они делали множество 100-колоночных таблиц и много тысяч партиций к ним. Всего в БД оказывались десятки миллионов объектов и миллиарды строк в каталоге, которые их описывают. Объем служебной информации перевалил за 10 ТБ (!). И надо понимать, что при планировании каждого запроса кластер вынужден лопатить эти 10 ТБ просто для того чтобы понять, какие файлы ему читать для ответа на SQL.
Ситуация слегка доведена до абсурда, но весьма поучительная. Если вы эксплуатируете большой Greenplum, то каталог, его объем и его здоровье становятся одной из ваших главных головных болей.
Продолжение
В сообществах Greenplum обсуждают хабростатью.
Я такой себе Greenplum DBA, но позволю себе небольшой коментарий.
На самом деле, статью надо разбивать на 2 части. Первая про проблему мелких файлов в лейкхаусе, а точнее, мелких объектов в S3, которые генерит любой формат с дельтой. Вторая про проблему распухания каталога в Гринпламе.
В чем суть. Колоночный формат в классической MPP СУБД (Greenplum, Clickhouse, Vertica etc) кладет в файловую систему 1 файлик на каждую колонку каждой таблицы. В случае партиционированной таблицы, это умножается еще и на количество партиций. В случае гринплама сюда же прибавим логические шарды-сегменты, и их зеркала, которые еще умножают число файлов на свой фактор параллелизма. Если таблицы широкие и партиций много, то файликов становится неприлично много. Когда-то кластер от такого начинает страдать.
Конкретно в Гринпламе за этим огромным зоопарком следит такая штука, как системный каталог. Это, по сути, набор индексированных постгресовых таблиц на мастер-сегменте. С помощью этих таблиц сама СУБД узнает, где у нее чего и сколько лежит. И эта же структура используется при планировании пользовательских запросов.
Коллеги описывают ситуацию, когда они делали множество 100-колоночных таблиц и много тысяч партиций к ним. Всего в БД оказывались десятки миллионов объектов и миллиарды строк в каталоге, которые их описывают. Объем служебной информации перевалил за 10 ТБ (!). И надо понимать, что при планировании каждого запроса кластер вынужден лопатить эти 10 ТБ просто для того чтобы понять, какие файлы ему читать для ответа на SQL.
Ситуация слегка доведена до абсурда, но весьма поучительная. Если вы эксплуатируете большой Greenplum, то каталог, его объем и его здоровье становятся одной из ваших главных головных болей.
Продолжение
Хабр
Проблема маленьких файлов. Оценка замедления S3 и проблем HDFS и Greenplum при работе c ними
Не так давно в блоге компании Arenadata был опубликован материал тестирования поведения различных распределенных файловых систем при работе с маленькими файлами (~2 Мб). Краткий вывод: по результатам...
👍6✍4💯4 2🔥1🤓1
О каталоге Greenplum (2)
Начало
Какая мораль у этой статьи про распухшие каталоги Гринплама.
Следите, следите и еще раз следите за вашим каталогом!
Бытовые рекомендации.
1️⃣ Объем pg_catalog и его динамику - на мониторинг если еще не.
2️⃣ Не жестите с параллелизмом сегментов. 2-3 праймари на большую ВМ или даже железный сегмент-сервер вполне ОК. Эта же рекомендация поможет легко проглатывать пики параллелизма нагрузки и упростит настройку ресурсных групп.
3️⃣ Не жестите с партициями. Схлопнуть где-то партиции с дня до месяца - это нормально и оправдано. Проще где-то поднять лишние данные с дисков сегментов в некоторых запросах, чем нагружать каталог на мастере, который нужен при вообще каждом запросе
4️⃣ Вакуум таблиц каталога - первейшая задача. А также реиндексы и т.д. Это тяжелая операция, которая блокирует кластер, поэтому многие ее не делают - неудобно и пользователи негодуют. Но надо!
5️⃣ ETL, где по любому чиху работают с партициями на удаление/замену, сильно нагружает каталог. pg_attribute все еще постгресовая таблица, подверженная блоату и расдуванию индеков. А вы из нее удаляете-добавляете строки сотнями на каждый чих. Просто сделайте Trucate insert и не мучайте беднягу. То же с созданием и удалением различных временных объектов.
6️⃣ Мелкие таблицы проще сделать строчными, а не колоночными. То же и со временными. Будет одна запись на таблицу, а не на колонку таблицы.
Начало
Какая мораль у этой статьи про распухшие каталоги Гринплама.
Следите, следите и еще раз следите за вашим каталогом!
Бытовые рекомендации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Архитектор Данных
О каталоге Greenplum (1)
В сообществах Greenplum обсуждают хабростатью.
Я такой себе Greenplum DBA, но позволю себе небольшой коментарий.
На самом деле, статью надо разбивать на 2 части. Первая про проблему мелких файлов в лейкхаусе, а точнее, мелких…
В сообществах Greenplum обсуждают хабростатью.
Я такой себе Greenplum DBA, но позволю себе небольшой коментарий.
На самом деле, статью надо разбивать на 2 части. Первая про проблему мелких файлов в лейкхаусе, а точнее, мелких…
👍10✍4 2❤1🔥1
О каталоге Greenplum (3)
Насколько реально может распухать количество файлов. Пример относительно небольшого облачного кластера на 8 ТБ полезных сжатых данных и 48 сегментов.
Без малого 100 млн. файлов!
О каталоге данных
Первая часть
Вторая часть
Насколько реально может распухать количество файлов. Пример относительно небольшого облачного кластера на 8 ТБ полезных сжатых данных и 48 сегментов.
Без малого 100 млн. файлов!
О каталоге данных
Первая часть
Вторая часть
👍6🔥4 3
При написании материалов и статей
Anonymous Poll
68%
Greenplum, Iceberg, Lakehouse
2%
Гринплам, Айсберг, Лейкхаус
31%
Да все равно
❤5😁4🤔2👌1🐳1
Приветствую всех новоприбывших! Спасибо что присоединились!
В предыдущих сериях про Лейкхаус или плейлист полезных видео.
Первое. Вебинар о плюсах подхода лейкхауса + воркшоп как поднять Iceberg + Trino в облаке. Несколько устарел, так как добавилось много новых фич, но суть осталась.
https://vkvideo.ru/video-164978780_456239621
Второе. Беседа о платформах данных с Вадимом Беловым - руководителем дата платформы Х5.
https://vkvideo.ru/video-228742675_456239026
Третье. Беседа с Алексеем Рыбаком, devhands.io.
https://vkvideo.ru/video-228742675_456239027
Четвертое. Доклад на Открытых Системах 2025 - «Лейкхаус: от хайпа до эксплуатации»
https://vkvideo.ru/video-228742675_456239024
Пятое - в среду 3 сентября залезем под капот айсбергу и посмотрим, как он сделан и почему о нем столько говорят.
Подпишитесь на канал - все записи вебинаров будут тут, если не сможете посмотреть в онлайне.
Также (я узнал) до сих пор работает заявочная на бонус для тестов облачного лейкхауса от ВК. Можно получить довольно много кредитов на тесты
https://cloud.vk.com/promopage/vk-data-lakehouse/
В предыдущих сериях про Лейкхаус или плейлист полезных видео.
Первое. Вебинар о плюсах подхода лейкхауса + воркшоп как поднять Iceberg + Trino в облаке. Несколько устарел, так как добавилось много новых фич, но суть осталась.
https://vkvideo.ru/video-164978780_456239621
Второе. Беседа о платформах данных с Вадимом Беловым - руководителем дата платформы Х5.
https://vkvideo.ru/video-228742675_456239026
Третье. Беседа с Алексеем Рыбаком, devhands.io.
https://vkvideo.ru/video-228742675_456239027
Четвертое. Доклад на Открытых Системах 2025 - «Лейкхаус: от хайпа до эксплуатации»
https://vkvideo.ru/video-228742675_456239024
Пятое - в среду 3 сентября залезем под капот айсбергу и посмотрим, как он сделан и почему о нем столько говорят.
Подпишитесь на канал - все записи вебинаров будут тут, если не сможете посмотреть в онлайне.
Также (я узнал) до сих пор работает заявочная на бонус для тестов облачного лейкхауса от ВК. Можно получить довольно много кредитов на тесты
https://cloud.vk.com/promopage/vk-data-lakehouse/
VK Видео
Поднимаем Data Lakehouse на основе Trino в облаке
11 февраля в 17:00 на вебинаре мы разберём, что такое Data Lakehouse и как эта архитектура объединит преимущества Data Lake и Data Warehouse, упрощая управление, хранения и анализ данных из различных источников в одном месте. Покажем, как новый облачный сервис…
🔥15👍6❤3👌2😎2
Комичусь
Никогда в этом канале не появится текста, сгенерированного нейронкой.
Признаюсь, в эпоху нейросетей я отчаянный ретроград. Не подумайте, нейросетями я пользуюсь активно и постоянно, но по большей части по узким техническим вопросам. Или грубо, как замену Google и Stack Overflow.
Но вот написание текстов я точно никогда не делегирую никаким нейро.
Большинство текстов я пишу сначала в блокноте от руки. Давно заметил, что этот метод хоть и долгий, но достигает нескольких положительных эффектов. Например, когда смотришь на текст на бумаге, яснее видишь его структуру. Написанное превращается из одномерного полотна в некую схему или канвас (скатерть). Не знаю, как объяснить точнее, но эффект словно переложишь сухое описание чего-то на Miro, draw.io или что-то подобное. Мы ведь не просто так пользуемся именно двумерными архитектурными схемами - наш мозг устроен так, что лучше воспринимает информацию именно в объемной форме.
Второй эффект - неизбежное переписывание. Так как никому не интересны мои каракули, то в какой-то момент надо сесть и переписать текст в электронную форму. А переписывание это неизбежная переделка и переосмысление. И вдруг ты видишь, что в тексте, который еще вчера считал идеальным, вторая глава не соответствует десятой, в процессе доказательства тезиса ты ушел в какое-то ненужное отступление, а переход от четвертой главы в пятую вообще неочевидный. Сразу помечаешь узкие места.
Ну и третий эффект - больше половины написанного вообще не стоит публикации. Вот просто взять и удалить.
На выходе получается долго, но пусть лучше я напишу меньше слов, но больше смысла.
Никогда в этом канале не появится текста, сгенерированного нейронкой.
Признаюсь, в эпоху нейросетей я отчаянный ретроград. Не подумайте, нейросетями я пользуюсь активно и постоянно, но по большей части по узким техническим вопросам. Или грубо, как замену Google и Stack Overflow.
Но вот написание текстов я точно никогда не делегирую никаким нейро.
Большинство текстов я пишу сначала в блокноте от руки. Давно заметил, что этот метод хоть и долгий, но достигает нескольких положительных эффектов. Например, когда смотришь на текст на бумаге, яснее видишь его структуру. Написанное превращается из одномерного полотна в некую схему или канвас (скатерть). Не знаю, как объяснить точнее, но эффект словно переложишь сухое описание чего-то на Miro, draw.io или что-то подобное. Мы ведь не просто так пользуемся именно двумерными архитектурными схемами - наш мозг устроен так, что лучше воспринимает информацию именно в объемной форме.
Второй эффект - неизбежное переписывание. Так как никому не интересны мои каракули, то в какой-то момент надо сесть и переписать текст в электронную форму. А переписывание это неизбежная переделка и переосмысление. И вдруг ты видишь, что в тексте, который еще вчера считал идеальным, вторая глава не соответствует десятой, в процессе доказательства тезиса ты ушел в какое-то ненужное отступление, а переход от четвертой главы в пятую вообще неочевидный. Сразу помечаешь узкие места.
Ну и третий эффект - больше половины написанного вообще не стоит публикации. Вот просто взять и удалить.
На выходе получается долго, но пусть лучше я напишу меньше слов, но больше смысла.
2👍33💯15❤🔥8⚡4
Архитектор Данных pinned «Приветствую всех новоприбывших! Спасибо что присоединились! В предыдущих сериях про Лейкхаус или плейлист полезных видео. Первое. Вебинар о плюсах подхода лейкхауса + воркшоп как поднять Iceberg + Trino в облаке. Несколько устарел, так как добавилось много…»
Last Call
Записываемся на трансляцию вебинара по Айсберг!
Задаем интересующие вас вопросы в посте 👆
До встречи на трансляции или в записи!
Записываемся на трансляцию вебинара по Айсберг!
Задаем интересующие вас вопросы в посте 👆
До встречи на трансляции или в записи!
5👍8❤1 1
MPP подход к DLH против DataLake
Тут как. По сути есть 2 подхода к Лейкхаусу
1. Со стороны MPP - взять готовую транзакционную машину и привести ее к хранению данных отдельно от движка в S3/HDFS. Потом придумать переиспользование этих же данных другими кластерами и другими движками.
2. Со стороны Лейка - взять (почти) готовое разделение Compute-Storage и привети к транзакционной машине.
Первый подход делают в Яндексе и Cloudberry c Гринпламом. Не сказать чтоб без успеха, но пока не довели. Doris идет тем же путем.
Второй подход реализовали быстрее. Я связываю это с тем, что в лейковом сценарии уже было много готового.
- уже распределенные движки Spark, Flink, Trino, которые приспособлены к работе отделенными от себя данными
- уже реализованный принцип один датасет + много разных движков чтения. В Хадупе так работает уже десяток лет.
То есть Лейк оказался архитектурно сильно ближе к лейкхаусному сценарию.
МРР слишком заперт в архитектуре классических БД, из которых они эволюционно возникли. Там надо побороть жесткое шардирование, там все расчитано, что с файлами можно работать на уровне блочки - в любой момент в любое место дописать или переписать.
По итогу - даже запишет Greenplum в S3 данные через драйвер-враппер (Yezzey). Как потом это прочитает другой кластер гринплмам, у которого другое число сегментов? И получился вроде и лейк, но в то же время это просто МРР с одной вынесенной куда-то таблицей, от которой другим чтецам пользы никакой.
А сдвинуть МРР с этой точки это переписать само ядро так что это будет уже что-то совсем другое. Долгий путь.
Тут как. По сути есть 2 подхода к Лейкхаусу
1. Со стороны MPP - взять готовую транзакционную машину и привести ее к хранению данных отдельно от движка в S3/HDFS. Потом придумать переиспользование этих же данных другими кластерами и другими движками.
2. Со стороны Лейка - взять (почти) готовое разделение Compute-Storage и привети к транзакционной машине.
Первый подход делают в Яндексе и Cloudberry c Гринпламом. Не сказать чтоб без успеха, но пока не довели. Doris идет тем же путем.
Второй подход реализовали быстрее. Я связываю это с тем, что в лейковом сценарии уже было много готового.
- уже распределенные движки Spark, Flink, Trino, которые приспособлены к работе отделенными от себя данными
- уже реализованный принцип один датасет + много разных движков чтения. В Хадупе так работает уже десяток лет.
То есть Лейк оказался архитектурно сильно ближе к лейкхаусному сценарию.
МРР слишком заперт в архитектуре классических БД, из которых они эволюционно возникли. Там надо побороть жесткое шардирование, там все расчитано, что с файлами можно работать на уровне блочки - в любой момент в любое место дописать или переписать.
По итогу - даже запишет Greenplum в S3 данные через драйвер-враппер (Yezzey). Как потом это прочитает другой кластер гринплмам, у которого другое число сегментов? И получился вроде и лейк, но в то же время это просто МРР с одной вынесенной куда-то таблицей, от которой другим чтецам пользы никакой.
А сдвинуть МРР с этой точки это переписать само ядро так что это будет уже что-то совсем другое. Долгий путь.
👍14 7❤1
Вот есть вайб-кодинг.
А есть ли вайб-администрирование СУБД?
Которое переходит в вайб продолбанный SLA и вайб восстановление из бекапа
А есть ли вайб-администрирование СУБД?
😁19💯5👍4
Forwarded from Get Rejected
Так, ребята важный вопрос по SQL:
Запятые после слова в select'e или до слова?
До слова: ,a1 ,a2 ,a3 После слова: a1, a2, a3,
Запятые после слова в select'e или до слова?
До слова: ,a1 ,a2 ,a3 После слова: a1, a2, a3,
Anonymous Poll
27%
До слова
68%
После слова
5%
Не пишу SQL
Forwarded from Get Rejected
Пример:
До слова:
Select a1
,a2
,a3
,a4
После слова:
Select a1,
a2,
A3,
A4
До слова:
Select a1
,a2
,a3
,a4
После слова:
Select a1,
a2,
A3,
A4
Get Rejected
Пример: До слова: Select a1 ,a2 ,a3 ,a4 После слова: Select a1, a2, A3, A4
До слова (первый вариант) потому что последнее поле надо будет закоментить с большей вероятностью чем первое.
А во втором случае запрос развалится если я вставлю — в четвертой строке
А во втором случае запрос развалится если я вставлю — в четвертой строке
👍10💯8🔥2
Архитектор Данных
LLM over BI - надо ли? Тут Дима Аношин пишет про замену классического Business Intelligence на бездушного бота в слаке. Взлетит ли, если все хотят работать с живым ламповым аналитиком из мяса и костей? А принцип простой - Такси и общественный транспорт.…
Продолжая аналогию BI с такси
Мечты о беспилотном ETL это примерно то же что мечты о беспилотном такси. Вот был бы общественный транспорт по цене кастома - стало б хорошо.
И вроде бы, даже что делать понятно, и задача не кажется космически сложной.
Но как-то все не клеится.
Мечты о беспилотном ETL это примерно то же что мечты о беспилотном такси. Вот был бы общественный транспорт по цене кастома - стало б хорошо.
И вроде бы, даже что делать понятно, и задача не кажется космически сложной.
Но как-то все не клеится.
👍5😁3🤔1
Архитектор Данных
Продолжая аналогию BI с такси Мечты о беспилотном ETL это примерно то же что мечты о беспилотном такси. Вот был бы общественный транспорт по цене кастома - стало б хорошо. И вроде бы, даже что делать понятно, и задача не кажется космически сложной. Но…
Все так, Кирилл!
Так и аналитика может быть имиджевой "карманной" функцией высокого менеджера в крупной компании. Вот у него есть личная группа очень умных аналитиков для лично его задач и консалтинга.
Такой аналитик - что-то среднее между консильери у дона мафии (влияние без власти) и эскортом (похвастаться тобой).
Тоже пусть карьеры 😎
Так и аналитика может быть имиджевой "карманной" функцией высокого менеджера в крупной компании. Вот у него есть личная группа очень умных аналитиков для лично его задач и консалтинга.
Такой аналитик - что-то среднее между консильери у дона мафии (влияние без власти) и эскортом (похвастаться тобой).
Тоже пусть карьеры 😎
😁10❤1🔥1
Инсайты из рассказа Дмитрия Реймана (Авито) о Трино
Доклад: Trino 2 года спустя
Инсталляция
1️⃣ 2 года назад начата миграция из Вертики в Трино
2️⃣ Разделение Compute - Storage на сервисах Trino + Ceph. Суммарно 15 кластеров Трино
3️⃣ Данные поднимаются по протоколу S3 из Ceph. Формат данных ORC.
4️⃣ Канал: теоретический пик 80 Гбайт/сек, реально достижимое значение 40 Гбайт/сек. В один запрос может разогнаться до 10 ГБайт/сек.
5️⃣ Все новое создается в Trino уже сейчас.
6️⃣ Нагрузка 50/50 Vertica / Trino
7️⃣ Нагрузка от Trino в сторону Ceph - топ-1 из всех потребителей Ceph. Не все цефовцы это любят.
8️⃣ Потребовалась конфигурация Ceph с выносом метаданных на NVMe диски
Нагрузка
1️⃣ 300 потребителей Ad-Hoc
2️⃣ 1 ПБ / день обрабатывается в Трино
3️⃣ Свой оркестратор на 100к+ задач в день
Советы
1️⃣ Всем кто строит Лейкхаус обязательно провести нагрузочный тест на Troughput от вычисления до хранения.
2️⃣ (ТОП СОВЕТ) В архитектуре ETL действует правило - максимальная длина джоба = 1 час
3️⃣ (ТОП СОВЕТ) Также в архитектуре любого потребителя данных DWH - обязательный retry.
4️⃣ Pandas to_sql - боль 🙂
Trino
1️⃣ Голое Trino - не воин. Придется развернуть или дописать многое вокруг.
2️⃣ fs.cache.enabled = true - включение локальных кешей в Трино (с 439 версии).
3️⃣ Hive Metastore хоть и легаси, но используется для больших данных. Iceberg для относительно маленьких потребителей, где важна консистентность. Hive движок для Trino как будто чуть более оптимизирован по сравнению с Iceberg. Hive любит делать лишние листинги в объектный Storage, когда оно не нужно, что убивает S3.
4️⃣ SDK Trino очень развитый. Авито используют для написания собственных движков чтения SQL. Также можно написать свои обертки для API, специфических БД в таблицы.
5️⃣ ETL / ELT в Trino для 6NF (!) - ок! По крайней мере не хуже Вертики.
6️⃣ Написали свой Trino Catalog для метаданных
7️⃣ Иногда падает Трино Координатор. Но быстро восстанавливается, так как Stateless
Доклад тут
Доклад: Trino 2 года спустя
Инсталляция
Нагрузка
Советы
Trino
Доклад тут
Please open Telegram to view this post
VIEW IN TELEGRAM
VK Видео
Аналитическая экосистема на основе Trino в Avito, архитектура и возможности CedrusData Catalog
Как за последние два года Avito выстроил аналитическую экосистему вокруг Trino. Внутреннее устройство и возможности CedrusData Catalog — современного бесплатного каталога для lakehouse-платформ. Митап организован компанией Querify Labs, разрабатывающей аналитическую…
⚡10❤7👍4 4