ch
Feedback
дата инженеретта

дата инженеретта

前往频道在 Telegram

мелкое — крупно, в глубоком разговоре мудрость приходит по вопросам сюда: @aigul_sea

显示更多
3 389
订阅者
+324 小时
+137
+2330
帖子存档
Кажется, я уработалась😕 Это моя первая мысль, как только я села в такси
+1
Кажется, я уработалась😕 Это моя первая мысль, как только я села в такси

Раскрываю тайну Наверняка у многих был такой момент, что вы заходите в YARN, находите Hive-запрос, хотите в него провалиться,
Раскрываю тайну Наверняка у многих был такой момент, что вы заходите в YARN, находите Hive-запрос, хотите в него провалиться, но Tez UI недоступен? Теперь вы знаете, как он выглядит @data_engineerette

Пойдемте прокачиваться 🧐 Кажется, многие айтишники в какой-то момент приходят к одной мысли: хочется не только писать код и
Пойдемте прокачиваться 🧐 Кажется, многие айтишники в какой-то момент приходят к одной мысли: хочется не только писать код и закрывать задачи, но и делиться опытом, влиять на развитие профессии и видеть результаты своей работы в людях Чтобы это все реализовалось, в Центральном университете придумали фаст-трек для будущих преподавателей направления «Разработка» Всего за одни выходные, 27 и 28 июня, вы пройдете основные этапы найма: 📍техническое интервью с действующим преподавателем 📍пробное 20-минутное занятие Что такое Центральный университет? Это вуз нового типа, открытый при поддержке Т-Банка, Яндекса, Авито и более 60 других партнеров. Здесь преподают более 600 специалистов из ИТ-индустрии и преподавателей ведущих университетов страны, а учатся более 2200 студентов. Что важно: ✨преподавание можно совмещать с основной работой ✨подберут удобное расписание ✨опыт преподавания необязателен, подойдет любой софтовый, например, менторство или выступления на митапах ✨на старте все расскажут и подскажут Кого ждут: 📍мидлов с уверенными знаниями Python, Java или фронтенд-разработки 📍сеньоров в инфраструктуре, инжиниринге данных и архитектуре решений 📍 Встречаемся 27–28 июня, онлайн и в кампусе Центрального университета (м. «Маяковская») Регаемся тут до 24 июня

Data + AI 🍿 Вчера-сегодня проходит Data + AI Summit от Databricks. Основная суть — как работать с данными в эру AI, реклама
+5
Data + AI 🍿 Вчера-сегодня проходит Data + AI Summit от Databricks. Основная суть — как работать с данными в эру AI, реклама собственных разработок, интервью с партнерами и крупными пользователями, кейсы применения сервисов Меня больше всего поразило — как они красиво говорят, у них такая чистая четкая речь и акцент, как на аудировании😍 И больше 30к людей в офлайне!! Есть очень много интересных моментов, которые я пометила себе: 🤩Аннонсировали Lakehouse//RT на собственном движке Reyden, который возвращает результат на огромном объеме данных за мс и не требует перекладки данных в отдельную бд под дэши (красивые графички тут) ✨✨ 🤩Обсуждали Lakebase — это постгря как движок над s3. Чтобы опять-таки хранить данные в одном месте, а не перекладывать из OLTP в OLAP-системы🤪 🤩LTAP (Lake Transactional/Analytical Processing) = Lakebase + Lakehouse. Данные пишутся строками => строки конвертятся в столбцы => чтение по столбцам. Правда, нам не сказали, насколько эта конвертация затратна❓ 🤩На сцене побывал Ryan Blue, один из главных создателей Iceberg. Он сказал, что в Databricks уже поддерживается iceberg v3, где одна из фич — это кросс-поддержка iceberg+delta lake, которые на диске лежат одинаково, и не надо ничего переписывать при смене формата. А к концу q4 или чуть позже уже выйдет iceberg v4 🤩Genie One + Genie Ontology — чат-бот, дополненный глоссарием/знаниями предметной области компании на основе графов + коннектов к гугл драйв/почте/и т.д. А еще он умеет чекать пермишены к данным перед тем, как вернуть ответ. А агентов можно шерить с коллегами✨ 🤩Добавляется отдельный агент Genie ZeroOps, который постоянно следит за кластером. Если в 2 часа ночи упал пайплайн, он пойдет искать причины по линейджу всех зависимостей, внесет изменения в код, потестит в песочнице, подготовит фикс и отправит алерт о готовности. Вам остается только аппрувнуть✨✨ 🤩Omnigent — платформа, где можно миксовать несколько моделек, чтобы они делали разные операции. Это называется "meta-harness" 🤩В Uber за 1 квартал потратили годовой бюджет на AI 🤩Pepsico — один из пользаков, у которых раньше было 600 дата лейков😳 🤩Databricks заколлабились с OpenAI (приходил кофаундер Greg Brockman), чтобы их модельки забустили дата-сервисы @data_engineerette

