Инкрементное извлечение применяется для переноса только измененных данных.
Пакетное инкрементное извлечение используется, в случае, если в источнике есть поля, по которым можно определить измененные строки, например, дата/время изменения. Таким образом можно отфильтровать данные, измененные с момента предыдущей загрузки.
➕ Тоже достаточно просто реализовать
➕ Практически нет проблем с сохранением истории изменений. Но сохраняться будут только конечные состояние строк. Если в течение регламентного периода строка менялась несколько раз, то промежуточные изменения мы не увидим
➖Нельзя отследить удаленные на источнике записи
➖ Последние загруженные значения нужно где-то хранить, каждый раз вычислять их на большом объеме будет тяжелой задачей. Но тут может помочь использование оркестратора, например, Apache Airflow
➖Мало кто строит индексы по подобным полям, а значит процесс извлечения может быть медленным
Потоковое инкрементное извлечение подразумевает передачу изменений практически в реальном времени. Есть несколько подходов для реализации такой передачи.
Например, при возникновении изменений источник сразу записывает их в приемник. Такой подход называется trigger-based.
Или же log-based подход, который применяется, если система-источник ведет лог изменения данных. В таком случае специальные CDC-инструменты могут читать этот лог и отправлять изменения в систему-приемник. Пример – Debezium и Apache Kafka.
➕ Есть возможность получать все изменения практически в реальном времени
➖ Триггеры могут замедлить работу системы-источника, а для чтения логов придется "пошаманить" со специальными инструментами.
Пакетное инкрементное извлечение используется, в случае, если в источнике есть поля, по которым можно определить измененные строки, например, дата/время изменения. Таким образом можно отфильтровать данные, измененные с момента предыдущей загрузки.
➕ Тоже достаточно просто реализовать
➕ Практически нет проблем с сохранением истории изменений. Но сохраняться будут только конечные состояние строк. Если в течение регламентного периода строка менялась несколько раз, то промежуточные изменения мы не увидим
➖Нельзя отследить удаленные на источнике записи
➖ Последние загруженные значения нужно где-то хранить, каждый раз вычислять их на большом объеме будет тяжелой задачей. Но тут может помочь использование оркестратора, например, Apache Airflow
➖Мало кто строит индексы по подобным полям, а значит процесс извлечения может быть медленным
Потоковое инкрементное извлечение подразумевает передачу изменений практически в реальном времени. Есть несколько подходов для реализации такой передачи.
Например, при возникновении изменений источник сразу записывает их в приемник. Такой подход называется trigger-based.
Или же log-based подход, который применяется, если система-источник ведет лог изменения данных. В таком случае специальные CDC-инструменты могут читать этот лог и отправлять изменения в систему-приемник. Пример – Debezium и Apache Kafka.
➕ Есть возможность получать все изменения практически в реальном времени
➖ Триггеры могут замедлить работу системы-источника, а для чтения логов придется "пошаманить" со специальными инструментами.
👍7
Из интересного "на почитать".
Все четко и по делу. Естественно, ни о какой “очередной смерти бигдаты” речи не идет, скорее об изменении мышления. Последние пару лет многие компании озаботились ценностью, которую им приносят данные, поиском шаблонов их использования, поиском редко запрашиваемых данных для оптимизации хранения и ускорения запросов к данным. А некоторые даже подобрались к великому вопросу имени Гарика "Бульдога" Харламова: "А нужна ли вот аналитика вообще, в принципе? Нужна потому, что?” - “Потому что гладиолус,” - их уже не устраивает.
Я вижу некий парадокс в том, что data-driven подход, который подразумевает переход от принятия решений на основе экспертной оценки к решениям на основе данных, сам по себе является сейчас даже не expert-, а business-driven. А что если можно применить data-driven подход к самому data-driven подходу?🤔
https://motherduck.com/blog/big-data-is-dead/
Все четко и по делу. Естественно, ни о какой “очередной смерти бигдаты” речи не идет, скорее об изменении мышления. Последние пару лет многие компании озаботились ценностью, которую им приносят данные, поиском шаблонов их использования, поиском редко запрашиваемых данных для оптимизации хранения и ускорения запросов к данным. А некоторые даже подобрались к великому вопросу имени Гарика "Бульдога" Харламова: "А нужна ли вот аналитика вообще, в принципе? Нужна потому, что?” - “Потому что гладиолус,” - их уже не устраивает.
Я вижу некий парадокс в том, что data-driven подход, который подразумевает переход от принятия решений на основе экспертной оценки к решениям на основе данных, сам по себе является сейчас даже не expert-, а business-driven. А что если можно применить data-driven подход к самому data-driven подходу?🤔
https://motherduck.com/blog/big-data-is-dead/
MotherDuck
Big Data is Dead - MotherDuck Blog
Big data is dead. Long live easy data.
👍4
Лирическое отступление или как стать инженером данных.
Начните с изучения того, что станет фундаментом вашей карьеры
✅ Алгоритмы и структуры данных
✅ Теория баз данных и SQL
✅ Теория хранилищ данных
✅ Data Mesh
✅ Git
✅ Docker
Пустая трата времени:
❌ Изучение конкретного иструмента, если не планируете применять его здесь и сейчас.
❌ Изучение “хайпового” инструмента. “Чем больше хайп, тем громче падает,” - кажется, так говорили в моем севернодеревенском детстве.
Начните с изучения того, что станет фундаментом вашей карьеры
✅ Алгоритмы и структуры данных
✅ Теория баз данных и SQL
✅ Теория хранилищ данных
✅ Data Mesh
✅ Git
✅ Docker
Пустая трата времени:
❌ Изучение конкретного иструмента, если не планируете применять его здесь и сейчас.
❌ Изучение “хайпового” инструмента. “Чем больше хайп, тем громче падает,” - кажется, так говорили в моем севернодеревенском детстве.
👍8
Forwarded from Продуктовошная Михаила Грекова
Тренд 2023 года: уволенные и безработные ИТшники предлагают менторство на тему "войти в ИТ", "как джуну найти первую работу".
😁9🤡3
Способы извлечения/поглощения данных
▪️Прямое подключение к базе данных (SQL, ETL-инструменты, Python и т. п.)
▪️Чтение лога базы данных (CDC-инструменты, например Debezium)
▪️API. Поставщик данных предоставляет интерфейс для доступа к ним (Python и т. д.)
▪️Брокеры сообщений
▪️Обмен файлами. Система-источник выгружает файл с данными в согласованном формате, например, в объектное хранилище по расписанию. Экстремальный случай – файл выгружает специально обученный человек и отправляет его по почте.
Это не все случаи, которые инженер данных может встретить в своей деятельности, но с этими хорошо бы уметь работать, потому что, на мой взгляд, они встречаются чаще других.
Кажется, на этом разговор про поглощение можно заканчивать и двигаться дальше.
▪️Прямое подключение к базе данных (SQL, ETL-инструменты, Python и т. п.)
▪️Чтение лога базы данных (CDC-инструменты, например Debezium)
▪️API. Поставщик данных предоставляет интерфейс для доступа к ним (Python и т. д.)
▪️Брокеры сообщений
▪️Обмен файлами. Система-источник выгружает файл с данными в согласованном формате, например, в объектное хранилище по расписанию. Экстремальный случай – файл выгружает специально обученный человек и отправляет его по почте.
Это не все случаи, которые инженер данных может встретить в своей деятельности, но с этими хорошо бы уметь работать, потому что, на мой взгляд, они встречаются чаще других.
Кажется, на этом разговор про поглощение можно заканчивать и двигаться дальше.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Когда наконец-то завершил курс "Инженер облачных сервисов" от Яндекса.
👍5
Следующая задача инженера данных – организовать постоянное или промежуточное хранение для извлеченных данных. А значит, нужно понимать, какие подходы и системы для этого используются.
Основные подходы
Data Warehouse (хранилище данных)
Data Lake (озеро данных)
Data Lakehouse (русскоязычный термин мне не встречался)
Data Platform (платформа данных)
Продолжение следует...
Основные подходы
Data Warehouse (хранилище данных)
Data Lake (озеро данных)
Data Lakehouse (русскоязычный термин мне не встречался)
Data Platform (платформа данных)
Продолжение следует...
👍5
Data Warehouse или же хранилище данных (в русском переводе “книги с кабанчиком” – склад данных)
Отцом данного подхода, увидевшего свет в 1990 году, является товарищ Билл Инмон, определение которого я и приведу.
Хранилище данных – предметно-ориентированная, интегированная, неизменяемая, зависимая от времени база данных, предназначенная для поддержки принятия решений.
Характеристики хранилища данных
▪️ Предметно-ориентированность (subject-oriented) – данные хранятся в соответствии с областями, которые они описывают
▪️Интегрированность (integrated) – данные объединены из различных источников и структурированы
▪️Неизменяемость (nonvolatile) – данные в хранилище не должны изменяться или удаляться (если это, конечно, не противоречит действующему законодательству)
▪️Засисимость от времени (time variant) – сохраняется история изменения данных в источнике.
Существуют разные подходы к проектированию хранилищ, но все их объединяет одно: данные преобразованы и структурированы таким образом, чтобы поддерживать "тяжелые" аналитические запросы.
Отцом данного подхода, увидевшего свет в 1990 году, является товарищ Билл Инмон, определение которого я и приведу.
Хранилище данных – предметно-ориентированная, интегированная, неизменяемая, зависимая от времени база данных, предназначенная для поддержки принятия решений.
Характеристики хранилища данных
▪️ Предметно-ориентированность (subject-oriented) – данные хранятся в соответствии с областями, которые они описывают
▪️Интегрированность (integrated) – данные объединены из различных источников и структурированы
▪️Неизменяемость (nonvolatile) – данные в хранилище не должны изменяться или удаляться (если это, конечно, не противоречит действующему законодательству)
▪️Засисимость от времени (time variant) – сохраняется история изменения данных в источнике.
Существуют разные подходы к проектированию хранилищ, но все их объединяет одно: данные преобразованы и структурированы таким образом, чтобы поддерживать "тяжелые" аналитические запросы.
👍4
DE Skill Set от Marc Lamberti
(возможно, самый известный популяризатор Apache Airflow, рекомендую начать следить за его публикациями, если еще нет)
Копипаст, если вдруг кому-то лень лезть в Линкедин
The Data Engineer Skill Set 🧳
These skills will set you up to become a Data Engineer 🚀
Don't chase the hype!
Trends and tools change; Core concepts stay 😉
P.S: Soft skills are important too. Communication is key!
И ссылка на оригинал для тех, кому не лень
(возможно, самый известный популяризатор Apache Airflow, рекомендую начать следить за его публикациями, если еще нет)
Копипаст, если вдруг кому-то лень лезть в Линкедин
The Data Engineer Skill Set 🧳
These skills will set you up to become a Data Engineer 🚀
Don't chase the hype!
Trends and tools change; Core concepts stay 😉
P.S: Soft skills are important too. Communication is key!
И ссылка на оригинал для тех, кому не лень
👍6
Data Lake (Озеро данных) – предназначено для хранения большого объема данных в “сыром” (Raw), необработанном виде.
Данные обычно поступают из нескольких разнородных источников и могут быть структурированными, частично структурированными (CSV, лог файлы, XML, JSON) и неструктурированными (почтовые сообщения, документы, pdf).
Данные обычно поступают из нескольких разнородных источников и могут быть структурированными, частично структурированными (CSV, лог файлы, XML, JSON) и неструктурированными (почтовые сообщения, документы, pdf).
👍5❤1
Data LakeHouse – для многих архитектура мечты😀
Если совсем просто, то это гибрид DL и DWH, в котором данные хранятся в DL (объектное хранилище, например), только к этому прикручена возможность поддержки схемы данных, транзакций и update/delete операций.
Основные проекты, которые помогут построить LakeHouse: Delta Lake, Apache Iceberg и Hudi.
Если совсем просто, то это гибрид DL и DWH, в котором данные хранятся в DL (объектное хранилище, например), только к этому прикручена возможность поддержки схемы данных, транзакций и update/delete операций.
Основные проекты, которые помогут построить LakeHouse: Delta Lake, Apache Iceberg и Hudi.
👍4
У меня тут вопрос пятничный созрел. Если вдруг попадается статья интересная на анлийском, настолько интересная, что хочется процитировать. Переводить цитату или нет? Ссылку на оригинал разумеется предоставлю.
Anonymous Poll
42%
Переводить
38%
Не переводить
20%
Когда ты наконец начнешь читать на итальянском?
Кажется, что определений платформы данных не меньше, чем определений профессии “инженер данных”. В любом случае, это комплексное решение, объединяющее средства для поглощения, хранения, преобразования и анализа данных, а также для оркестрации потоков данных и др.
С точки зрения хранения, это обычно сочетание DL и DWH. Данные из различных источников загружаются в DL, структурируются и загружаются в DWH. А в обратном направлении в DL выгружаются архивные данные.
Пример
https://habr.com/ru/company/leroy_merlin/blog/561072/
С точки зрения хранения, это обычно сочетание DL и DWH. Данные из различных источников загружаются в DL, структурируются и загружаются в DWH. А в обратном направлении в DL выгружаются архивные данные.
Пример
https://habr.com/ru/company/leroy_merlin/blog/561072/
👍3
Переходим к видам систем, которые могут быть использованы как для организации промежуточного хранения на разных этапах движения данных, так и в качестве ядра корпоративной платформы данных.
Реляционные БД (PostgreSQL, MSSQL, Oracle и т. д.) по-прежнему остаются популярными в качестве основы для построения хранилищ данных, особенно небольших (примерно до 1ТБ).
Главный их плюс на текущий момент, как мне кажется, заключается в большом количестве условно доступных специалистов. При отстутствии дата-команды ответственность за аналитику перекладывается на DBA, которые просто рядом с основной БД создают еще одну и начинают туда перекладывать данные.
Главный минус тоже очевиден. С тяжелыми запросами, выбирающими большие объемы данных, могут возникнуть проблемы, даже если все и вся перекрыть индексами. Поэтому ведущие производители таких СУБД дополняют их средствами для поддержки подобных запросов, например, колоночные индексы в MSSQL.
Продолжение следует...
Реляционные БД (PostgreSQL, MSSQL, Oracle и т. д.) по-прежнему остаются популярными в качестве основы для построения хранилищ данных, особенно небольших (примерно до 1ТБ).
Главный их плюс на текущий момент, как мне кажется, заключается в большом количестве условно доступных специалистов. При отстутствии дата-команды ответственность за аналитику перекладывается на DBA, которые просто рядом с основной БД создают еще одну и начинают туда перекладывать данные.
Главный минус тоже очевиден. С тяжелыми запросами, выбирающими большие объемы данных, могут возникнуть проблемы, даже если все и вся перекрыть индексами. Поэтому ведущие производители таких СУБД дополняют их средствами для поддержки подобных запросов, например, колоночные индексы в MSSQL.
Продолжение следует...
👍3
Лирическое отступление - 2 или внутри инженера данных.
Мне всегда нравилось возиться с цифрами. В четвертом классе на вопрос: "Кем ты хочешь стать?" - я уверенно отвечал: “статистиком”. Примерно в то же время я "построил" свою первую платформу данных, когда мама попросила перенести на "холодное хранение" кучи номеров еженедельника "Футбол", захламлявших антресоли.
В качестве Object Storage я выбрал красную папку советского производства, в качестве ETL-инструмента – ножницы, для визуализации – зеленую школьную тетрадь в клетку (18 листов, Архангельский Целлюлозно-Бумажный Комбинат).
Я вырезал понравившиеся мне материалы из еженедельника и складывал их в папочку. А уже потом, когда первоначальная загрузка была завершена, приступил к анализу. Я рисовал в тетрадке таблицы лучших бомбардиров всех времен различных европейских футбольных турниров: Кубка Обладателей Кубков, Кубка Чемпионов, Кубка УЕФА. Используя придуманные мной алгоритмы, составлял символические сборные чемпионатов СССР по футболу. Такой вот data science, ага…
В общем, если уж хотите стать инженером данных, ищите мотивацию внутри себя. Ни деньги, ни технологии, ни хайп не сделают вас счастливее. А вот осознание того, что каждый день занимаешься любимым делом, сделает. А когда еще за это и деньги платят… 😀
Мне всегда нравилось возиться с цифрами. В четвертом классе на вопрос: "Кем ты хочешь стать?" - я уверенно отвечал: “статистиком”. Примерно в то же время я "построил" свою первую платформу данных, когда мама попросила перенести на "холодное хранение" кучи номеров еженедельника "Футбол", захламлявших антресоли.
В качестве Object Storage я выбрал красную папку советского производства, в качестве ETL-инструмента – ножницы, для визуализации – зеленую школьную тетрадь в клетку (18 листов, Архангельский Целлюлозно-Бумажный Комбинат).
Я вырезал понравившиеся мне материалы из еженедельника и складывал их в папочку. А уже потом, когда первоначальная загрузка была завершена, приступил к анализу. Я рисовал в тетрадке таблицы лучших бомбардиров всех времен различных европейских футбольных турниров: Кубка Обладателей Кубков, Кубка Чемпионов, Кубка УЕФА. Используя придуманные мной алгоритмы, составлял символические сборные чемпионатов СССР по футболу. Такой вот data science, ага…
В общем, если уж хотите стать инженером данных, ищите мотивацию внутри себя. Ни деньги, ни технологии, ни хайп не сделают вас счастливее. А вот осознание того, что каждый день занимаешься любимым делом, сделает. А когда еще за это и деньги платят… 😀
👍5😁2👏1
Очень люблю такие статьи. Все четко, по полочкам, по уму. Но не работает (в подавляющем большинстве случаев). Чтобы внедрить культуру данных, корпоративную культуру и прочие "над-культуры", должен появиться определенный уровень "просто-культуры". А пока этот уровень находится где-то в районе "Айзек Азимов за свою жизнь написал 500 книг, это ровно на 500 книг больше, чем прочитали мои родители", все попытки внедрения сродни попыткам измельчить жидкость без вкуса, цвета и запаха до размера молекулы продолговатым предметом в сосуде округлой формы.
Поэтому, условно говоря, сначала Чехов, а уж потом Клеппман...
P.S. Цитата про Айзека Азимова принадлежит доктору Шелдону Куперу в переводе "Кураж-Бамбей".
https://big-i.ru/innovatsii/tekhnologii/kak-sozdat-v-kompanii-kulturu-dannykh/
Поэтому, условно говоря, сначала Чехов, а уж потом Клеппман...
P.S. Цитата про Айзека Азимова принадлежит доктору Шелдону Куперу в переводе "Кураж-Бамбей".
https://big-i.ru/innovatsii/tekhnologii/kak-sozdat-v-kompanii-kulturu-dannykh/
big-i.ru
Как создать в компании культуру данных | Большие Идеи
Большие идеи
👍3