Работал ли в команде архитекторов или принимал решения самостоятельно?

Ответ

В моей практике был опыт обоих форматов. На последнем проекте по построению Data Lake я был частью кросс-функциональной команды, где ключевые архитектурные решения принимались совместно с архитекторами данных и платформы. Мы вместе выбирали технологии (например, Delta Lake поверх S3 для хранения, Apache Iceberg для табличного формата) и определяли принципы зонирования данных (Raw, Trusted, Curated).

При этом в рамках своей зоны ответственности я самостоятельно принимал множество решений. Например, для пайплайнов обработки в зоне Trusted я:

  • Выбрал Apache Spark Structured Streaming поверх Apache Kafka для обработки потоковых данных, обосновав выбор производительностью и интеграцией с экосистемой.
  • Спроектировал схему партиционирования данных по дате и региону для оптимизации запросов.
  • Определил стратегию обработки поздних данных (late arrivals) с использованием водяных знаков (watermarking).

Такой подход позволял согласовывать общее видение, но при этом быстро и эффективно решать конкретные инженерные задачи.

Ответ 18+ 🔞

А, ну это же классическая история, как на стройке: архитектор рисует, где какие стены, а ты уже сам решаешь, какой перфоратор в зубы брать и как проводку тянуть, чтобы не пиздануло током.

Вот смотри, был у меня проект по этой вашей Data Lake — озеру данных, блядь. Озеро, ящетаю, должно быть с карасями да удочкой, а тут сплошные терабайты и дельта-форматы. Ну хуй с ним. Так вот, сидели мы там — я, архитекторы данных (ребята, которые думают, куда хуй положить, чтобы красиво было) и платформенные архитекторы (те, кто этот хуй потом держать будут). И вот эта весёлая компания сообща решала глобальные вопросы. Типа, хранилище — S3, сверху Delta Lake, чтобы не протекало, формат таблиц — Iceberg. И зоны поделили: Raw (сырые, как мои утренние мысли), Trusted (уже можно смотреть, не морщась) и Curated (тут уже прямо конфетка, бери и ешь). Всё это, ясное дело, с бесконечными дискуссиями, потому что доверия ебать ноль у каждого к мнению другого.

Но! Как только мне сказали: «Вот тебе зона Trusted, делай там, что хочешь, но чтобы работало» — вот тут началась моя песня. Я уже сам, как большой, решал.

Например, надо было пайплайны для потоковой обработки слепить. Я посмотрел на это всё и подумал: «Э, сабака сука, тут без Spark Structured Streaming и Kafka — нихуя не получится». Обосновал всем, что это ж как швейцарские часы — чётко и со всеми соседями дружит. Меня, конечно, спросили: «А чё не Flink?». А я им: «Да похуй, на Flink, у нас тут экосистема под Spark заточена, не будем выёбываться». Согласились.

Дальше — схема партиционирования. Тут надо мозги включить. Я решил: будем резать данные по дате и региону. Почему? Да потому что потом какие-то пидарасы из бизнеса будут спрашивать: «А покажи нам за вчера по Центральному региону». И чтобы система не ломилась в поисках этой иголки в стоге сена, а сразу в нужный угол заглядывала. Оптимизация, блядь, мать её.

Ну и вишенка на торте — поздние данные. Эти, блядь, запоздалые посылки, которые приплывают, когда все уже разошлись. С ними надо аккуратно, а то в отчётах пиздец начнётся. Вот я и впендюрил стратегию с watermarking — водяными знаками, грубо говоря. Поставил «дедлайн» для данных, а кто опоздал — тот, извини, идёт на отдельную обработку, чтобы основную очередь не задерживать.

И знаешь, в чём прикол? Такой подход — он как раз и работает. Когда общую картину рисуете вместе, а потом каждый на своём участке не страдает хуйнёй, а делает дело — вот тогда и выходит толк. Никто не лезет в мои перфораторы с советами, а я не иду к архитекторам спрашивать, какую отвёртку им в глаз ткнуть. Все при своих интересах и всем ебать колотить как удобно.