Forwarded from БАШНЯ
HARD SKILLS🫥
Сегодня разбираем реальный кейс о том, как один файл и смена инфраструктуры положили Nexus и остановили релизы👩💻
Делитесь этим постом с друзьями и пишите свои вопросы в комментарии✍️
Автор поста: @data_engineerette
#hardskills
Сегодня разбираем реальный кейс о том, как один файл и смена инфраструктуры положили Nexus и остановили релизы
Делитесь этим постом с друзьями и пишите свои вопросы в комментарии
Автор поста: @data_engineerette
#hardskills
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍13 5😭1
IPv4 vs IPv6
👀 Я раньше очень часто смотрела на таблицу с событиями пользователей из яндекс метрики. Там были столбцы ClientIP и ClientIP6:
ClientIP - IPv4 с которого было установлено TCP соединение с сервером
ClientIP6 - IPv6 с которого было установлено TCP соединение с сервером
Причем ClientIP6 никогда не было заполнено. И я все время задумывалась: а что там вообще должно лежать?
👩💻 И вот недавно я собиралась поиграть с европейскими ребятками. Они подняли свой собственный сервер, чтобы пинг был меньше. Скинули мне примерно такую ссылочку:
http://[2a02:8071:78f1:e662:416d:f389:ff96:442e]:8080/
Я в первый раз увидела, что такое IPv6 на самом деле)
Оказалось, что на их стороне роутером не поддерживается IPv4, а на моей стороне провайдером не поддерживается IPv6
🌎 Нашла интересную карту, где показано, что в США, Европе показатель доступности около 60%, Саудовская Аравия и Индия под 80%, пока у нас всего 3%. Представляете?
https://stats.labs.apnic.net/ipv6/
Google показывает 9%, но складывается примерно такая же картина:
https://www.google.com/intl/en/ipv6/statistics.html
@data_engineerette
ClientIP - IPv4 с которого было установлено TCP соединение с сервером
ClientIP6 - IPv6 с которого было установлено TCP соединение с сервером
Причем ClientIP6 никогда не было заполнено. И я все время задумывалась: а что там вообще должно лежать?
http://[2a02:8071:78f1:e662:416d:f389:ff96:442e]:8080/
Я в первый раз увидела, что такое IPv6 на самом деле)
Оказалось, что на их стороне роутером не поддерживается IPv4, а на моей стороне провайдером не поддерживается IPv6
https://stats.labs.apnic.net/ipv6/
Google показывает 9%, но складывается примерно такая же картина:
https://www.google.com/intl/en/ipv6/statistics.html
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
😭14👍7❤2
Никогда не ешьте в одиночку и другие правила нетворкинга
🤓 Я увидела эту книгу в рекомендациях, заинтриговало название, но как будто она вообще не про нашу жизнь) Она про конец 20го века, Америку и ведение бизнеса
Кратко вот так:
📌 составить список будущих контактов
📌 познакомиться с ними
📌 периодически им всем звонить и приглашать на встречи
📌 быть оргом
📌 создать личный бренд и сообщество
📌 вертеться возле денег и в кругах сильных этого мира
В книге есть главное противоречие: автор сначала говорит, почему нужно бескорыстно помогать людям и не стремиться к крупной сделке, а потом - как знакомиться с людьми, которые помогут заключить эту самую крупную сделку
😧 А это уже совсем cringe moment: звонить людям на автоответчик во внерабочее время, чтобы не тратить время на общение, но в то же время напомнить о себе. «Если ты не хочешь разговаривать, зачем звонить?» - моя мама
Но я все-таки процитирую и прокомментирую некоторые мысли, которые мне понравились и которые хоть как-то можно привязать к нам
Про "силу слабых связей"
Сильные связи - это наши близкие друзья, родственники. И они посещают одни и те же места, как и мы, а слабые связи общаются с совершенно другими людьми
Про деньги
Тут вспоминается конкуренция на позицию джуна де. А ведь если этот кто-то не нашелся, значит, это вы?
Мама мне говорила то же самое) Чтобы я занялась репетиторством, потому что хорошо учусь, или преподавала сольфеджио, потому что хорошо получается, или фоткала свадьбы, потому что увлекаюсь фотографией. Но в этом мире существуют же хобби?
Про знакомства
Я недавно задумалась, что пора бы уже выучить пару анекдотов на русском и английском, подготовить смешную историю из своей жизни и топ-3 интересных факта о себе. Пока в этом списке (по моему мнению) - я участвовала в постановке оперы «Турандот» в гвардии принцессы. Норм для факта?
По сути это как выйти замуж за айтишника-тимлида или за айтишника-джуна, но с потенциалом
Про лайфхаки
1️⃣ Клонировать события - если есть люди, с которыми нужно встретиться, но время ограничено, то можно их всех пригласить в одно место, чтобы еще и познакомить их друг с другом. А еще кого-то пригласить пораньше, а с кем-то задержаться. По-моему, это гениально
2️⃣ Понравилась идея при знакомствах спрашивать любимый трек и пополнять свой плейлист
3️⃣ Говорить людям, что с ними очень приятно общаться
@data_engineerette
Кратко вот так:
В книге есть главное противоречие: автор сначала говорит, почему нужно бескорыстно помогать людям и не стремиться к крупной сделке, а потом - как знакомиться с людьми, которые помогут заключить эту самую крупную сделку
Но я все-таки процитирую и прокомментирую некоторые мысли, которые мне понравились и которые хоть как-то можно привязать к нам
Про "силу слабых связей"
Сильные связи - это наши близкие друзья, родственники. И они посещают одни и те же места, как и мы, а слабые связи общаются с совершенно другими людьми
Про деньги
Если то, что вы делаете, могут сделать многие, то обязательно найдется кто-то, кто готов будет сделать это за меньшую плату
Тут вспоминается конкуренция на позицию джуна де. А ведь если этот кто-то не нашелся, значит, это вы?
Творчество бесполезно, если от него нет практической отдачи. Постоянно думайте о том, каким образом это поможет заработать побольше денег
Мама мне говорила то же самое) Чтобы я занялась репетиторством, потому что хорошо учусь, или преподавала сольфеджио, потому что хорошо получается, или фоткала свадьбы, потому что увлекаюсь фотографией. Но в этом мире существуют же хобби?
Про знакомства
Знакомясь с новым человеком, будьте готовы ему что-то рассказать. Все, что вы прочли и узнали в своей жизни, ничего не значит, если люди не считают вас интересным собеседником
Я недавно задумалась, что пора бы уже выучить пару анекдотов на русском и английском, подготовить смешную историю из своей жизни и топ-3 интересных факта о себе. Пока в этом списке (по моему мнению) - я участвовала в постановке оперы «Турандот» в гвардии принцессы. Норм для факта?
Не гоняйтесь за лидерами. Лучше попробуйте найти лидеров завтрашнего дня
По сути это как выйти замуж за айтишника-тимлида или за айтишника-джуна, но с потенциалом
Про лайфхаки
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17 8💅4👍3
Подъехала задачка!
На картинке a, b - исходные таблицы, res - итоговая
Нужно написать один запрос, который вернет нужный результат в обоих случаях
@data_engineerette
На картинке a, b - исходные таблицы, res - итоговая
Нужно написать один запрос, который вернет нужный результат в обоих случаях
@data_engineerette
🔥11❤3🌚2💅1
Худшие фейлы в DE
Наткнулась на тред в реддите, где обсуждались фейлы на работе. Мне больше всего зашли 2 истории, они такие смешные и страшные одновременно🤯
1️⃣ Стриминг писал в то же самое место, откуда и читал. Это все длилось год, поэтому накопилось сотни триллионов миллиардов версий документов. Проблема обнаружилась, только когда к ним пришел AWS и пожаловался на проблемы в своих системах
Неужели за этот год они не заметили, как эти пайплайны работают все медленнее и медленнее, почему такая высокая нагрузка и что в таблицах кучи дублей?
2️⃣ DE понизил уровень логирования до DEBUG, и это привело к расходам в 100к долларов за неделю
Кажется, теперь я знаю способ, как можно уменьшить расходы компании. Ничего не логировать😁
💰 Мы сейчас тоже переходим в эру FinOps. Будем пугать аналитиков, чтобы писали оптимальные запросы 😁
А у вас было что-то супер серьезное?
Ссылка на тред
@data_engineerette
Наткнулась на тред в реддите, где обсуждались фейлы на работе. Мне больше всего зашли 2 истории, они такие смешные и страшные одновременно
Неужели за этот год они не заметили, как эти пайплайны работают все медленнее и медленнее, почему такая высокая нагрузка и что в таблицах кучи дублей?
Кажется, теперь я знаю способ, как можно уменьшить расходы компании. Ничего не логировать
А у вас было что-то супер серьезное?
Ссылка на тред
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
Reddit
From the dataengineering community on Reddit
Explore this post and more from the dataengineering community
❤11 7👍6🔥2
max_by/min_by
Узнала про прикольные функции, они заменяют оконку/CTE на одно поле
Пример - вывести имя сотрудника с максимальным стажем по каждому департаменту
И все! Не надо никаких row_number = 1
В Spark SQL можно еще и фильтр набросить:
А в Trino еще можно собрать массив топ-n в убывающем порядке:
Аналог в ClickHouse - argMax
@data_engineerette
Узнала про прикольные функции, они заменяют оконку/CTE на одно поле
Пример - вывести имя сотрудника с максимальным стажем по каждому департаменту
result = df.groupBy("department").agg(
F.max_by("name", "years")
)
И все! Не надо никаких row_number = 1
В Spark SQL можно еще и фильтр набросить:
spark.sql("""
select
department,
max_by(name, years) filter (where name is not null)
from employees
group by department
""")
А в Trino еще можно собрать массив топ-n в убывающем порядке:
select
department,
max_by(name, years) AS top_employee,
max_by(name, years, 2) AS top_2_employees
from employees
group by department
Аналог в ClickHouse - argMax
@data_engineerette
👍38🔥14 5❤3
Влияние ИИ на маркетинг
🔝 Раньше бренды пытались быть в топе выдачи в поисковике, участвовали в аукционах, чтобы выбить себе первые места
Когда я работала в маркетинге, наши аналитики очень часто обсуждали органический трафик. Это пользаки, которые перешли на сайт из поиска, а не рекламного баннера. Помню, как они заходили в браузер с разных устройств и с инкогнито, чтобы перепроверить актуальную позицию. Мы парсили запросы по ключевым словам с упоминанем бренда и без, и это все мониторилось на дэшах
💻 Сейчас же многие пользаки читают нейроответы (я в том числе) и уже там находят решение. При этом бренды остаются не в курсе, в позитивном или негативном контексте они там упоминаются
По-моему, это открывает большое поле для манипулирования нашим выбором и сознанием) Нужно всего лишь чекнуть, какие источники анализирует нейронка, опубликовать на этих сайтах "какой у нас крутой продукт" и (вуаля!) нейронка говорит, что у вас самый лучший продукт😁
Уже появились инструменты, которые парсят нейроответы, анализируют мнение топовых нейросеток за вас, включая тон упоминаний, сравнение с конкурентами и т.д.
✏️ Теперь бренды меняют подходы, чтобы нейронка их чаще упоминала в своих ответах. Они покупают пресс-релизы, где будет в позитивном ключе описываться компания, указывают точные реквизиты, чтобы было понятно, о какой компании идет речь, и в целом оптимизируют сайты под нейропоиск
❌ SEO (Search Engine Optimization)
✅ AEO (Answer Engine Optimization)
✅ GEO (Generative Engine Optimization)
Это целая наука, меня прямо сильно затянуло в этом покопаться
@data_engineerette
Когда я работала в маркетинге, наши аналитики очень часто обсуждали органический трафик. Это пользаки, которые перешли на сайт из поиска, а не рекламного баннера. Помню, как они заходили в браузер с разных устройств и с инкогнито, чтобы перепроверить актуальную позицию. Мы парсили запросы по ключевым словам с упоминанем бренда и без, и это все мониторилось на дэшах
По-моему, это открывает большое поле для манипулирования нашим выбором и сознанием) Нужно всего лишь чекнуть, какие источники анализирует нейронка, опубликовать на этих сайтах "какой у нас крутой продукт" и (вуаля!) нейронка говорит, что у вас самый лучший продукт
Уже появились инструменты, которые парсят нейроответы, анализируют мнение топовых нейросеток за вас, включая тон упоминаний, сравнение с конкурентами и т.д.
Это целая наука, меня прямо сильно затянуло в этом покопаться
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤4
pre-commit
Про эту штуку мне рассказал наш девопс. Короче, можно настроить у себя на ноуте, чтобы перед каждым коммитом прогонялись линтеры, форматтеры, другие легковесные чекеры
Шаг 1. В корне репки создаем файлик .pre-commit-config.yaml и добавляем нужные модули:
Шаг 2. Устанавливаем pre-commit
Все хуки лежат в папке .git/hooks/
Шаг 3. Создаем свой файлик и коммитим
При первой попытке запустятся форматтеры и исправят все ошибки:
На второй попытке файлик будет закомичен:
Больше примеров
@data_engineerette
Про эту штуку мне рассказал наш девопс. Короче, можно настроить у себя на ноуте, чтобы перед каждым коммитом прогонялись линтеры, форматтеры, другие легковесные чекеры
Шаг 1. В корне репки создаем файлик .pre-commit-config.yaml и добавляем нужные модули:
repos:
- repo: https://github.com/sqlfluff/sqlfluff
rev: 4.0.4
hooks:
- id: sqlfluff-fix
args: [
--config, tables/.sqlfluff
]
Шаг 2. Устанавливаем pre-commit
brew install pre-commit
pre-commit install
Все хуки лежат в папке .git/hooks/
Шаг 3. Создаем свой файлик и коммитим
При первой попытке запустятся форматтеры и исправят все ошибки:
git commit
sqlfluff-fix...............Failed
- hook id: sqlfluff-fix
- files were modified by this hook
== finding fixable violations ==
== [tables/test_table.sql] FAIL
L: 1 | P: 1 | CP01 | Keywords must be upper case. [capitalisation.keywords]
...
== [tables/test_table.sql] FIXED
На второй попытке файлик будет закомичен:
git commit
1 file changed, 1 insertion(+), 1 deletion(-)
create mode 100644 tables/test_table.sql
Больше примеров
@data_engineerette
👍30🔥11❤3🌚1
AI в OpenSource
🤓 У нас была проблема: аналитики переписывают свои скрипты с синтаксиса Trino на Spark, и в DDL они постоянно забывают поменять varchar на string. В итоге скрипты падают, только когда уже все вмержено в мастер (не круто)
Линтер при этом не отлавливал такие кейсы, потому что varchar в диалекте спарка тоже существует, но с указанием длины: varchar(10)
🤔 Я покопалась в коде линтера, нашла проблему и завела issue на гитхабе
Через 2 недели приходит отбивка, что все сделано. Я смотрю в PR: Copilot внес правки, Greptile все проревьюил🔥 🔥
У кого так же в проектах настроено?
PR: https://github.com/sqlfluff/sqlfluff/pull/7459
@data_engineerette
Линтер при этом не отлавливал такие кейсы, потому что varchar в диалекте спарка тоже существует, но с указанием длины: varchar(10)
Через 2 недели приходит отбивка, что все сделано. Я смотрю в PR: Copilot внес правки, Greptile все проревьюил
У кого так же в проектах настроено?
PR: https://github.com/sqlfluff/sqlfluff/pull/7459
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
SparkSQL: Enforce mandatory length for VARCHAR/CHAR/CHARACTER by Copilot · Pull Request #7459 · sqlfluff/sqlfluff
SparkSQL requires VARCHAR, CHAR, and CHARACTER types to specify a length parameter, but SQLFluff accepted them without length, causing SQL to pass linting but fail at execution with DATATYPE_MISSIN...
👍15 11😭3
Iceberg — это must have?
Вы еще не замечали, что становится больше вакансий, где айсберг уже требуют?
С одной стороны, если посмотреть на hh, то вакансий с айсбергом всего около 5%. Но, с другой стороны, в последнее время на меня выходят именно с формулировкой обязательности
Собрала список компаний, которые хотя бы частично уже живут на Data Lakehouse:
📌 Ламода
📌 Магнит
📌 Альфа
📌 М.Видео
📌 МТС
📌 Сбер
📌 X5
📌 Лента
📌 Золотое яблоко (Delta Lake)
А вот Озон по состоянию на прошлый год планировал идти в Data Mesh, чем в Data Lakehouse
Что вообще думаете?
@data_engineerette
Вы еще не замечали, что становится больше вакансий, где айсберг уже требуют?
С одной стороны, если посмотреть на hh, то вакансий с айсбергом всего около 5%. Но, с другой стороны, в последнее время на меня выходят именно с формулировкой обязательности
Собрала список компаний, которые хотя бы частично уже живут на Data Lakehouse:
А вот Озон по состоянию на прошлый год планировал идти в Data Mesh, чем в Data Lakehouse
Что вообще думаете?
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
Датаклассы
Наконец-то спустя год дошли руки написать про датаклассы🌷 Меня спросили на собесе в ламоду, и тогда я про них либо краем уха слышала, либо вообще не слышала. Но точно не использовала. Посмотрим, что с ними можно делать
Зачем?
Датакласс описывает данные, но без кучи лишних методов. Он сам вместо нас добавит
Как создать?
Чтобы датаклассы заработали, нужно их импорнуть и добавить в виде аннотации:
Готово! Никакие методы добавлять не нужно
Как использовать?
Другие фишки
Запрещаем менять поля:
Задаем дефолтные значения:
Чуть подробнее можно прочитать в короткой статье
@data_engineerette
Наконец-то спустя год дошли руки написать про датаклассы
Зачем?
Датакласс описывает данные, но без кучи лишних методов. Он сам вместо нас добавит
__init__, __repr__, __eq__ по дефолту. Набор методов можем сами менять с помощью флаговКак создать?
Чтобы датаклассы заработали, нужно их импорнуть и добавить в виде аннотации:
from dataclasses import dataclass
@dataclass
class SparkParams:
"""Dataclass для параметров spark-submit команды."""
name: str
deploy_mode: str
driver_cores: int
driver_memory: str
executor_cores: int
executor_memory: str
num_executors: int
Готово! Никакие методы добавлять не нужно
Как использовать?
spark_params = SparkParams("test_app", "cluster", 2, "4g", 4, "32g", 8)
Другие фишки
Запрещаем менять поля:
@dataclass(frozen=True)
Задаем дефолтные значения:
@dataclass
class Team:
description: str | None = None
emails: list[str] = field(default_factory=list) # для list/dict/set
Чуть подробнее можно прочитать в короткой статье
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26 12❤5
AI-эра
🤵 Я последние пару недель жестко подсела на видосы с фаундерами, CEO на тему бизнеса и AI. Все началось с поста про интервью с основателем Revolut Николаем Сторонским. Дальше мне захотелось узнать мышление других мировых лидеров, и пошло-поехало
В основном, на подкастах обсуждают, что нас ждет в 2030, 2035, 2040. Но уже в этом году прогнозируют, что появится AGI - Artificial General Intelligence. Если не в этом, то точно в следующем. Он будет умнее всех нас. К 2100 году один из экспертов по AI-безопасности предсказывает, что либо людей не будет, либо будут существа, которых мы не будем понимать
🍕 Из крутого на текущий момент - на США в гугле раскатана фича "Have AI call". Вы можете загуглить ближайшие рестораны, нажать эту кнопочку - через несколько минут вам на почту придет отчет, в каких ресторанах есть свободные места, а до каких агент не дозвонился
Есть агенты, которые режут рилсы. Или гуглят по видосам, когда не можете вспомнить, где слышали цитату. А из особо крутого я узнала про Genie 3 от Google DeepMind - там можно смоделировать новый мир
📖 Также обсуждают, что детям сегодняшнего дня в колледж идти уже не имеет смысла. Потому что после выпуска они с очень высокой вероятностью не смогут найти себе работу. От людей требуется все более и более сложная работа
🤖 Физических роботов ожидают лет через 10-15. Мне очень понравилась идея от CEO Microsoft AI - робот проактивный, он знает, что на выходных будет куча гостей, сканирует холодильник, заказывает еду. Еще можно придумать, что в сам холодильник встроены программы (ПП, еще что-нибудь), и он понимает, чего тебе не хватает. А потом домашний робот принимает продукты от ровера и расставляет в холодильник. Ммммм...
Список каналов, которые мне понравились:
The Diary of a CEO - классный ведущий, задает нетривиальные вопросы
Cleo Abram - тоже классные вопросы, канал ориентирован на обсуждение позитивных сторон технического прогресса
Stanford Graduate School of Business - интервью с C-level в актовом зале для студентов
Silicon Valley Girl - на Марину я подписана давно, но каких же крутых персонажей она теперь зовет на подкасты, некоторые дублируются на русском на втором канале
Lex Fridman - очень своеобразный, он не про заковыристые вопросы, а про длительное монотонное общение
@data_engineerette
В основном, на подкастах обсуждают, что нас ждет в 2030, 2035, 2040. Но уже в этом году прогнозируют, что появится AGI - Artificial General Intelligence. Если не в этом, то точно в следующем. Он будет умнее всех нас. К 2100 году один из экспертов по AI-безопасности предсказывает, что либо людей не будет, либо будут существа, которых мы не будем понимать
Есть агенты, которые режут рилсы. Или гуглят по видосам, когда не можете вспомнить, где слышали цитату. А из особо крутого я узнала про Genie 3 от Google DeepMind - там можно смоделировать новый мир
Список каналов, которые мне понравились:
The Diary of a CEO - классный ведущий, задает нетривиальные вопросы
Cleo Abram - тоже классные вопросы, канал ориентирован на обсуждение позитивных сторон технического прогресса
Stanford Graduate School of Business - интервью с C-level в актовом зале для студентов
Silicon Valley Girl - на Марину я подписана давно, но каких же крутых персонажей она теперь зовет на подкасты, некоторые дублируются на русском на втором канале
Lex Fridman - очень своеобразный, он не про заковыристые вопросы, а про длительное монотонное общение
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7🌚5😭3💅1