Hive vs HMS
HMS - Hive Metastore
Я долгое время вообще не знала про существование HMS. Для меня HMS и Hive шли неразрывно, и я не отличала одно от другого. Я же такая не одна, да?🌸 Но в один момент до меня дошло, что: 🤩Hive - это движок, который через синтаксис SQL (HiveQL) умеет ходить к данным. Мы пишем запросы как будто в обычной бд, но они становятся MapReduce/Tez/Spark задачами и ходят в файлики 🤩HMS - это каталог метаданных: схема таблиц, пути к файлам, типы данных, партиции и т.д. Ему для работы нужна бд. Чаще всего это PostgreSQL, MySQL Для работы Hive обязательно нужен HMS А вот сам HMS может использоваться и отдельно - с тем же Spark, Trino, Impala 🧊В контексте Iceberg мы используем HMS как технический каталог. Например, чтобы понимать, что таблице db.orders соответствует файл 000-asdkd27sn.metadata.json Подробнее про внутрянку hms я рассказывала здесь Про каталоги — тут @data_engineerette

Кажется, каждую неделю появляется новый пост о том, как ИИ скоро заменит аналитиков Но если внимательнее посмотреть на ситуацию, становится понятно: происходит совсем другое. Компании по-прежнему ищут специалистов по данным. Просто меняются требования. Все меньше ценится умение выполнять одну конкретную задачу и все больше — способность видеть весь процесс работы с данными и понимать, как отдельные инструменты помогают решать бизнес-задачи. Поэтому сегодня вопрос уже не в том, «заменит ли меня ИИ». Гораздо полезнее спросить себя: какие качества будут особенно востребованы, когда ИИ станет привычным рабочим инструментом? 16 июня пройдет бесплатный вебинар «День открытых дверей с Анатолием Карповым», где разберут, как трансформируются профессии в сфере данных, какие компетенции усиливают ценность специалиста и на что уже сейчас не стоит делать основную ставку. Узнайте, как меняется отрасль и что поможет оставаться востребованным специалистом в ближайшие годы: https://clc.to/erid_2W5zFHPhnA5 Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFHPhnA5

AI-эра тех собесов 💻 Теперь вместе с sql/python-задачками на тех собесе могут дать создание мини-проекта за 20 минут Разрешается использовать все, что угодно, любые ллм. (Только подумайте над тем, что будет работать, когда вы на созвоне на внутренней платформе.) Есть только одно условие — шерить экран Примеры заданий ➡️Для де: написать ddl таблиц, sql-запросы по сборке витрин, несколько дагов ➡️Для разраба: придумать архитектуру микросервиса и реализовать его ➡️Разобраться в коде и найти баги Сгенерили, а дальше? 🙂 Интервьюеры могут сами пока не до конца понимать, что делать после генерации кода) Они просто сидят и смотрят, как ты будешь разбираться, что происходит, просят внести правки или объяснить кусок кода Пока такое замечено в WB в последние 2 месяца, но могут подтянуться и остальные. Особенно после этого поста😁 @data_engineerette

