Инжиниринг Данных
23.6K subscribers
2K photos
57 videos
193 files
3.22K links
Делюсь новостями из мира аналитики и карьерными советами.

15 лет в Аналитике и Инжиниринге Данных, 10 лет в MAANG

🛠️ dataengineer.ru | 🏄‍♂️ Surfalytics.com

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
Слышали вы про Shopify? Это такой конструктор интернет магазинов, где есть куча интеграцией. Можно продавать свои продукты, а можно делать drop shipping. Я сам создавал интернет магазины на Wix, WordPress и Shopify. Последний самый дорогой, но и самый приятный.

Сегодня увидел новость про появление Enterprise решений в маркетплейс. То есть это уже другой уровень магазинов и сразу подумал, что им не хватает там приложения data warehouse as a service. То есть пару кликов, и у вас готовые отчёты по вашим данным, и ваши данные живут в моей Redshift или Snowflake. Идея очень старая, и многие продукты так и работают. Но может быть кто-нибудь хочет со мной сделать плагин? Я вот только не по плагинам специалист.
Не думайте, что это только вы обманщик, и у вас симптом самозванца. На другой стороне тоже не пушистые зайчики😵
🔥🔥🔥Давайте поприветствуем подписчика #10000 !!!🎊🎉
Дорогой друг, @kender_T ты как нас нашел?🤗

С ноября 2018 года прошло 3 года почти. Изначально я создал канал для лабы под Snowflake+Tableau workshop на 1м матемаркетинге. Ещё тогда про snowflake никто не знал даже в Канаде. А теперь, у всех по снежинке)))
Все приветики! Накидайте плиз материалы по домашнему обучению детей? А то вдруг путешествовать захотим или еще чего🤪
Очень часто существуют препятствия между аналитиками BI, дата инженерами и бизнес пользователями. Как вы решаете такие проблемы?

Для меня как минимум:
1) Документация проектов (автоматическая! - business data catalog)
2) Еженедельные office hours
3) Ежеквартальные опросы (BI survey как в модуле 3 data learn)
4) Onboarding материалы (лабы, туториалы и видео)

Именно этим сейчас и занимаюсь.
Недавно я общался про дата инженера и Спарк, и меня спросили знаю ли я разницу между multithreading and multiprocessing? А я вот не знаю. Но гугл наверно это услышал и подсунул мне вот такую новость в рекомендации:

https://towardsdatascience.com/multithreading-vs-multiprocessing-in-python-3afeb73e105f
Я бы хотел записать модуль datalearn в Half-Life VR. Пример учителя математики - https://youtu.be/R3g9jrqjOZs
Точно учитель года!
Если вы не работали в Амазон, вы никогда не поймете это сообщение. А все очень просто, в Амазон 2х факторная авторизация и они использую USB/USB-C токены - https://www.yubico.com/products/

Чтобы его активировать, надо дотронуться и он нагенерит такую строку, вот и получается, что в чатах все время такие сообщения выскакивают, если случайно дотронулся🤗
Настолько нехватка Data Engineer в Северной Америке, что Slalom Build решил учить своих. Практически тоже самое, что мы делаем на datalearn, но уже на входе ожидается, что люди знают модуль 1-3 или 1-4, и они обучают облаку и современным тулам.

Вот взяли бы меня директором по data engineering год назад, я бы им помог, но предложили principal data engineer взамен, что было не так интересно.

Последние 3 недели я делал исследование про позицию data engineer. Я пообщался с 20+ компаний в Канаде и Штатах и понял насколько нехватка кадров, просто катастрофическая. Я напишу статью про все эти компании на хабр, про их стек и требования к кандидатам и про то, как важно ценить каждого кандидата и не косячить HR.

Очень часто, когда HR был в процессе, все выходило из под контроля и это только мешало. Самое важное для HR это обратная связь в течение 24ч. Иначе “шеф, все пропало”(с).
Можно узнать какие новы фичи готовит нам индустрия у Snowflake:

SNOWDAY - The View Ahead
Snowflake continues its rapid pace of innovation across the Data Cloud. Join this half-day event to hear the latest advancements and how they enable customers to continuously evolve their business in new ways.


https://www.snowflake.com/snowday/?utm_cta=oracle
Пример 1 SQL Style Guide: https://github.com/haleemur/sql-style-guide
Пример 2 SQL Style Guide: https://gist.github.com/mattmc3/38a85e6a4ca1093816c08d4815fbebfb
Пример PySpark Style Guide: https://github.com/palantir/pyspark-style-guide

Какие есть еще варианты по аналитике?
"Having things explained in class sounds somewhat complicated but after finding out there is a manga explaining about databases it made me feel relieved that databases isn't as stressful than I thought when I started reading this manga. I recommend this book to those who are visual learners"
Сегодня я впервые посвятил день dbt, это результат работы на картинке.

Dbt и Postgres были развернуты в docker, нужно было создать dbt sql модели, чтобы ответить на вопросы и по необходимости использовать зависимости. Все про все заняло почти 7 часов.

Большое спасибо ребята кто пришел в zoom и вы до 1 ночи крутили dbt и docker! День явно прошел не зря!🔥
Вот с такой задачкой столкнулся - опубликовал на Stackoverflow.

Идея проста. Spark умеет делать stream. Но это на самом деле больше microbatch, что вполне подходит.

1. Каждый раз, когда новый JSON файл появляется в Azure Blob Storage он его автоматически загружает в dataframe командой spark.read.
2.Дальше мы можешь его минимально трансформировать.
3. И сохранить уже в наше озеро данных, и в нынешних условиях в формате Delta. Но можно и просто классический parquet.

Я сейчас не буду уходить в подробности, как это работает, но на курса datalearn буду, но не скоро🤪

То есть, мы закидывал все новые данные в одну таблицу в потоке, где у нас данные делают APPEND. Дальше, есть несколько вариантов, как прокидывать эти данные в STAGING таблицы, но при условии, что это тоже APPEND.

(APPEND - значит, добавить строки, другая операция OVERWRITE - полностью перезаписать все.)

Интересный момент начинается, когда мне нужно обновить таблицу фактов. Я уже не смогу сделать простой APPEND, мне нужны исторические данные и новые данные, чтобы посчитать, например WINDOW FUNCTIONS и потом обновить изменения.

В классическом DW, мы я буду брать исторические данные, например за 7 дней, и уже писать логику для MERGE (где решать UPDATE или INSERT). В delta lake есть MERGE тоже, но я боюсь он будет умирать на большом объеме и я не понял как сделать переход от Stream к Batch. Конечно, я буду пробовать разные подходы и смотреть как лучше, но вдруг уже кто-то делал и знает как лучше совершать этот переход?