The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Home / 4.12.0
Name Modified Size InfoDownloads / Week
Parent folder
Mazhornyi patch 4.12.0.tar.gz 2021-09-08 56.1 MB
Mazhornyi patch 4.12.0.zip 2021-09-08 56.4 MB
README.md 2021-09-08 6.4 kB
Totals: 3 Items   112.6 MB 0

Выпуск новой мажорной версии

Workflow модели

Теперь можно описывать последовательность вызовов Getl скриптов с нужными параметрами с помощью моделей workflow. Пример ниже описывает задачу, которая выполняет параллельно параметризированные Script1 и Script2, в случае ошибки одного из них выполняет скрипт ErrorScript, если оба завершились удачно и Script2 вернул нужные значения, далее выполняется Script3:

:::groovy
def job = models.workflow {
  // Старт задачи
  start {
   // Выполнять в 2 параллельных потока
   countThreads = 2

    // Скрипт шага
    exec {
      // Имя класса скрипта
      className = 'packet1.Script1'
      // Значение переменной класса
      vars.param1 = 'test 1'
    }

    exec('script2') {
      className = 'packet1.Script2'
      vars.param1 = 0
    }

    // Выполнить при ошибке
    onError {
      exec {
        className = 'packet1.ErrorScript'
      }
    }

    // Выполнить далее
    later {
      // Условие выполнения с проверкой результата выполнения именного скрипта
      condition = '''result('script2').res == 'OK' '''
      exec {
        className = 'packet1.Script3'
        vars.param1 = 'test 3'
      }
    }
  }
}

// Проверить, что успешно выполнено 3 скрипта
assert job.execute() == 3
// Проверить результат выполнения именованного скрипта 2
assert job.result('script2').res == 'OK'

Клонирование объектов при многопоточном выполнении

Переработана модель регистрации в репозитории объектов с потоков. Теперь разрешается регистрировать из потоков в репозитории новые временные объекты, имена которых начинаются с # и разрешается регистрировать постоянные объекты репозитория с методов скриптов init, check, done и error, даже если скрипты выполняются не в главном потоке.

Dsl фичи

  • models: добавлена новая модель workflow, с помощью которой можно описать дерево вызовов Getl скриптов в виде дерева, с поддержкой многопоточного выполнения, ветвления по условиям и обработки ошибок.
  • main: теперь разрешается регистрировать временные объекты (начинаются с #) в репозитории из параллельных потоков. Если несколько потоков попытаются зарегистрировать объект с одним именем, возникнет ошибка. Для объекта будет полноценно поддерживаться клонирование, если к нему будут обращения с других потоков. При завершении потока объект останется в репозитории, после окончания работы скрипта, объект будет удален из репозитория.
  • main: теперь вызываемые скрипты из потоков выполняют свой код init, check, done и error в теле главного потока. Это дает возможность провести инициализацию нужных объектов в репозитории и многопоточно вызывать скрипты через workflow.

Dsl баги

  • repository: при выполнении unregister соединений и файловых менеджеров у них могли остаться открытые соединения, теперь они принудительно закрываются перед очисткой объекта из репозитория.
  • models: при вызове метода fill модели ReferenceVerticaTables не возвращалось правильное количество заполненных таблиц.

Getl фичи

  • getl.excel.ExcelDataset: добавлено свойство rowCacheSize, в котором можно задать количество кэшируемых записей при чтении листа.
  • getl.kafka.KafkaConnection: добавлены свойства форматирования дат, времени, булевых полей и разделитель для десятичных чисел.

Getl баги

  • getl.excel.ExcelDriver: при чтении булевых полей не учитывался формат, заданный в ExcelDataset.
  • getl.utils.Config: при изменении свойства configClassManager одновременно с разных потоков могла произойти ошибка.

Getl критические изменения

  • getl.hive.HiveTable: из опций create убраны свойства fieldsTerminated и nullDefined, так как они должны задаваться в rowFormat.
  • getl.impala.ImpalaTable: из опций create убрано свойство fieldsTerminated, так как оно должно задаваться в rowFormat.
  • getl.mssql.MSSQLTable: в read опциях свойство withHint хранило значение в файле конфигурации, как hint. Теперь в файле свойство будет так же называться withHint.
Source: README.md, updated 2021-09-08