ClickOps Мне тут пришло в голову покопаться в сервисах AWS и поделать какие-нибудь лабы. На ютубе довольно много видосов от и
ClickOps Мне тут пришло в голову покопаться в сервисах AWS и поделать какие-нибудь лабы. На ютубе довольно много видосов от индусов (и не только) на эту тему, я в итоге решила посмотреть вот этот 4х-часовой туториал с пет-проектом 🎙 Там парень очень понятно рассказывает про теорию и сервисы, показывает, как что делать. К акценту надо привыкнуть, но вроде норм) Говорит он супер быстро, как будто на x1.5 смотришь. Одна из фраз, которая красной линией проходит по видосу:
Сейчас никто не пишет код сам. Если вы хотите что-то реализовать или столкнулись с проблемой — идите к ChatGPT
Еще сайтец у него есть полезный, там очень много инфы собрано 💻 В чем суть проекта? Взять данные из файлов и API, залить в S3, переложить по слоям, добавить dq, настроить алерты, собрать витрину и поставить на расписание. Используя тех стек AWS: S3, Glue, Lambda, Athena, Step Functions, CloudWatch, SNS Вся эта история поместилась в 5 питонячих файлов и 4 джейсонины. Поэтому проект натолкнул меня на несколько логичных мыслей, но над которыми я не задумывалась: 1️⃣Девопсы вообще не нужны — все и так настроено и работает 2️⃣Платформенные решения, фреймворки для витрин тоже не нужны — достаточно написать одну Glue-джобку и запускать ее с разными конфигами 3️⃣Основная работа DE — нажимать на кнопочки и заполнять формочки Создать таблицу? 4 клика Загрузить csv в таблицу? 6 кликов Добавить поле? Перетащить прямоугольничек Партицировать таблицу? Выбрать колонку из списка Выделить инкремент для загрузки? Включить опцию Оно примерно так и есть, или я пока что-то упускаю? @data_engineerette

Когда никто не понимает, как делать задачу😂
Когда никто не понимает, как делать задачу😂

Clickhouse для программистов, аналитиков и инженеров данных Перестаньте ждать, пока считается аналитика. Научитесь использова
Clickhouse для программистов, аналитиков и инженеров данных Перестаньте ждать, пока считается аналитика. Научитесь использовать ClickHouse — СУБД, которая превращает минутные аналитические запросы в ответы за доли секунды. С первого дня — доступ к инфраструктуре для практики. 🌐 Чему вы научитесь: 🤩 Архитектура одиночных и кластерных инсталляций ClickHouse: как устроена система изнутри и как масштабировать её под реальные нагрузки 🤩 Хранение данных: движки MergeTree, партиционирование и сжатие — как держать терабайты аналитических данных при минимальных затратах на инфраструктуру. 🤩 Обработка миллиардов строк за секунды: построение эффективных запросов, агрегаций и материализованных представлений. 🤩 ClickHouse в продакшене: использование в приложениях, продуктовой аналитике и типичные грабли, на которые наступают почти все 🤩 Живая практика без отрыва от работы: не более 2-3 часов в неделю, разбор задач с экспертом в групповом чате. 🥸 Кто мы: R&D-центр Devhands. Автор курса — Алексей Белозерский, Chief Data Officer в inSales (СБЕР 2В), ex: VK Tech, М.Видео, Эльдорадо 🗓 Старт курса: 11 июня, 6 недель обучения. Изучить программу и записаться можно здесь. Ждем вас! Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA

Случайно замедлили все загрузки Небольшая история о том, как можно ухудшить состояние кластера, не добавив и строчки кода😁 Предыстория У нас в airflow есть много дагов, которые качают данные из бд. Чтобы не положить базу, мы используем пулы, которые ограничивают количество подключений Как-то мы реализовали новый тип загрузки и, как порядочные разрабы, про пулы тоже не забыли. Долгое время данные грузились, все работало — с этой стороны не было проблем. Но однажды к нам пришел аналитик и спросил, почему таски висят в статусе scheduled по несколько часов. И вот тогда мы поняли 😁 Проблема Таска-загрузчик находилась в одной таск-группе вместе с другими легковесными тасочками. И они все наследовали одни и те же значения! Получается, что таске передавалось 100500 слотов, даже если она вообще не ходила в базу😱 И когда загрузчик требовал много слотов, абсолютно все простаивало, потому что больше ничего не помещалось😱😱 Решение Тут все просто: выпилить параметр из тех тасок, где он не нужен Мораль Можем подытожить так: даже если все зеленое и все считается, это не значит, что все хорошо🤨 @data_engineerette

На пути к гуру алгосов 01.06 стартует новый поток курса от Глеба Михайлова, и я на него иду! Алгосы — это точно мое слабое место, и я прямо в превкушении почувствовать «азарт охотника, а не ужас жертвы»🐆 Я уже зарегалась на платформе, добавилась в чатик и посмотрела орг материалы — какой должен быть подход к обучению, нужно ли быть перфекционистом и как трекать свой прогресс Курс разбит на 10 спринтов вплоть до 11.10. И ожидается, что мы должны уделять время на задачи 5 дней в неделю целое лето 😭 😭 Скоро я эволюционирую до всезнающего леопарда, ну, а пока я — маленькая птичка, которая полетела разведывать остров алгоритмов🐦 @data_engineerette

Познакомилась с деврелом из OpenMetadata В последнем спринте работала над таской, связанной с OpenMetadata. Она была поначалу
Познакомилась с деврелом из OpenMetadata В последнем спринте работала над таской, связанной с OpenMetadata. Она была поначалу настолько непонятой, что пришлось присоединиться к коммьюнити в Slack🤩 Могу сказать, что у них просто офигенная поддержка в чате, на вопросы они отвечают в течение получаса. Как только я присоединилась, на меня сразу вышел чел с ролью «Developer Advocate». Он рассказал, что у них происходит в чатах, какие они организуют вебинары и что можно забукать небольшую встречку Поначалу я скептически отнеслась, вопросов с моей стороны не было, да и вообще потом забыла, но спустя время решила встретиться поболтать🙂 Мы довольно мило побеседовали про наше использование инструмента, про их новые фичи. Он мне рассказал, что в последней версии: 🤩джобы запускаются не в airflow, а стартуют отдельные поды в k8s 🤩поддерживается дата-контракты Дата-контакты в OMD — это как второй этап проверки. Мы однажды напоролись на такое, что данные вставлялись без проблем даже при изменении схемы на источнике. Потому что мы в коде брали из датафрейма только столбцы, которые уже были в таргет-таблице🙂 Дальше мы пошли в сендбокс. Посмотрели, как дата-контракты поддерживают изменения схемы, data quality, штуки для безопасности (все, что на скрине). Контракты можно импортнуть и экспортнуть в формате ODCS (Open Data Contract Standard) Еще мне рассказали, что OpenMetadata стартанула всего лишь 5 лет назад! А 10.06 у них будет бесплатный онлайн-саммит Collate Summit '26: Data & AI in Production, на который можно зарегаться После встречи деврел прислал несколько полезных ссылочек, которые мы обсуждали: 📍OpenMetadata’s Kubernetes Scheduler Preview 📍Data Contracts and OpenMetadata 📍OpenMetadata Standards & Building new Connectors with AI 📍OpenMetadata Standards @data_engineerette

Airflow для менеджеров В Ariflow 3.1 появилась группа hitl-операторов, которая позволяет что-то вводить пользаку во время раб
+2
Airflow для менеджеров В Ariflow 3.1 появилась группа hitl-операторов, которая позволяет что-то вводить пользаку во время работы дага
HITL = Human-in-the-loop
🫠 Что делает пример на картинках? Мы задаем даты, выбираем сервисы из списка, вводим почту и получаем отчет. Операторы по сути помогают менеджерам не дергать DA/DE своими адхоками, а пойти самому накликать и выгрузить то, что нужно 🤓 А как это происходит? В базовых примерах после разворачивания airflow появится даг example_hitl_operator. Там есть несколько операторов из пакета airflow.providers.standard.operators.hitl: 🤩HITLOperator — выбрать одну или несколько опций из списка 🤩HITLEntryOperator — ввести любой текст 🤩HITLBranchOperator — выбрать следующую таску 🤩ApprovalOperator — одобрить или отклонить В коде выглядит это вот так:

