Data Engineering / Инженерия данных / Data Engineer / DWH
1.94K subscribers
49 photos
7 videos
52 files
350 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
Тестирование в 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
В Airflow 2.7.1 DAG стал выглядеть более юзер френдли 👍
👍7
Is ClickHouse Moving Away from Open Source? – Altinity

Интересно про развитие опен соурс решений. Вообще стратегия развития опенсоурс поверх ядра логичная и на мой взгляд очень правильная. Главное, чтоб не в ущерб ядру и не продались бы кому-то, кто все разрушит.

Preset.io также суперсет развивает. Это большие инвестиции в продукт. А так каждый второй сможет свой saas сервис поднять нахаляву)

https://altinity.com/blog/is-clickhouse-moving-away-from-open-source
А вообще это больше похоже на крик: мы построили часть своего бизнеса на вашем опенсорсе, а теперь вы рушите нам все🫣

Справедливости ради, громадная часть коммитов продукта от ClickHouse команды. Поэтому все справедливо. Делают продукт, делают монетизацию.