Data Engineering / Инженерия данных / Data Engineer / DWH
1.91K subscribers
49 photos
7 videos
52 files
349 links
Data Engineering: ETL / DWH / Data Pipelines based on Open-Source software. Инженерия данных.

DWH / SQL
Python / ETL / ELT / dbt / Spark
Apache Airflow

Рекламу не размещаю
Вопросы: @iv_shamaev | datatalks.ru
Download Telegram
https://github.com/apache/seatunnel - SeaTunnel is a distributed, high-performance data integration platform for the synchronization and transformation of massive data (offline & real-time).
👍1
Data Engineering Bootcamp final project

Presentation of the WeCLoudData Data Engineering Bootcamp final project. This project builds a real-time application that collects data streamed from airplanes into an API called OpenSky REST API, and streams the data collected using Kafka and Spark Streaming to create live visual models that can be analyzed on Apache Superset.

https://www.youtube.com/watch?v=YLg45TL1GPA
Тестирование в Python для Data Engineer включает в себя проверку корректности и надежности программного кода, который обрабатывает и анализирует данные.

Основные аспекты тестирования:

1️⃣ Юнит-тесты: Юнит-тестирование - это процесс проверки отдельных компонентов кода, таких как функции, классы или модули, чтобы убедиться, что они работают правильно. В Python для этого можно использовать фреймворк для тестирования, такой как unittest или pytest. Юнит-тесты для Data Engineer могут проверять правильность обработки данных, правильность преобразований, корректность запросов к базе данных и другие аспекты работы с данными. Например, юнит-тесты могут включать проверку правильности вычислений, корректности фильтрации и сортировки данных, а также соответствия ожидаемому формату данных.

Один из подходов к юнит-тестированию для Data Engineer в Python заключается в создании тестовых данных, вызове функций или методов, которые обрабатывают данные, и сравнении полученных результатов с ожидаемыми значениями. Например, если у вас есть функция для расчета среднего значения столбца в таблице данных, вы можете создать тестовую таблицу с известными значениями и проверить, что функция возвращает правильное среднее значение.

Важно также учитывать особенности работы с внешними источниками данных, такими как базы данных или API. В таких случаях можно использовать механизмы мокирования (mocking) или создавать тестовые базы данных с предопределенными значениями для проверки корректности запросов и обработки полученных данных.

Юнит-тесты для Data Engineer обычно запускаются автоматически при каждом изменении кода и включаются в непрерывную интеграцию (CI) проекта. Это позволяет обнаруживать ошибки и проблемы сразу же после внесения изменений в код.

2️⃣ Интеграционное тестирование: При разработке решений для Data Engineering, часто требуется интегрировать различные компоненты системы, такие как базы данных, инструменты аналитики и другие сервисы. Интеграционное тестирование в Python включает в себя проверку взаимодействия между этими компонентами и корректность передачи данных между ними. Для этого можно использовать фреймворки, такие как pytest или nose, и создавать тестовые сценарии, которые воспроизводят реальные сценарии использования данных.

3️⃣ Тестирование баз данных: При работе с данными в Data Engineering, базы данных играют важную роль. Тестирование баз данных включает проверку правильности создания таблиц, выполнение запросов, обработку ошибок и обеспечение целостности данных. В Python для тестирования баз данных можно использовать библиотеки, такие как pytest-django или SQLAlchemy, которые облегчают создание тестовых сценариев и проверку корректности работы с базами данных.

4️⃣ Нагрузочное тестирование: Data Engineering часто включает в себя обработку больших объемов данных. Нагрузочное тестирование позволяет проверить производительность и масштабируемость решений. Для этого можно использовать инструменты, такие как Locust или Apache JMeter, которые позволяют создавать тестовые сценарии с различными объемами данных и проверять производительность системы.

5️⃣ Автоматизация тестирования: Чтобы обеспечить эффективность и надежность процесса тестирования, рекомендуется автоматизировать тесты. Это позволяет повторно выполнять тесты при каждом изменении кода и автоматически обнаруживать возможные проблемы. В Python можно использовать фреймворки и инструменты, такие как pytest, unittest или Robot Framework, для автоматизации тестирования и интеграции тестов в процесс разработки.

Что посмотреть и почитать на тему тестирования:
🔹 YouTube PlayList: Автоматизация тестирования с Pytest и Python (и в дополнение к плейлисту github.com->pytestLessonsCode исходный код)
🔹 Тестирование качества данных (Data Quality Testing) в “Библия QA”
🔹 YouTube Video: Лекция Яндекс - Python тестирование
YouTube Video: PYTHON PYTEST. ОСНОВЫ. ЧАСТЬ 1 и ЧАСТЬ 2
​​Типичная задача аналитика — посчитать и выгрузить что-то на pySpark. Способов несколько — от маленьких табличек в Excel до объемных датасетов.

Делать все быстро и правильно поможет этот гайд от Александра Ледовского — тимлида команды аналитики и DS, который строит рекламные аукционы в Авито. Он рассказывает, как работать в Apache Spark, в том числе:

как использовать функцию toPandas вместе с библиотекой pyArrow;
как обходить ограничения Arrow;
когда toPandas не стоит использовать и какие еще есть варианты.

Справиться с проблемами гораздо легче, перенимая опыт лучших. Так что переходите по ссылке и пользуйтесь — там все доступно, понятно и четко.
YOUTUBE PLAYLIST:
Clickhouse analytics system from Yandex

Большая подборка ClickHouse

https://www.youtube.com/playlist?list=PLAZrYP5W_atYAh7BRYv4I3cNZmMVEfF1w
Kubeflow vs MLFlow

Kubeflow is an end-to-end MLOps platform for AI at scale. Canonical has its own distribution, Charmed Kubeflow, which addresses the entire machine-learning lifecycle. Charmed Kubeflow is a suite of tools, such as Notebooks for training, Pipeline for automation, Katib for hyperparameter tuning or KServe for model serving and more. Charmed Kubeflow benefits from a wide range of integrations with other tools such as MLFlow, Spark, Grafana or Prometheus.

MLFLow on the other hand celebrated 10 million downloads last year. It’s a very popular solution when it comes to machine learning. Although it started initially with a core function, the tool has nowadays four conceptions that include model registry or experiment tracking.

https://www.youtube.com/watch?v=Eve6WVXURoQ
👍1