wait_for_multiple_options = HITLOperator(
  task_id="wait_for_multiple_options",
  subject="Please choose option to proceed: ",
  options=["option 1", "option 2", "option 3"],
  multiple=True,
  defaults=["option 1"],
)
Когда заходите в UI, после запуска дага появляется доп вкладка Required Actions (1), где и нужно прожать опцию. Это все потом отправляется в xcom:

{
  "params_input": {},
  "responded_at": "datetime.datetime@version=2(tz=(UTC,pendulum.tz.timezone.Timezone,1,True),timestamp=1778505898.269782)",
  "chosen_options": [
    "option 2",
    "option 3"
  ],
  "responded_by_user": {
    "id": "1",
    "name": "airflow"
  }
}
Из xcom потом можно достать в других тасках. Сначала обращаетесь по названию таски, а потом работаете, как с обычным словарем:

{{ ti.xcom_pull(task_ids='wait_for_multiple_options')["chosen_options"] }}

{{ ti.xcom_pull(task_ids='wait_for_input')["params_input"]["information"] }}
Use case очень прикольный. Интересно, а вот на практике этим будут пользоваться? @data_engineerette

Куда катится рынок? Недавно заходила послушать обсуждение текущей ситуации на рынке. Что интересного оттуда записала: 1️⃣ Сей
Куда катится рынок? Недавно заходила послушать обсуждение текущей ситуации на рынке. Что интересного оттуда записала: 1️⃣ Сейчас есть смысл просить 300-350-400. Потому что вместо разраба за 500-600 возьмут обычного + дадут ему иишку. Хотя еще совсем недавно говорили, что занижать себе цену тоже не надо
Извините, неудачники нам не нужны
— видимо, больше не работает А вот вилка по аутстаффу — вообще максимум 280-300 на руки 2️⃣ На hh есть плашка "Конкретные достижения". Она видна только hr. И резюме с такой плашкой чаще показывается работодателям. Если у вас нет красивых циферок, то отсутствие плашки — доп фильтр, резюме даже не откроют 3️⃣ "О себе" могут читать первым, поэтому этот раздел нужно заполнять. Но без банальностей по типу "стрессоустойчивый, люблю решать сложные задачи, саморазвиваться" 4️⃣ Нужно хорошо общаться в переписке, без грубости и отношения "все должны" (база, но все же) 5️⃣Когда спрашивают про мотивацию, никогда не упоминать токсичность @data_engineerette

Data Vault за один вечер Решила я тут погрузиться в дата волт на практике. Нашла интересный проект — AutomateDV (бывший dbtvault) У них есть демо-проект, в котором создаются разные сущности, несколько видосов с объяснениями и небольшая, но очень детальная дока 💻 Поставила себе по инструкции dbt-core, dbt-postgres:

python -m pip install dbt-core dbt-postgres
Подключила AutomateDV — это просто пакет в dbt-проекте, задается в packages.yml:

dbt deps 
Подняла постгрю в докере, настроила коннекшены, создала проект:

dbt init
Сгенерила данные из датасета TPC-H и положила их в volume:

pip install tpchgen-cli
mkdir data
tpchgen-cli -s 1 -f csv -o ./data
Создала таблицы и загрузила в них данные:

COPY region FROM '/var/lib/postgresql/data/data/region.csv' DELIMITER ',' CSV HEADER;
🐾 Поначалу я смотрела видосы и делала все ручками. Потом забила и чисто запускала модельки, смотрела, что получается. Фреймворк автоматизирует создание дата волта. Во-первых, для стейджинга можно использовать такие поля: derived_columns - новые поля hashed_columns - поля для хэширования Тут мы добавили поле как алиас другого, поле с константной строкой, сделали хэш из 2х первичный ключей:

{%- set yaml_metadata -%}
source_model: 'raw_orders'
derived_columns:
  CUSTOMER_KEY: 'CUSTOMERKEY'
  RECORD_SOURCE: '!TPCH-ORDERS'
