Skip to content

Минорный патч 4.14.7

Choose a tag to compare

@ascrus ascrus released this 28 Jun 13:56
· 108 commits to master since this release

Основные доработки патча

  • Была доработана поддержка работы с данными топиков Kafka. Однако на чтение топиков еще возникают проблемы, работа будет продолжена далее.
  • Доработана работа с алиасами для полей иерархических датасетов XML, JSON, YAML, Kafka, чтобы можно было ссылаться для определенных полей на другие структуры полей, которые находятся выше зоны видимости полей по умолчанию.
  • Доработана работа файлового процессинга, теперь можно задать максимальное время обработки файла, по истечении которого обработка будет прервана. Это может помочь в случаях, когда парсер файла завис или ушел в бесконечный цикл.

Dsl фичи

  • models: теперь для моделей работы с данными в свойстве датасета истории ведения истории модели "storyDatasetName" можно использовать переменные, определенные в модели.
  • models: в коде условия, инициализации и финализации для workflow моделей теперь можно напрямую обращаться к атрибутам модели с помощью переменной modelAttrs.
  • etl: для операторов copy, rowsTo и rowsAllTo добавлено событие onPostProcessing, которое вызывается после обработки записей источника, но до запуска пакетной загрузки подготовленных записей в приёмник с помощью bulk load.
  • etl: для операторов rowsTo и RowsAllTo добавлены события OnPrepare, OnFinalizing и OnBulkLoad. OnPrepare вызывается до обработки записей источника, OnFinalizing после завершения всех работ и OnBulkLoad перед запуском пакетной загрузки записей в приёмник с помощью bulk load.
  • fileman: при обработке файлов с помощью оператора processing теперь можно вызвать внутри кода обработки файла с помощью переданной управляющей ноды метод abortProcessing, который пометит файл как ошибочный, но не прекратит дальнейшую обработку файлов, как метод throwError.
  • fileman: при обработке файлов с помощью оператора processing теперь можно задать максимальное время обработки файла в свойстве processingTimeout. Так же в свойстве processingTimeoutAsError можно указать, что делать с файлом когда время обработки превышено: считать это ошибкой или просто игнорировать этот файл и продолжить обработку следующих файлов.

Dsl баги

  • main: при вызове оператора "unregister" для соединений возникала ошибка, если соединение не поддерживало явное управление соединением.
  • main: при передаче в вызываемый скрипт параметров не корректно работала конвертация в требуемый тип параметра, если передаваемый параметр был другого типа.
  • models: для моделей работы с данными всегда вызывалась проверка существования датасета ведения истории модели, что могло нарушать логику работы шаблонов, которые еще не успели инициализировать модель.
  • models: при запуске скрипта шага workflow моделей не передавались переменные самой модели и переданные при запуске workflow.
  • fileman: при обработке файлов в параметрах сортировки и группировки нельзя было указать служебные поля файлов (filepath, filename, filedate и filesize).

Getl фичи

  • getl.kafka.KafkaConnection: добавлены свойства управления форматированием парсинга и записи для полей даты, времени, булевых и с десятичной точкой.
  • getl.kafka.KafkaConnection: добавлено свойство "autoCreateTopic" для авто-создания топика при начале записи данных в указанный топик, если он отсутствует.
  • getl.kafka.KafkaConnection: добавлены функциы "topicExists" для проверки существования топика на сервере, "createTopic" для создания топика, "dropTopic" для удаления топика и "listTopics" для получения списка существующих топиков.
  • getl.kafka.KafkaDataset: добавлено свойство "autoCreateTopic" для авто-создания топика при начале записи данных в указанный топик, если он отсутствует.
  • getl.proc.Executor: добавлены методы runClosureWithTimeout и runCodeWithTimeout, с помощью которых можно запустить на выполнение заданный код с ограничением по времени выполнения. В случае превышения времени выполнения код будет прерван и сгенерирована ошибка.
  • getl.utils.GenerationUtils: для датасетов JSONDataset, XMLDataset, YAMLDataset и KafkaDataset теперь в алиасах полей можно ссылаться на поля структуры записи с верхнего уровня с помощью служебной переменной #root, даже если для полей в data указана подчиненная структура, с которой берутся поля.
  • getl.data.Dataset: добавлена функция "checkRowByFields" для проверки значений полей записи с правилами заполнения полей датасета.

Getl баги

  • getl.files.Manager: при создании локального директория он мог не удалиться при завершении работы программы.

Download GETL