Перейти к содержанию

Разработка 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) нет Папка, в которой находятся изображения, необходимые для пользовательской документации

В полном варианте структура исходных файлов блока выглядит так:

Папка с исходными текстами etl-блока
.
├── block_code.py      
├── block_meta.json    
├── test_block.py 
├── readme
│   ├── image1.png     
│   └── image2.png     
└── README.md