hashed_columns:
  ORDER_CUSTOMER_PK:
  - 'CUSTOMER_KEY'
  - 'ORDERKEY'
...
Во-вторых, создание самих сущностей происходит с помощью удобных макросов:

automate_dv.stage()
automate_dv.hub()
automate_dv.sat()
automate_dv.link()
automate_dv.pit()
...
Все модельки можно позапускать, а потом сгенерить доку по проекту:

dbt run -s +v_stg_orders
dbt run -s hub_customer

dbt docs generate
dbt docs serve
😅 Но саааамое прикольное — это после компиляции моделек зайти в папку target/ и посмотреть, что там нагенерилось. И еще сходить в исходный код самого пакета в dbt_packages/ А нагенерилось там вот такое:

—хэширование нескольких полей
DECODE(MD5(NULLIF(CONCAT_WS('||',
    COALESCE(NULLIF(UPPER(TRIM(CAST(CUSTOMER_KEY AS VARCHAR))), ''), '^^'),
    COALESCE(NULLIF(UPPER(TRIM(CAST(ORDERKEY AS VARCHAR))), ''), '^^')
), '^^||^^')), 'hex') AS ORDER_CUSTOMER_PK,


—отбор по rn для инсерта в линки
ROW_NUMBER() OVER(
    PARTITION BY rr.ORDER_CUSTOMER_PK
    ORDER BY rr.LOAD_DATE
) AS row_number

—отбор уникальных значений в сателлит по хешу
WHERE b.INVENTORY_HASHDIFF != b.prev_hashdiff
В общем, интересно поковыряться, как они придумали, и вдохновиться, если у вас сложнее/что-то забыли учесть/еще не реализовали @data_engineerette

Нетворкинг для разведчиков По рекомендации прочитала книжку «Нетворкинг для разведчиков» от пары советских разведчиков. Она лучше предыдущей, вдохновила меня на практику, но не прям вау, у них много похожих мыслей 🎧 Позже я посмотрела интервью с ними (раз, два), особенно понравилось с женой. Вы представляете, какой удар для детей узнать, что их родители шпионы и теперь они должны покинуть свой дом, друзей и навсегда уехать жить в Россию? 📖 В американской книге автор утверждал, что у него много друзей. А тут авторы говорят, что нетворкинг — это не про поиск друзей, друзья — лишь побочный продукт
Нетворкинг — это заставить человека купить вас
Чтобы хорошо нетворкаться, нужно: 1️⃣Определить цель 2️⃣Определить стратегию, путь к цели, нарисовать карту контактов 3️⃣Продумывать наперед все сценарии развития событий и свои действия 4️⃣Систематически тренироваться Что за карта контактов? Рисуете круг, делите на сектора по областям деятельности и на кольца по плотности знакомства. В итоге я нарисовала 200+ контактов. Потом мне надоело, я не поняла, что дальше делать, и забросила🤣 Видимо, надо сначала придумать цель 📖 Естественно, сближаться нужно не со всеми людьми, а с этими: 📌коннекторы, у кого много знакомых 📌конденсаторы, у которых много инфы (чтобы потом обменять с новыми людьми через коннекторов) 📌мосты, которые открывают доступ к другой стране/организации 📌восходящие звезды = лидеры завтрашнего дня Также рекомендовали возобновить общение со старыми контактами. Я попробовала, но одна половина мне не ответила, с другой после нескольких сообщений общение снова остановилось😁 Из интересного узнала только, что одногруппница из муз колледжа все-таки переехала в Германию, учится там в маге и преподает 📖 Из реальных способов познакомиться предлагается: 📌просить друзей познакомить с их знакомыми (я этим ни разу не пользовалась) 📌бывать в клубах, онлайн группах, встречах 📌участвовать в мероприятиях (митапы, волонтерства) или создать свое Еще в американской книге автор рассказывал, что он изучает соцсети, выписывает списки увлечений. Мне тогда это казалось сталкерством. В моей голове разговор выглядел так: “а я знаю, что вы увлекаетесь шахматами”😏 😏 Но тут я поняла, что это нужно для завязывания диалога, когда вы впроброс говорите:
вы: в свободное время я прихожу в шахматный клуб он: о, а я в университете участвовал в турнирах вы: (искренне удивляясь, хотя фотки с турниров давно у вас сложены в отдельную папочку) правда? а какой у вас рейтинг?..
Из полезного нужно всегда иметь наготове: 📌представление себя 📌главные новости 📌готовые списки тем и вопросов для разговора 📌зацепки (попросить собеседника или предложить помощь самому) Еще я записала себе пару практических упражнений: 📌сидеть в тц, смотреть на людей и делить, с кем хотелось бы встретиться, а с кем нет 📌провести день, обращая внимание на свои и чужие эмоции Что думаете? Стало быть, нетворкинг - это чисто циничная штука? @data_engineerette

