Разработка etl-блоков¶
Разделы руководства¶
В этом разделе приводится ряд руководств по созданию etl-блоков.
-
Настройка рабочего места
Что нужно установить на ваш компьютер для работы над etl-блоками.
-
Метаданные блока
Как описывать блок и его параметры.
-
Форма настройки блока
Рассказывается, как форма настройки блока автоматически создается на основе его метаданных.
-
Исходный код блока
Руководство по написанию исходного кода функций и обработчиков блока.
-
Тесты
Как создаются автоматические тесты для etl-блоков.
-
Документация
В составе etl-блока может находиться документация для пользователя. Здесь рассказывается, как подготовить такую документацию и включить её в состав своего блока.
-
Программный API
Приводится описание всех классов, которые используются при создании исходного кода блока.
Процесс разработки блока¶
Для начала, нужно подготовить рабочее место: настроить IDE и установить все необходимые библиотеки. Обратитесь к разделу про настройку рабочего места.
После того, как всё готово, можно приступать к написанию исходных текстов блока.
В минимальном варианте, необходимо описать метаданные блока, а также создать две функции для построения схемы (block_schema
)
и данных (block_data
) в модуле формы.
Работа над исходными текстами блока выполняется полностью локально, без подключения к экземпляру Analytic Workspace. Конечно, в какой-то момент времени блок нужно будет доставить и установить в AW для проверки его работоспособности.
А пока идет его активная разработка, предлагается создать некоторое количество автотестов, чтобы вы могли убедиться в его корректности без обращения к реальной системе. Вдальнейшем, подготовленные тесты блока помогут вам в поддержание его стабильной работы при внесении правок и доработок.
В завершении создания блока, напишите пользовательскую документацию. Она установится в систему вместе с блоком и поможет пользователям вашего блока ориентироваться в его работе и возможностях.
Инструменты¶
При разработке etl-блоков используются следующие технологии и фреймворки.
Название | Версия | Описание |
---|---|---|
Python | не ниже 3.8 | Основной язык программирования |
Spark | 3.5.0 | Платформа распределенной обработки данных |
pytest | не ниже 7.0 | Фреймворк для тестирования программного обеспечения на языке Python |
Для написания исходных кодов мы рекомендуем использовать кроссплаформенную свободно распространяемую IDE Visual Studio Code.
Другие IDE, поддерживающие разработку программного обеспечения на языке Python, также подойдут. Например, community-версия PyCharm (но здесь вы можете столкнуться с недоступностью некоторых плагинов).
Структура блока¶
Исходный код etl-блока содержит следующие файлы:
Файл | Обязательно | Комментарий |
---|---|---|
block_meta.json |
да | Метаданные блока. Задает общие сведения о блоке. Описывает входные параметры и форму настройки блока в пользовательском интерфейсе |
block_code.py |
да | Программный модуль блока. Содержит функции для построения схемы данных блока и получения самих данных |
test_***.py |
нет | Автоматические тесты блока (один или несколько файлов). При создании etl-блоков применяется подход TDD, и здесь как раз содержатся все необходимые тестирующие функции |
README.md |
нет | Пользовательская документация блока. Если есть, то показывается пользователям при настройке параметров блока |
readme/*.png (*.jpg) |
нет | Папка, в которой находятся изображения, необходимые для пользовательской документации |
В полном варианте структура исходных файлов блока выглядит так: