Тестирование в Python для Data Engineer включает в себя проверку корректности и надежности программного кода, который обрабатывает и анализирует данные.
Основные аспекты тестирования:
1️⃣ Юнит-тесты: Юнит-тестирование - это процесс проверки отдельных компонентов кода, таких как функции, классы или модули, чтобы убедиться, что они работают правильно. В Python для этого можно использовать фреймворк для тестирования, такой как
Один из подходов к юнит-тестированию для Data Engineer в Python заключается в создании тестовых данных, вызове функций или методов, которые обрабатывают данные, и сравнении полученных результатов с ожидаемыми значениями. Например, если у вас есть функция для расчета среднего значения столбца в таблице данных, вы можете создать тестовую таблицу с известными значениями и проверить, что функция возвращает правильное среднее значение.
Важно также учитывать особенности работы с внешними источниками данных, такими как базы данных или API. В таких случаях можно использовать механизмы мокирования (mocking) или создавать тестовые базы данных с предопределенными значениями для проверки корректности запросов и обработки полученных данных.
Юнит-тесты для Data Engineer обычно запускаются автоматически при каждом изменении кода и включаются в непрерывную интеграцию (CI) проекта. Это позволяет обнаруживать ошибки и проблемы сразу же после внесения изменений в код.
2️⃣ Интеграционное тестирование: При разработке решений для Data Engineering, часто требуется интегрировать различные компоненты системы, такие как базы данных, инструменты аналитики и другие сервисы. Интеграционное тестирование в Python включает в себя проверку взаимодействия между этими компонентами и корректность передачи данных между ними. Для этого можно использовать фреймворки, такие как pytest или nose, и создавать тестовые сценарии, которые воспроизводят реальные сценарии использования данных.
3️⃣ Тестирование баз данных: При работе с данными в Data Engineering, базы данных играют важную роль. Тестирование баз данных включает проверку правильности создания таблиц, выполнение запросов, обработку ошибок и обеспечение целостности данных. В Python для тестирования баз данных можно использовать библиотеки, такие как
4️⃣ Нагрузочное тестирование: Data Engineering часто включает в себя обработку больших объемов данных. Нагрузочное тестирование позволяет проверить производительность и масштабируемость решений. Для этого можно использовать инструменты, такие как Locust или Apache JMeter, которые позволяют создавать тестовые сценарии с различными объемами данных и проверять производительность системы.
5️⃣ Автоматизация тестирования: Чтобы обеспечить эффективность и надежность процесса тестирования, рекомендуется автоматизировать тесты. Это позволяет повторно выполнять тесты при каждом изменении кода и автоматически обнаруживать возможные проблемы. В Python можно использовать фреймворки и инструменты, такие как
Что посмотреть и почитать на тему тестирования:
🔹 YouTube PlayList: Автоматизация тестирования с Pytest и Python (и в дополнение к плейлисту github.com->pytestLessonsCode исходный код)
🔹 Тестирование качества данных (Data Quality Testing) в “Библия QA”
🔹 YouTube Video: Лекция Яндекс - Python тестирование
YouTube Video: PYTHON PYTEST. ОСНОВЫ. ЧАСТЬ 1 и ЧАСТЬ 2
Основные аспекты тестирования:
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
GitHub
GitHub - canyoupleasecreateanaccount/pytestLessonsCode: Hello my dear friend ^_^ It is pytest project. I hope that the project…
Hello my dear friend ^_^ It is pytest project. I hope that the project will be as cookbook for you on you way to python automation. - canyoupleasecreateanaccount/pytestLessonsCode
Forwarded from Бизнес-анализ & IT
Типичная задача аналитика — посчитать и выгрузить что-то на pySpark. Способов несколько — от маленьких табличек в Excel до объемных датасетов.
Делать все быстро и правильно поможет этот гайд от Александра Ледовского — тимлида команды аналитики и DS, который строит рекламные аукционы в Авито. Он рассказывает, как работать в Apache Spark, в том числе:
✅как использовать функцию toPandas вместе с библиотекой pyArrow;
✅как обходить ограничения Arrow;
✅когда toPandas не стоит использовать и какие еще есть варианты.
Справиться с проблемами гораздо легче, перенимая опыт лучших. Так что переходите по ссылке и пользуйтесь — там все доступно, понятно и четко.
Делать все быстро и правильно поможет этот гайд от Александра Ледовского — тимлида команды аналитики и DS, который строит рекламные аукционы в Авито. Он рассказывает, как работать в Apache Spark, в том числе:
✅как использовать функцию toPandas вместе с библиотекой pyArrow;
✅как обходить ограничения Arrow;
✅когда toPandas не стоит использовать и какие еще есть варианты.
Справиться с проблемами гораздо легче, перенимая опыт лучших. Так что переходите по ссылке и пользуйтесь — там все доступно, понятно и четко.
YOUTUBE PLAYLIST:
Clickhouse analytics system from Yandex
Большая подборка ClickHouse
https://www.youtube.com/playlist?list=PLAZrYP5W_atYAh7BRYv4I3cNZmMVEfF1w
Clickhouse analytics system from Yandex
Большая подборка ClickHouse
https://www.youtube.com/playlist?list=PLAZrYP5W_atYAh7BRYv4I3cNZmMVEfF1w
Настройки для сервера ClickHouse для Docker-Compose: https://github.com/Altinity/clickhouse-grafana/tree/master/docker/clickhouse
Сам docker-compose для ClickHouse можно выдернуть из файла:https://github.com/Altinity/clickhouse-grafana/blob/master/docker-compose.yaml
Настройки для ClickHouse-Cluster: https://github.com/tetafro/clickhouse-cluster/tree/master
Сам docker-compose для ClickHouse можно выдернуть из файла:https://github.com/Altinity/clickhouse-grafana/blob/master/docker-compose.yaml
Настройки для ClickHouse-Cluster: https://github.com/tetafro/clickhouse-cluster/tree/master
GitHub
clickhouse-grafana/docker/clickhouse at master · Altinity/clickhouse-grafana
Altinity Grafana datasource plugin for ClickHouse® - Altinity/clickhouse-grafana
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
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
YouTube
Kubeflow vs MLFlow
Learn the main differences between the MLOps tools of choice: Kubeflow and MLFlow
Started by Google a couple of years ago, Kubeflow is an end-to-end MLOps platform for AI at scale. Canonical has its own distribution, Charmed Kubeflow, which addresses the…
Started by Google a couple of years ago, Kubeflow is an end-to-end MLOps platform for AI at scale. Canonical has its own distribution, Charmed Kubeflow, which addresses the…
👍1
Apache Airflow в связке с Kubernetes / Хабр
https://habr.com/ru/companies/okko/articles/736468/
https://habr.com/ru/companies/okko/articles/736468/
Хабр
Apache Airflow в связке с Kubernetes
Привет! Меня зовут Алексей Карпов, я DevOps-инженер отдела ML разработки в OKKO. В этой статье я поделюсь опытом в работе Apache Airflow в связке с Kubernetes. Мы соберем собственный образ Docker с...
DevOps vs SRE vs Platform Engineering
https://youtu.be/an8SrFtJBdM
https://youtu.be/an8SrFtJBdM
YouTube
DevOps vs SRE vs Platform Engineering | Clear Big Misconceptions
Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter.: https://blog.bytebytego.com
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Google анонсировала Project IDX — облачную IDE на базе VS Code с искусственным интеллектом
https://habr.com/ru/news/753400/
https://habr.com/ru/news/753400/
Хабр
Google анонсировала Project IDX — облачную IDE на базе VS Code с искусственным интеллектом
Google анонсировала облачную среду разработки Project IDX, предназначенную для разработки мобильных и веб-приложений. Инструмент построен на базе VS Code с использованием генеративных моделей...
What's new in Apache Airflow 2.7
https://youtu.be/uB7zweaF8EA?si=mJXJaiaYBh-d21GX
https://youtu.be/uB7zweaF8EA?si=mJXJaiaYBh-d21GX
YouTube
What's new in Apache Airflow 2.7?
What's new in Apache Airflow 2.7?
🏆 BECOME A PRO WITH AIRFLOW: https://www.udemy.com/course/the-complete-hands-on-course-to-master-apache-airflow/?couponCode=4677CF7EF58D6AAD9A0C
Here are the big changes:
➡️ Initialize and delete resources tasks need…
🏆 BECOME A PRO WITH AIRFLOW: https://www.udemy.com/course/the-complete-hands-on-course-to-master-apache-airflow/?couponCode=4677CF7EF58D6AAD9A0C
Here are the big changes:
➡️ Initialize and delete resources tasks need…
Swagger для данных в AirFlow: спецификация OpenLineage
https://bigdataschool.ru/blog/what-is-openlineage-for-airflow.html
https://bigdataschool.ru/blog/what-is-openlineage-for-airflow.html
Курсы Big Data, ClickHouse, Airflow,Greenplum, Kafka и Spark
Что такое OpenLineage и как это связано с Apache AirFlow
Как Apache AirFlow отслеживает происхождение данных, какова структура спецификации OpenLineage, че
Is ClickHouse Moving Away from Open Source? – Altinity
Интересно про развитие опен соурс решений. Вообще стратегия развития опенсоурс поверх ядра логичная и на мой взгляд очень правильная. Главное, чтоб не в ущерб ядру и не продались бы кому-то, кто все разрушит.
Preset.io также суперсет развивает. Это большие инвестиции в продукт. А так каждый второй сможет свой saas сервис поднять нахаляву)
https://altinity.com/blog/is-clickhouse-moving-away-from-open-source
Интересно про развитие опен соурс решений. Вообще стратегия развития опенсоурс поверх ядра логичная и на мой взгляд очень правильная. Главное, чтоб не в ущерб ядру и не продались бы кому-то, кто все разрушит.
Preset.io также суперсет развивает. Это большие инвестиции в продукт. А так каждый второй сможет свой saas сервис поднять нахаляву)
https://altinity.com/blog/is-clickhouse-moving-away-from-open-source
Altinity | Run open source ClickHouse® better
Is ClickHouse® Moving Away from Open Source?
Open source licensing helped ClickHouse grow. Now the project is moving to open core. Should users be concerned?
ClickHouse Fundamentals - IST/SGT/AEDT
https://clickhouse.com/company/events/apac-clickhouse-fundamentals
https://clickhouse.com/company/events/apac-clickhouse-fundamentals
ClickHouse
ClickHouse Fundamentals
You've heard about the power and performance of ClickHouse. Maybe you've even tried it yourself. In this 2-day (3 hrs per day) instructor-led workshop, you will learn what you need to be successful quickly.
❤1