Одна из оптимизаций адаптивки У меня есть много запросов вида "select ... from ... order by". В какой-то момент я заметила, что иногда джобы стартуют, а иногда нет, но считается все нормально. Но разобраться-то все равно интересно) ☕️ Я смотрю план запроса у таблиц. Initial Plan у них одинаковый - чтение, селект, сортировка:
== Initial Plan ==
  Sort
  +- Exchange
     +- Project
        +- BatchScan catalog.schema.table
☕️ Смотрю финальный план 1 таблица (запускает джобу):
== Final Plan ==
  AQEShuffleRead
  +- ShuffleQueryStage, Statistics(sizeInBytes=368.0 B, rowCount=1)
     +- Exchange
        +- * Project
           +- BatchScan catalog.schema.table1
Длительность - 4с 2 таблица (не запускает джобу):
== Final Plan ==
   LocalTableScan
Длительность - 10мс И причем тут LocalTableScan? ☕️ Прикол в том, что во второй табличке 0 строк. И включена адаптивка (spark.sql.adaptive.enabled = true). Адаптивка в спарке понимает, что бессмысленно шафлить 0 строк данных, и возвращает результат за несколько мс @data_engineerette

Аналитика, DWH и OLAP-нагрузки растут, и базы начинают упираться в дисковую подсистему… Для таких задач Selectel добавили нов
Аналитика, DWH и OLAP-нагрузки растут, и базы начинают упираться в дисковую подсистему… Для таких задач Selectel добавили новую конфигурацию Mega в базы данных на выделенных облачных серверах. Это кластер объёмом до 27,1 ТБ, приватной сетью 10 Гбит/с и производительностью до 1,5 млн IOPS. Хороший вариант для высоконагруженных и масштабируемых систем, где важна физическая изоляция данных. По стоимости выходит до 47% дешевле, чем стандартные DBaaS-решения. Протестируйте бесплатно, до 30 000 бонусных рублей на запуск — по ссылке: https://slc.tl/57jls Реклама. АО "Селектел". erid:2W5zFGkXM2y

Мой первый инцидент У нас есть процесс дежурств, где нужно следить за кластером, поднимать даги, помогать пользователям И вот уже вечер, все нормально, но внезапно выстрелил алерт. По одному стримингу сильно возросли лаги - накопилось много необработанных сообщений Я смотрю график - да, лаг прочитанных сообщений начал плавно возрастать, а потом улетел в бесконечность Я смотрю в кафку - данные приходят Я смотрю спарк приложение - оно running, тасочки выполняются Все работает, а данных нет 🤔🤔🤔 Детальнее углубляюсь в тасочки - все читается, но количество строк = 0 Смотрю на минимальный оффсет в кафке - а он сииильно дальше. И оффсеты, которые пытается обработать спарк, уже не существуют!😱 Данные лежат только за последние 1,5ч, а не за месяц и ускользают прямо на моих глазах! 😱😱 Я накидываю ресурсов, чтобы как можно быстрее догнать данные. Для апрува пингую человечка, который почти всегда онлайн. Через 15 минут начинают появляться сообщения в табличке, я вздыхаю спокойнее… 👀 Потом я анализирую каунты по датам. Данных пришло в 20 раз больше, чем изначально закладывалось под этот топик @data_engineerette