Подъехала задачка!
На картинке 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
Самый дурацкий кусок кода
У вас есть такой код, который вы один раз увидели, но никогда не забудете? Потому что он был настолько странным и запомнился надолго
😱 У меня такой есть. Это джойн 15 раз в цикле с таблицей, от которой отфильтровываются строки, при этом несколько раз копируются датафреймы
Хоть и требовалось максимально сохранить код автора, но я все равно переписала на один джойн + фильтр. Смотря на оригинальный код, я даже сейчас не до конца понимаю, что там происходит и как это писалось🤪
@data_engineerette
У вас есть такой код, который вы один раз увидели, но никогда не забудете? Потому что он был настолько странным и запомнился надолго
Хоть и требовалось максимально сохранить код автора, но я все равно переписала на один джойн + фильтр. Смотря на оригинальный код, я даже сейчас не до конца понимаю, что там происходит и как это писалось
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚12🤷1
Как я проводила собесы
Собесы я хотела проводить еще года 4 назад. Но тогда брали коллегу, которая пришла чуть раньше меня( Но моя цель все-таки реализовалась, и я наняла 1 DE и 1 DQE
🤔 Всего я провела 25 собеседований. Резюме из канала поначалу кидала техлиду, чтобы он помог понять, подходит ли человек и на что вообще смотреть. HR раз в неделю присылала по 10 резюме, мы с PO отбирали понравившихся кандидатов по принципу: сомнение = нет
Для подготовки мне дали файлики с вопросами по грейдам. Позже я собрала свой пул, добавив вопросы со своих и чужих собесов
Перед собесом я обязательно внимательно просматривала резюме, записывала все неясные моменты. Открывала список своих вопросов и решала, с чего начать. Я вела заметки по каждому кандидату: особенности опыта, заданные вопросы, каких знаний не хватает, эмоциональное впечатление
👩💻 Я начинала с вопросов по опыту, подмечала несостыковки, потом это раскручивала. Было прикольно, когда один вопрос сразу вскрывал правду 😁 Вроде написано sql и несколько бд, а там: таблички не создавал, в бд ничего не писал, full join не использовал, объемы не знает, про кликхаус только слышал, да и начал изучать месяц назад
По технике у меня не было конкретного порядка. Просто 300 вопросов - некоторые я задавала почти всегда, а остальные выбирала по ходу. Иногда кандидат был хорошим и не хотелось задавать простецкие вопросы. Иногда приходилось спрашивать про having и все равно получать неправильный ответ😭
Некоторые кандидаты были не очень с первых минут, но мы все равно сидели час. В следующий раз порекомендовали просто завершать встречу пораньше. Хотя со мной дважды завершали встречу через 20 минут - было неприятно))
После собеса мы с PO обменивались мнениями, и разногласий практически не было. Вот некоторые ред и грин флаги из моих заметок:
❌ нет вопросов, не заинтересован в вакансии
❌ нет общих де чатиков
❌ "просто делал, что мне сказала команда"
❌ очень много говорит "разное", обобщенно
❌ жутко медленный, сложно следить за ходом мысли
❌ много говорит, нечетко отвечает
❌ душный, тяжелый, прикапывается к каждому вопросу
❌ подключился с улицы с телефона в костюмчике
❌ не понравилось, когда старший коллега спросил, можно ли в хайве сделать primary key (типо опытнее, но тупее)
✅ ОС попросил от меня по ответам
✅ "готов с этим справляться"
✅ приятный уверенный чел
✅ инициативный, осознанный
✅ умеет думать
Кто тоже проводил, поделитесь своими флагами?
@data_engineerette
Собесы я хотела проводить еще года 4 назад. Но тогда брали коллегу, которая пришла чуть раньше меня( Но моя цель все-таки реализовалась, и я наняла 1 DE и 1 DQE
Для подготовки мне дали файлики с вопросами по грейдам. Позже я собрала свой пул, добавив вопросы со своих и чужих собесов
Перед собесом я обязательно внимательно просматривала резюме, записывала все неясные моменты. Открывала список своих вопросов и решала, с чего начать. Я вела заметки по каждому кандидату: особенности опыта, заданные вопросы, каких знаний не хватает, эмоциональное впечатление
Собес - это из black box (или gray box, т.к. есть резюме) сделать white box.
из заметок дата инженеретты
По технике у меня не было конкретного порядка. Просто 300 вопросов - некоторые я задавала почти всегда, а остальные выбирала по ходу. Иногда кандидат был хорошим и не хотелось задавать простецкие вопросы. Иногда приходилось спрашивать про having и все равно получать неправильный ответ
Некоторые кандидаты были не очень с первых минут, но мы все равно сидели час. В следующий раз порекомендовали просто завершать встречу пораньше. Хотя со мной дважды завершали встречу через 20 минут - было неприятно))
После собеса мы с PO обменивались мнениями, и разногласий практически не было. Вот некоторые ред и грин флаги из моих заметок:
Кто тоже проводил, поделитесь своими флагами?
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍10❤5😁5
Как поведёт себя аналитическая СУБД в облаке под нагрузкой? Разбор реального кейса
Selectel и СР-ТЕХ приглашают на практический вебинар, где покажут, как провели нагрузочное тестирование и масштабировали аналитический кластер на 111 узлов всего за час в облаке.
📅 31 марта, 12:00
📍 Онлайн
👥 Для дата-инженеров, архитекторов данных, DevOps и SRE-инженеров, технических руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/y4ba6
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFJybJAd
Selectel и СР-ТЕХ приглашают на практический вебинар, где покажут, как провели нагрузочное тестирование и масштабировали аналитический кластер на 111 узлов всего за час в облаке.
📅 31 марта, 12:00
📍 Онлайн
👥 Для дата-инженеров, архитекторов данных, DevOps и SRE-инженеров, технических руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/y4ba6
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFJybJAd
👍3🤷3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19 12😭4💯1
Как положить гитлаб?
Кратко: внедрить нейронку🧑🦲
Что произошло?
В MR начали бесконечно запускаться пайплайны с тестами каждые полминуты. Когда я впервые увидела, их уже было 90 штук!🪿
Как мы до такого докатились?
Есть джоба, которая скачивает либу, красиво форматирует файлики и пушит изменения
Нейронка добавила кэширование, чтобы при повторной установке либа бралась из кэша, а не скачивалась по сети
Вроде бы хотелось как лучше, а получилось как всегда
Все сломалось😭
Что было упущено?
1. Изначально джоба коммитила все измененные файлики через
2. Папка с кэшом не была добавлена в
🤓 В общем, на нейронку надейся, а сам не плошай
@data_engineerette
Кратко: внедрить нейронку
Что произошло?
В MR начали бесконечно запускаться пайплайны с тестами каждые полминуты. Когда я впервые увидела, их уже было 90 штук!
Как мы до такого докатились?
Есть джоба, которая скачивает либу, красиво форматирует файлики и пушит изменения
Нейронка добавила кэширование, чтобы при повторной установке либа бралась из кэша, а не скачивалась по сети
Вроде бы хотелось как лучше, а получилось как всегда
Все сломалось
Что было упущено?
1. Изначально джоба коммитила все измененные файлики через
git add . Но и никогда не предполагалось, что будет писаться в репо что-то еще. Здесь сузили git add до папки/типов файлов2. Папка с кэшом не была добавлена в
.gitignore
3. Никто не увидел опасности этого изменения, потому что была еще куча других
@data_engineerette
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🌚5 4
Каждому по лейкхаусу
Мой коллега Саша запилил крутецкий курс по айсбергу!😎 Я сама его полностью прошла, записала несколько новых для себя моментов и осталась очень довольна контентом👍
Например, вы знаете, как сделать CDC на айсберге? Или как выглядит partition evolution на уровне storage? У вас могут лежат непартицированные, партицированные и по-разному партицированные данные в одном месте, и это работает🤩
Поэтому если хотите освоить технологию на практике и перейти в Senior-лигу, то присмотритесь к курсу «Apache Iceberg для Data Engineer»
Главная фишка: вы соберете полноценный Lakehouse прямо на своем ноутбуке
В программе только суть:
🤩 Внутреннее устройство и транзакционность таблиц
🤩 Data-as-Code: Time Travel, ветвление и тегирование
🤩 Performance Tuning: как выжать из Iceberg максимум скорости
🎁 Специально для подписчиков моего канала - скидка 15% по промокоду
🚀 Регистрация тут
Мой коллега Саша запилил крутецкий курс по айсбергу!
Например, вы знаете, как сделать CDC на айсберге? Или как выглядит partition evolution на уровне storage? У вас могут лежат непартицированные, партицированные и по-разному партицированные данные в одном месте, и это работает
Поэтому если хотите освоить технологию на практике и перейти в Senior-лигу, то присмотритесь к курсу «Apache Iceberg для Data Engineer»
Главная фишка: вы соберете полноценный Lakehouse прямо на своем ноутбуке
В программе только суть:
DATA_ENGINEERETTE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍12 5