Как стать автором
Обновить

Оперативная аналитика в микросервисной архитектуре: п̶о̶н̶я̶т̶ь̶ ̶и̶ ̶п̶р̶о̶с̶т̶и̶т̶ь̶ помочь и подсказать Postgres FDW

Время на прочтение9 мин
Количество просмотров5.4K
Всего голосов 15: ↑14 и ↓1+16
Комментарии9

Комментарии 9

Спасибо за статью! Хотелось бы узнать, как у вас устроен обмен знаниями с командами, которые разрабатывают микросервисы: поля, таблицы и т.д. все это может быстро протухать или изменять свое значение, вчера разрабы хранили статусы как integer, завтра решили вынести это в отдельную табличку. Как в этом хаосе поддерживать аналитику в актуальном состоянии?
Спасибо за интерес! Каждое утро мы проверяем, как изменились схемы каждой конкретной БД. Если появились новые столбцы или новые таблицы, если какие-то столбцы или таблицы исчезли или если у столбцов сменился тип данных, мы рассылаем оповещение со списком изменений команде аналитиков. К счастью, удаления столбцов/таблиц и смена типов происходит не слишком часто и по процессу о них команды должны предупреждать заранее, однако да, случаются и инциденты, когда из-за внезапных изменений что-то в аналитике ломается. В таких случаях оперативно оповещаем и помогаем аналитикам привести все в порядок.
Спасибо за ответ. Следить за изменениями в схеме бд – хорошая история, но кажется, что этого не достаточно, ведь может, например, появился новый тип в строковом поле и в статистику полезут лишние сущности или наоборот окажется недобор оных. И самое страшное при этом, что отчетность не сломается – она просто перестанет отображать реальную картину и через сколько такую ошибку найдет аналитик или бизнес – большой вопрос. Может у вас есть какие-то лайф-чекапы рядом с аналитическими отчетами или вся надежда на коммуникацию?
К сожалению, об изменениях внутри поля сейчас не узнаем. На критически важные сущности, от которых зависит бóльшая часть аналитики, настраиваем отдельные проверки вместе с командой, отвечающей за качество данных. Они, например, помогают следить за изменением динамики каких-то метрик, чтобы улавливать подобные моменты.

Стандартизированного решения для всего массива данных пока нет, если есть какие-то интересные идеи/предложения, с радостью послушаем и обдумаем!
Спасибо было интересно! жду продолжения по джойнам с разных серверов. Много было шишек по этой теме, от настройки серверов БД до построения вьюх.
Спасибо! Обязательно про джойны отдельно распишу. Там есть несколько интересных хаков, которые ускоряют запросы, особенно, если таблицы огромные.
Интересно было бы прочитать трюки с JOIN. Как я понял в FDW нет ничего похожего на распределенный JOIN, как в Hive или Impala. Мы, к сожалению, тоже имели глупость распилить доменку на части и, собирая аналитику, с разных схем тоже пришли к FDW, но не стали мудрить с оптимизацией запросов, а перешли к MATERIALIZED VIEW по типу —
CREATE MATERIALIZED orders_v AS SELECT * FROM orders.orders; 
— добавляем индексов, при этом периодически рефрешим view, ну и перепротягиваем схему если есть изменения. Если таблиц и данных не очень много — то схема рабочая.
Привет! Спасибо за интерес. Про хаки с джойнами собираемся рассказать в следующей статье. Там основная цель — это забирать в RemoteSQL только те данные, которые нужны для джойна. Например, через фильтрацию одной из исходных таблиц по одному из индексов.
Можно было построить полноценное хранилище — мы даже пробовали, но, если честно, так и не удалось подружить достаточно частые изменения в логике с достаточно медленным процессом построения хранилища и внесения в него изменений (если у кого-то получилось, напишите в комментариях как)
Вообще странно, что не получилось… Не очень понимаю в чем суть проблемы — у Вас спринты недельные и нет документирования доработок как класса? Навскидку не назову тех кто имеет норм DWH и появился после старта хайпа микросервисной архитектуры, но явно ведь есть такие.

Но если выбрать правильный инструмент для аналитики — MPP колоночную БД и политическое решение собственников тратиться на качественную аналитику, то проблемы быть не должно. Глядя на Ваш стэк предположу, что пытались на Greenplum сделать хранилище? Бесплатно, но трудозатратно и местами больно.

PS: у нас (телеком с солид переходящим на микросервисы) DWH появилось задолго до хайпа микросервисов и на офигительной Vertica — нет смысла делиться опытом, т.к. изначальные условия разные
Зарегистрируйтесь на Хабре, чтобы оставить комментарий