Краудфандинг ресурсов по SQL
А давайте накидаем любые полезные материалы в этом треде. У меня с этим сложности, я sql еще в универе проходила по лекциям и авторской книжке от препода, а потом 3 года шлифовала на рабочих задачах🙂
P.S. всем комментаторам лайк, сердечко и огонечек
А давайте накидаем любые полезные материалы в этом треде. У меня с этим сложности, я sql еще в универе проходила по лекциям и авторской книжке от препода, а потом 3 года шлифовала на рабочих задачах
P.S. всем комментаторам лайк, сердечко и огонечек
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1👀1
Forwarded from Arthur Chupakhin
Добрый день,
Начал обучение на дата инженера, посоветуйте пожалуйста хорошую книгу по SQL 🙏
Что то основательное как Лутц на Питон 😅
Начал обучение на дата инженера, посоветуйте пожалуйста хорошую книгу по SQL 🙏
Что то основательное как Лутц на Питон 😅
👍10
Пусть у нас одна очередь считает витрины, вторая льет стриминговые данные, а в третьей де/да/дс запускают свои наработки. И ресурсы разделены в таком соотношении:
Послеобеденное время, витринки особо пока не занимают очередь, пусть 20% вместо 60%. Тут приходит аналитик и запускает огроменный расчет, который перелопачивает 100млрд данных. Он занимает всю свою очередь, а сверху берет в долг ресурсы у витринной очереди, которая пока более-менее свободна
У бедного аналитика приложение будет простаивать, а все, что не посчиталось, потом пойдет считаться заново (когда очередь освободится)
Дисклеймер: любые совпадения с реальными личностями случайны
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁8🔥5❤4🌚2 2
Исследование дешников 2025
Тут ребятки из DevCrowd запускают новый опрос для дата-инженеров, аналитиков, дата-сайентистов, ML-инженеров и их руководителей
Опрос поможет:
🟢 понять трендовые инструменты
🟢 увидеть, как устроена работа у коллег в других продуктах
🟢 узнать, как растут зарплаты и роли в индустрии
🟢 получить данные, которые можно использовать для самодиагностики и карьерного планирования
Я еще не прошла, но исследования выглядят прям масштабно и с кучей циферок
🌷 Пример прошлогоднего исследования — devcrowd.ru/ds24
📕 Опрос займёт 15 минут, результаты появятся в открытом доступе в августе
➡️ Пройти опрос
Тут ребятки из DevCrowd запускают новый опрос для дата-инженеров, аналитиков, дата-сайентистов, ML-инженеров и их руководителей
Опрос поможет:
Я еще не прошла, но исследования выглядят прям масштабно и с кучей циферок
Please open Telegram to view this post
VIEW IN TELEGRAM
Исследование специалистов DS/ML/AI-направлений, 2024
Исследование рынка специалистов DS/ML/AI-направлений, 2024
DevCrowd вместе с Контуром провели исследование рынка специалистов DS/ML/AI-направлений, 2024
❤6👍2 1
1. Командообразование
Продолжаю рассказывать про курс команды. Как я проходила собес и первые впечатления - тут
Описание программы - тут
📝 В первом модуле обучение было в формате лекций с 2-3 перерывами на практику в группах
Нам рассказали:
🔴 что такое команда
🔴 какие еще формы совместной работы могут быть, кроме команды
🔴 стадии формирования команды по Брюсу Такману (вы наверняка могли видеть картинку forming-storming-norming-performing-adjourning)
🔴 про методику Big Five (что ожидать от членов своей команды и как мотивировать каждого)
🔴 про целеполагание
Вопрос на подумать: с кросс-функциональной командой проще, т.к. у них есть общая цель. А вот есть ли она у функциональной команды (где только de, только разрабы и т.д.)?
Пара мифов (с точки зрения лектора):
1. В команде может быть оценен только групповой результат, но не индивидуальный
2. В команде все равны и все делится поровну
✏️ На практиках мы в группах по 6 человек + фасилитатор делали задания:
🟣 определяли по описанию команды, действительно ли ее можно на 100% назвать командой и почему нет
🟣 определяли по описаниям людей, какие полюса в характере более выражены, а какие менее
🟣 определяли по описанию команды/проекта, должна ли быть у них общая цель и нужно ли нам лепить команду, или и так норм
〰️ 〰️ 〰️ 〰️ 〰️ 〰️
Лектор изначально сказал, что он зануда и душнила, и это так и было)) Много теоретических определений, признаков и таблиц, как в книжках по обществознанию. Но лекторы должны меняться каждый модуль, надеюсь, в следующий раз будет более приближено к реальным ситуациям
Продолжаю рассказывать про курс команды. Как я проходила собес и первые впечатления - тут
Описание программы - тут
Нам рассказали:
Вопрос на подумать: с кросс-функциональной командой проще, т.к. у них есть общая цель. А вот есть ли она у функциональной команды (где только de, только разрабы и т.д.)?
Пара мифов (с точки зрения лектора):
1. В команде может быть оценен только групповой результат, но не индивидуальный
2. В команде все равны и все делится поровну
Лектор изначально сказал, что он зануда и душнила, и это так и было)) Много теоретических определений, признаков и таблиц, как в книжках по обществознанию. Но лекторы должны меняться каждый модуль, надеюсь, в следующий раз будет более приближено к реальным ситуациям
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥11❤9
Static vs Dynamic Partitioning
В Hive есть два вида партицирования: статическое и динамическое
Сначала я столкнулась с ошибкой:
Давайте разберем на примерах
У нас есть таблица, которая партицирована по двум полям:
Теперь пойдем вставлять данные
🤩 Статическое
Здесь мы заранее говорим, в какую партицию будем вставлять кусок данных
🤩 Динамическое
Здесь Hive сам определяет по данным, которые мы вставляем
Но чтобы такое сработало, нужны 2 конфига:
По дефолту стоят false и strict. strict означает, что должна существовать хотя бы одна статическая партиция (о чем и была ошибка)
В Hive есть два вида партицирования: статическое и динамическое
Сначала я столкнулась с ошибкой:
Exception in thread "main" org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
Давайте разберем на примерах
У нас есть таблица, которая партицирована по двум полям:
CREATE TABLE sales_data (...)
PARTITIONED BY (date STRING, country STRING);
Теперь пойдем вставлять данные
INSERT INTO sales_data
PARTITION (date=’2024–03–23', country=’USA’) VALUES (...);
Здесь мы заранее говорим, в какую партицию будем вставлять кусок данных
INSERT INTO sales_data
PARTITION (date, country)
VALUES (..., ‘2024–03–23’, ‘USA’);
Здесь Hive сам определяет по данным, которые мы вставляем
Но чтобы такое сработало, нужны 2 конфига:
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
По дефолту стоят false и strict. strict означает, что должна существовать хотя бы одна статическая партиция (о чем и была ошибка)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍8🔥6😁1 1
Никому больше не приходит этот спам?
С рандомными несуществующими доменами, как будто «сгенерируй домен почты со словами market, analyst или report»:
b2bproanalyst.com
industriesreport.com
themarketjournals.com
truevaluereports.com
marketsharereport.com
reportarc.com
marketprospectus.com
yoymarkets.com
Они пишут раза по 3-4 и предлагают мне получить пример отчета по данным:
С рандомными несуществующими доменами, как будто «сгенерируй домен почты со словами market, analyst или report»:
b2bproanalyst.com
industriesreport.com
themarketjournals.com
truevaluereports.com
marketsharereport.com
reportarc.com
marketprospectus.com
yoymarkets.com
Они пишут раза по 3-4 и предлагают мне получить пример отчета по данным:
Would you be interested in receiving a Brief TOC/Sample of data lakes market research report - global forecast to 2030 study?
👀8❤1
Запускала я свои спарк приложения в кубере. Ну надо потестить сначала на небольшом наборе данных и с небольшим количеством ресурсов
Сколько возьмем экзекьюторов?
Пусть будет 5 экзекьюторов, это уже не 1-2, но и не 40, для старта в самый раз
А сколько ядер?
Оптимально вроде как по 5 ядер, но 25 уже кажется многовато. Пусть будет по 4
Позапускала, потестила, все возникающие ошибки исправила. Теперь пора взять побольше данных и увеличить ресурсы
Caused by: java.lang.IllegalArgumentException: requirement failed: initial executor number 10 must between min executor number 1 and max executor number 5
Ага, не получится, уже в системе заранее заложили лимит в 5 экзекьюторов, меняем:
spark.dynamicAllocation.maxExecutors=10
Ага, тоже не работает. Оказалось, что уже зашит конфиг и его нужно самому менять при необходимости:
spark.kubernetes.executor.limit.cores 4
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤9😁2 2
Прочитала книжку про идиотов
В ней 408 страниц, но она очень быстро прочиталась всего за 4 дня
😐 Мне как будто это все и так было понятно. Есть 4 цвета, которые хорошо ложатся на темпераменты. Описываются их сильные и слабые стороны, как с ними общаться, как мотивировать, как окружающие их воспринимают и как они сами себя, кто с кем лучше сочетается и т.п.
Суть книги - кругом одни идиоты для человека, не понимающего других
Дам очень краткую характеристику с прикольными авторскими цитатками:
🔴 красные - властные, деятельные
🟡 желтые - много общаются, хотят все новое
🟢 зеленые - спокойные, ценят отношения, избегают конфликтов, таких большинство
🔵 синие - все выясняют до мелочей
Люди обычно сочетают в себе несколько цветов. Когда я умывалась, вдруг увидела ряд зеленых баночек, вспомнила, что мой любимый цвет - темно-зеленый, больше всего в моем гардеробе голубого, красного - совсем чуть-чуть, а желтого нет вообще. Норм подвязала?😁
Мы как-то с коллегами проходили тест тут. Там 2 блока по 14 вопросов, можете тоже попробовать и покидать свои резы)
В ней 408 страниц, но она очень быстро прочиталась всего за 4 дня
Суть книги - кругом одни идиоты для человека, не понимающего других
Дам очень краткую характеристику с прикольными авторскими цитатками:
Или по-моему, или никак
Только мертвые рыбы плывут по течению
Новые проекты - вот это да! Собрать новую и динамичную команду - вот это задача! Запустить проекты и начать рисовать светлые перспективы - ну конечно! А следить за тем, что в проекте идет не так?
Да, она, черт возьми, согласна
Откуда взялось масляное пятно на полу? Возможно, продырявился пакет, и что-то протекло. По какой причине он протек? Потому что он плохого качества. Но каким образом оказался пакет плохого качества? Потому что отдел закупок нашей фирмы сэкономил на расходах. Но кто велел нам снижать планку качества?
Люди обычно сочетают в себе несколько цветов. Когда я умывалась, вдруг увидела ряд зеленых баночек, вспомнила, что мой любимый цвет - темно-зеленый, больше всего в моем гардеробе голубого, красного - совсем чуть-чуть, а желтого нет вообще. Норм подвязала?
Мы как-то с коллегами проходили тест тут. Там 2 блока по 14 вопросов, можете тоже попробовать и покидать свои резы)
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
дата инженеретта
Порекомендовали книжку, пойду зачитываться на выходных
Желаю всем хорошенечко отдохнуть 🥰
Желаю всем хорошенечко отдохнуть 🥰
❤12 5🤔3🔥2💯1
Готовый список задач для DE и не только
Зашла тут посмотреть, что на хх происходит. Я не поняла исходя из чего, но под местом работы вам предлагаются готовые задачи. Скорее всего, они подбираются по выбранной специализации, у меня там стоит аналитика и разработка. Кто-то уже видел такое, когда оно появилось?
Задачи через плюсик сразу вставляются в описание в виде отдельных пунктов. Я не поленилась, прокликала все, и у меня получилось 33 штуки. Пошлите играть в бинго)
Зашла тут посмотреть, что на хх происходит. Я не поняла исходя из чего, но под местом работы вам предлагаются готовые задачи. Скорее всего, они подбираются по выбранной специализации, у меня там стоит аналитика и разработка. Кто-то уже видел такое, когда оно появилось?
Задачи через плюсик сразу вставляются в описание в виде отдельных пунктов. Я не поленилась, прокликала все, и у меня получилось 33 штуки. Пошлите играть в бинго)
❤8 8🔥5
Активность коллег в мессенджере в выходные
Я несколько раз заглядывала в чаты в нерабочее время и видела, что многие коллеги онлайн. А вот сейчас таки решила подвести стату)
Взяла выборку в 55 коллег из моего ближайшего окружения и получила, что только 16% соблюдают work-life balance и не заходят по выходным😐
Или они просто смотрят киношку на корп ноуте с открытой прогой...
Я несколько раз заглядывала в чаты в нерабочее время и видела, что многие коллеги онлайн. А вот сейчас таки решила подвести стату)
Взяла выборку в 55 коллег из моего ближайшего окружения и получила, что только 16% соблюдают work-life balance и не заходят по выходным
Или они просто смотрят киношку на корп ноуте с открытой прогой...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷9🌚3👍2
CollapsingMergeTree
Прохожу бесплатный курс по кх "Managed Service for ClickHouse". Дошла до модуля 2 про виды движков, и меня настигло озарение☁️
Вот есть движок CollapsingMergeTree - он сворачивает пары строк, у которых в ключе сортировки одинаковые значения, но при этом поле sign у одной из них равно 1, а у другой -1. Без паники!🤚 Сейчас поясню на примере
Наш пользак 999 захотел что-то купить:
Т.е. тут явно видно, что update = delete + insert, где sign - это флажок удаления
Но есть нюанс - теперь в нашей таблице 3 строки, а нужна 1. Почему 3, ведь CollapsingMergeTree как раз и должен сам все объединить?
Потому что кх свои слияния производит не сразу, а когда-то потом. Но есть несколько способов получить то, что нужно:
1. FINAL - как будто слияние уже произошло
2. OPTIMIZE - заставляем сделать слияние прямо сейчас. Но у вас может не быть прав на это в продовой базе
3. Посчитать самим
А ведь действительно 10*1 + 10*(-1) + 11*1 дает то, что нужно…
Прохожу бесплатный курс по кх "Managed Service for ClickHouse". Дошла до модуля 2 про виды движков, и меня настигло озарение
Вот есть движок CollapsingMergeTree - он сворачивает пары строк, у которых в ключе сортировки одинаковые значения, но при этом поле sign у одной из них равно 1, а у другой -1. Без паники!
CREATE TABLE user_activity (
UserID UInt64, --есть пользак
PageViews UInt8, --он посетил столько страниц
Sign Int8 --системное поле
)
ENGINE = CollapsingMergeTree(Sign)
ORDER BY UserID; --будем сворачивать по этому полю
Наш пользак 999 захотел что-то купить:
INSERT INTO user_activity VALUES (999, 10, 1); --сначала просмотрел 10 страниц
INSERT INTO user_activity VALUES (999, 10, -1), --а теперь 10 страниц уже неактуальны (видите -1?)
(999, 11, 1); --потому что он просмотрел 11 страниц
Т.е. тут явно видно, что update = delete + insert, где sign - это флажок удаления
Но есть нюанс - теперь в нашей таблице 3 строки, а нужна 1. Почему 3, ведь CollapsingMergeTree как раз и должен сам все объединить?
Потому что кх свои слияния производит не сразу, а когда-то потом. Но есть несколько способов получить то, что нужно:
1. FINAL - как будто слияние уже произошло
SELECT * FROM user_activity FINAL;
2. OPTIMIZE - заставляем сделать слияние прямо сейчас. Но у вас может не быть прав на это в продовой базе
OPTIMIZE TABLE user_activity;
SELECT * FROM user_activity; --FINAL уже не нужен
3. Посчитать самим
SELECT UserID, sum(PageViews * Sign)
FROM user_activity
group by UserID;
А ведь действительно 10*1 + 10*(-1) + 11*1 дает то, что нужно…
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5 3🌚2👀2❤1
YARN API
Иногда могут случаться разные вещи: у вас завис юпитер/вы сделали что-то не то, и вас заблочили/просто хочется программно килять приложухи. Мне пригодилось, когда я задудосила сервер, пытаясь в пт вечером разом создать тысячу папочек в hdfs😁 У меня перестал открываться юпитер с 504 ошибкой
При этом у меня осталось работать тяжеловесное приложений с кучей ресурсов, и оно само по себе не убьется...
Нам понадобится всего два шага:
1️⃣ Находим id приложения
2️⃣ Становимся киллерами
Можно сделать из Postman:
PUT-запрос
Content-Type: application/json
Body raw -> JSON {"state": "KILLED"}
Или в терминале:
Проблему с 504 ошибкой я нашла в истории чата - пришлось в выходные отдохнуть, а в пн утром меня разблочили🙂
Иногда могут случаться разные вещи: у вас завис юпитер/вы сделали что-то не то, и вас заблочили/просто хочется программно килять приложухи. Мне пригодилось, когда я задудосила сервер, пытаясь в пт вечером разом создать тысячу папочек в hdfs
При этом у меня осталось работать тяжеловесное приложений с кучей ресурсов, и оно само по себе не убьется...
Нам понадобится всего два шага:
https://yarn.com/ws/v1/cluster/apps?states=RUNNING,ACCEPTED&user=myuser&queue=myqueue
Можно сделать из Postman:
PUT-запрос
Content-Type: application/json
Body raw -> JSON {"state": "KILLED"}
https://yarn.com/ws/v1/cluster/apps/application_1750947191600_26250/state?user.name=myuser
Или в терминале:
curl -X PUT "https://yarn.com/ws/v1/cluster/apps/application_1750404105050_1823/state?user.name=myuser" \
-H "Content-Type: application/json" \
-d '{"state": "KILLED"}'
Проблему с 504 ошибкой я нашла в истории чата - пришлось в выходные отдохнуть, а в пн утром меня разблочили
Please open Telegram to view this post
VIEW IN TELEGRAM
Новое событие
Ходила в прошлом году на E-CODE, было просто бомбезно🔥 🔥 Еда, активности, крутые стримы с лекциями, мерч, туса - и все бесплатно!
Пока все выкладывают сторис, рилс и шортсы, я сокращаю еще больше и делаю сторис из сторис))
Ходила в прошлом году на E-CODE, было просто бомбезно
Пока все выкладывают сторис, рилс и шортсы, я сокращаю еще больше и делаю сторис из сторис))
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥9
2. Постановка задач, делегирование, фидбек
Продолжаю рассказывать про курс команды
Первый модуль - тут
Описание программы - тут
Что было?
🤩 алгоритм постановки задач
🤩 точки контроля
🤩 уровни делегирования
🤩 виды руководства
🤩 стили общения
🤩 уровни зрелости
🤩 модели фидбэков (SBI, IBOFF, SLC)
🤩 фидфорвард
🤩 и еще много всего полезного
Лектор просто топ, очень харизматичный!🔥 Нашла страничку про него. А ниже крутые цитаты с лекций:
Мысли, которые мне показались наиболее интересными:
Таск-трекеры нужны для единого понимания. Лучше, чтобы сотрудники сами заводили задачи со своим пониманием
❌ Как ты понял задачу? Расскажи, как ты понял? Ты понял?
✅ Я бы хотел проверить себя, насколько мне получилось объяснить
Контроль - это сервис, чтобы сотрудники справились классно. Получать удовольствие от того, что ты организовал сделать что-то других
Поддерживать сильные стороны важнее, чем корректировать. Цель фидбека - помочь развить навык или укрепить уверенность. Постоянно должен быть мотивирующий фон работы. Можно своими вопросами выводить человека на самофидбек. При этом с разными людьми нужно быть разным. Важно, чтобы рядом был человек, который видит в тебе того, кто может справиться
Продолжаю рассказывать про курс команды
Первый модуль - тут
Описание программы - тут
Что было?
Лектор просто топ, очень харизматичный!
Парадокс менеджмента: люди, которым мы платим зп, должны радоваться каждой задаче
Как менеджер вы должны руководить картинками в голове у сотрудника
Абсолютная безоценочность - это уже поближе к Будде
Грамотный руководитель говорит языком наблюдений и цифр, а не языком ярлыков и обобщений
Шоколад должен быть шоколадным для всех
Не надо замахиваться, что руководитель знает, как мир устроен. Да, конечно, это так, но не признавайтесь людям. Планетой нужно управлять незаметно для санитаров, чтобы не вызывать подозрений
Мысли, которые мне показались наиболее интересными:
Таск-трекеры нужны для единого понимания. Лучше, чтобы сотрудники сами заводили задачи со своим пониманием
Контроль - это сервис, чтобы сотрудники справились классно. Получать удовольствие от того, что ты организовал сделать что-то других
Поддерживать сильные стороны важнее, чем корректировать. Цель фидбека - помочь развить навык или укрепить уверенность. Постоянно должен быть мотивирующий фон работы. Можно своими вопросами выводить человека на самофидбек. При этом с разными людьми нужно быть разным. Важно, чтобы рядом был человек, который видит в тебе того, кто может справиться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3 3