Версия 2.02
EasyPortal
Добавление функций
- В workflow теперь можно при отладке задачи выбрать среду выполнения репозитория.
- В документацию библиотеки EasyLoader добавлен раздел Getl, в котором описаны функции для языка выражений, используемых в маппинге полей таблиц моделей и операторы для языков скриптов workflow и SQL.
Исправление ошибок
- В моделях групп таблиц и маппинга таблиц нельзя было очистить поля таблиц истории и инкремента, если они уже были заданы. После сохранения модели и повторном её открытии эти значения все равно оставались заполненными.
- При выполнении поиска объектов можно было еще раз нажать кнопку "Поиск" в ходе работы.
- В моделях маппинга таблиц не работала кнопка вызова редактора маппинга.
Версия 2.01
EasyPortal
Добавление функций
- На объектах репозитория по правой кнопке мыши можно из меню вызвать просмотр зависимостей выбранного объекта. Это позволяет узнать, в каких моделях и workflow объект участвует и открыть эти объекты на редактирование.
- В экспорт датасетов добавлена возможность задать правило обработки, если датасеты уже существуют в группе назначения. Теперь экспортируемые датасеты можно проигнорировать, если они уже существуют или переписать поверх.
Исправление ошибок
- Для соединений во вкладке "Логины БД" нельзя было задать логины без паролей.
- Для датасетов типа "Query" не удавалось перечитать список полей.
- Для таблиц Vertica при добавлении в них полей они не были доступны в полях выбора полей вкладок "Создание" и "Обновление".
EasyLoader
Добавление функций
- Для Vertica добавлен шаблон replication.CopyFromVertica, с помощью которого можно заполнить на текущем стенде данные реплицируемых таблиц и таблиц логов репликации с другой БД Vertica. Шаблон очищает исходные таблицы в текущей БД и после копирования устанавливает точки репликации из копируемой БД. Шаблон не работе в среде выполнения "prod", чтобы случайно при запуске не стереть данные на промышленном стенде. При работе шаблона можно с помощью атрибутов в модели задать для таблиц правила копирования записей для реплицируемых таблиц и для таблиц логов репликации. Использование этого шаблона позволяет на среду разработки или тестирования перенести данные с промышленной БД для отладки и доработки репликации по реальным данным.
- Для Vertica в шаблон copy.CopyToVertica добавлены события before и after.
Версия 2.00
В этой версии существенно переработан интерфейс работы портала с пользователем. Для корректной работы пользователям рекомендуется переоткрыть вкладку работы с порталом в браузере, если на момент обновления сервера она была открыта или нажать SHIFT+F5 для сброса кэша страницы и её перечитки.
EasyPortal
Добавление функций
- Для глобальных переменных среды в панели администрирования добавлена возможность описать назначение переменной.
- В дереве объектов репозитория в меню по правой кнопки мыши добавлена возможность вызова поиска объектов репозитория по маске имени или маске описания объекта. Найденные объекты можно открывать для просмотра и редактирования. Имена объектов можно искать в формате "МаскаИменияГрупп:МаскаИмениОбъекта". Так же можно указать просто маску имени объекта без имени групп и двоеточия, тогда объекты будут искать по всем группам.
- В модель эталонных таблиц добавлена возможность поиска таблиц модели по имени.
- Для соединений с поддержкой веб-сервисов (JSON, XML и YAML) добавлено свойство "checkCertificate", с помощью которого можно отключить проверку валидности сертификата при подключении по протоколу https.
- Для соединений к РСУБД PostgreSQL добавлено свойство "caseSensitiveFields". Если оно выключено, то при запросах к таблицам этого сервера имена объектов приводятся к нижнему регистру (если они не содержат символов, которые требуют заключения в кавычки). Если свойство включено, то имена объектов в запросах будут указаны в двойных кавычках с учетом их регистра написания, что потребует их полного совпадения с регистром имен объектов, указанных при создании в БД.
- Для таблиц PostgreSQL теперь можно задавать enum поля. Для этого нужно поставить такому полю тип STRING, установить длину и в extended указать в атрибуте "postgresql_enum_type" имя созданного в БД enum типа. При создании таблиц поле будет создано с указанным типом enum.
- В панели грида просмотра списка объектов группы добавлена кнопка "Теги", с помощью которой можно задать нужные теги группе выбранных в гриде объектов.
- В файлах репозитория теперь можно загрузить и развернуть архив.
- В workflow теперь можно добавить на шаг подшаг "ERROR", в котором во вкладке "Условие" написать булевое выражение о необходимости продолжения работы шагов задачи при возникновении ошибки в выполняемом шаге. В случае возврата "true" подчиненные шаги выполняемого шага выполнятся не будут, а станут выполняться следующие шаги на том же уровне шага, в котором произошла ошибка (поэтому добавление "ERROR" в корневой "STEP 1" не имеет смысла).
- При запуске workflow теперь можно передавать переменные командной строки для конкретного выполняемого скрипта в формате "vars.$ИмяСкрипта.переменная=значение". Например, при выполнении workflow, в котором используется скрипт шаблона с классом под именем CopyToTables, требуется исключить таблицы. Для этого нужно передать параметр: "vars.$CopyToTables.exclude_list=Группа1.группа2:Таблица1,Группа1.группа2:Таблица2".
- Для соединений и файловых менеджеров теперь в текстовых полях указания хоста, логина, пароля и т.д. можно использовать не константы, а переменные. Например, можно описать соединение с host: {host}, database: {database}, login: {login}, password: ${password} (для того, чтобы система поняла, что это не пароль константа, а переменная, нужно использовать полный синтаксис указания переменных ${переменная}). При старте workflow нужно будет задать переменные в переменных workflow или же в аргументах командой строки как "vars.$CopyToTables.host=ip" (где CopyToTables имя класса скрипта шаблона в Workflow) и т.д.
- Добавлена служебная переменная "#ENVIRONMENT", которая возвращает имя текущей среды выполнения. Переменную можно использовать в файловых путях и скриптовом языке.
Изменение функций
- Изменен цвет активной вкладки открытого редактора объекта для более визуального выделения среди всех вкладок открытых объектов репозитория.
- Переработано отображение имен объектов во вкладках открытых редакторов. Теперь в тексте вкладки отображается тип объекта (C-соединение, D-датасет, S-sequence, I-инкрементальная точка, MT-модель групп таблиц, MM-модель маппинга, MR-модель мониторинга, MF-модель эталонных файлов, MV-модель эталонных данных Vertica, W-workflow, F-файл) и его имя без имени группы. Полное имя объекта отображается в редакторе справа сверху.
- Для полей датасетов с типом NUMERIC убрано обязательное поле точности, а для полей с типами BLOB и TEXT теперь не требуется обязательное указание длины поля.
- Для полей датасетов DBF файлов убрано свойство "NOT NULL" как не поддерживаемое.
Исправление ошибок
- При удалении репозитория из списка в панели администрирования возникала ошибка при попытке переключения в дерево репозитория.
- Если в панели администрирования для репозитория была объявлена переменная среды и на неё ссылались файловые соединения или файловые менеджеры в пути, то при попытке их открытия на редактирование происходила ошибка.
- При запуске workflow для отладки передавались только переменные среды, указанные для репозитория в панели администрирования без переменных, заданных для репозитория в глобальных переменных панели.
- При попытке импорта репозитория в панели администрирования, который ссылался на не заданные переменные среды в портале или с некорректной лицензией происходила ошибка импорта и он не появлялся в списке репозиториев. Теперь такой репозиторий импортируется, но не активируется до исправления ошибки.
- При чтении списка полей таблиц PostgreSQL не корректно определялась длина для полей, имеющих enum тип.
- В workflow редактор map полей шаблонов для пустых значений списка показывал null, что при повторном сохранении значений редактора в параметр шаблона подставляло текстовое значение "null".
- В workflow во вкладке "Отладка" не удавалось удалить переменную запуска, если она была создана с пустым именем, и после создания была сразу нажата кнопка "Удалить".
- При создании файла в файлах репозитория открывался редактор и сразу предлагалось выйти, если файл не имел расширения. Теперь такой файл создается без открытия редактора.
- Если при чтении полей источника в датасете происходила ошибка, то надпись "Загрузка" продолжала блокировать интерфейс и не давала работать дальше.
- При выборе на вкладках пункта меню "Закрыть все" или при переключении на панель администрирования не происходил запрос по изменениям в открытых редакторах вкладок объектов репозитория.
EasyLoader
Добавление функций
- В шаблон files.CopyFiles добавлено свойство "hide_when_copy", при включении которого на приёмник копируется файл с временным расширением и после успешного копирования он переименовывается в оригинальное имя. Это дает возможность гарантировать корректный захват файла другим источником только после его полной записи.
- В шаблон vertica.CaptureData добавлены параметры use_bulkload и bulk_escaped, с помощью которых можно управлять пакетной загрузкой данных с источника и включать экранирование символов в промежуточных текстовых файлах.
- В шаблон rdbms.CopyToTables добавлены атрибуты "create" и "drop", с помощью которого можно задать опции для создания и удаления таблиц в приёмнике, аналогичные опциям во вкладках "Создание" и "Удаление" в редакторе таблицы.
- Для вкладки "Скрипты" в моделях теперь допускается указывать для выполнения не только SQL команды, но скрипты, хранящиеся в файлах репозитория. Для этого нужно в скрипте написать "#Путь/Имя файла.sql".
- В шаблоне rdbms.ExecPatternSql добавлена поддержка типов скриптов "exec" и "error", в котором можно задать скрипт для выполнения над таблицей модели и скрипт обработки возникшей ошибки. Для "error" скриптов доступна переменная "error_text". Если скрипт "error" возвращает код возврата 1 с помощью команды "EXIT 1", то шаблон продолжает выполнение с другими таблицами модели и не прекращает работу. Так же можно в скрипте "init" вернуть код возврата 1 и работа над текущей таблицей будет остановлена.
- В язык скриптов Getl для workflow и выражений в моделях добавлены функции "lesser" и "greatest" аналогично SQL функциям.
- В случае возникновения ошибок при чтении записи CSV файла теперь в дамп файл будет записываться подробная информация по структуре полей датасета и их значениям в читаемом файле.
- Во все шаблоны многопоточной обработки данных по моделям добавлено свойство "continue_on_error", при включении которого при возникновении ошибки при обработке таблицы модели работа будет продолжена над другими таблицами.
- В шаблон CopyToTables добавлена поддержка переменных между вызываемыми скриптами и процессингом таблиц модели. Например, в скрипте "init" можно рассчитать переменные требуемого периода обработки таблицы и далее их использовать в атрибуте "read.where" или в скрипте "query", если он является источником таблицы модели. Так же эти переменные будут доступны в датасете чтения списка партиций.
Изменение функций
- Шаблоны репликации Vertica:
- Убраны типы репликации OLD_NEW и OLD_NEW_EMPTY как избыточные.
- Шаблон vertica.replication.CreateLogTables теперь генерирует таблицы хранения логов репликации для типа ALL_PK (обновление первичного ключа).
- В шаблон vertica.replication.LoadFlatFiles добавлена поддержка загрузки в логи репликации типа ALL_PK. При смене первичного ключа в таблицу лога репликации вставляется запись с типом операции "P".
- В шаблоне rdbms.ExecPatternSql убран параметр "script_file_path" (вместо этого используйте скрипты с типом "exec").
- Групповые модели таблиц и модели маппинга:
- Для SQL скриптов моделей при возврате переменных после выполнения теперь возвращаются только те переменные, которые были переданы на вход или созданы
- в ходе работы скрипта. Промежуточные переменные, генерируемые самим шаблоном для модели не возвращаются.
- В шаблоне vertica.reverse.SynchronizeStructure добавлен новый параметр конфигурации "truncateTableForNotNull" синхронизации таблиц. С помощью этого параметра можно указать, что требуется очищать записи таблиц, для которых были добавлены NOT NULL поля без указания DEFAULT.
Исправление ошибок
- В шаблоне files.ProcessDatasetFiles возникала ошибка, если было включено кэширование и не была указана группировка файлов.
- В шаблоне vertica.reverse.SynchronizeStructure не обрабатывалась ситуация удаления партиционирования у таблицы.
- При чтении записей с MySQL источника могли возникнуть ошибки, если в таблице содержались поля DATE, TIME и TIMESTAMP.
- При выполнении скриптов на языке хранимых процедур GETL возникала ошибка для оператора ERROR, если параметр оператора был обрамлен кавычками или скобками.
- Маска пути для шаблонов могла не корректно работать, если в маске использовались не латинские символы (например русские).
- Маска пути для шаблонов могла не корректно работать, если в формате для переменной с типом STRING были заданы значения в круглых скобках. Например: (a|b|c).
- В шаблоне rdbms.copyToTables не корректно обрабатывался маппинг модели, если в шаблоне был включен параметр "copyOnlyMatching", а модель содержала поля приёмника, для которых значения рассчитывались с помощью выражений. При выполнении шаблона значения этих полей не записывались в приёмник.
- При работе шаблонов с моделями маппинга не учитывались переменные, которые передавались в выражение вычисления значений поля приёмника из workflow.
- В языке хранимых процедур Getl не корректно выполнялся скрипт, если в нем содержался одиночный комментарий (--), внутри которого был многострочный комментарий (/* */). В таком случае следующая за одиночным комментарием команда игнорировалась.
- В шаблоне vertica.reverse.SaveToFiles при генерации UDF SQL функций происходила ошибка, если шла работа с Vertica 12 или новее версии. Это происходило из-за того, что начиная с 12 версии Vertica такие функции теперь поддерживают "overload" параметров.
JDBC
- Изменена версия MySQL драйвера на 8.1.0.
Версия 1.62
EasyPortal
Изменение функций
- После выполнения скриптов workflow, которые изменяют объекты репозитория, теперь автоматически перечитывается дерево репозитория у вызвавшего workflow пользователя. Остальным пользователям потребуется вручную перечитать дерево репозитория.
Исправление ошибок
- Не корректно отображались номера полей датасета после их удаления или фильтрации по имени.
EasyLoader
Добавление функций
- Добавлен шаблон rdbms.ExecPatternSql, с помощью которого можно выполнять шаблонизированные SQL скрипты над группами таблиц.
Исправление ошибок
- Если у таблицы Vertica в segmentedBy был указан ALL NODES, то при создании таблицы происходила ошибка.
- Если в SQL скрипте перед SQL оператором стоял одиночный комментарий, внутри которого был многострочный комментарий, то комментарий пропускался, а оператор не выполнялся.
Версия 1.61
EasyPortal
Добавление функций
- При импорте таблиц теперь можно отключить импорт полей таблиц. Таблицы будут импортированы в репозиторий без описания структуры полей.
- В опции создания таблиц PostgreSQL добавлено свойство "unlogged", при включении которого таблицы будут создаваться в БД, как "нелогируемые".
Изменение функций
- Расширена функциональность переменных среды "Properties" в панели администрирования. Теперь помимо глобальных переменных можно задавать переменные для конкретных репозиториев. Это позволяет задать для разных репозиториев нужные значения переменных с одинаковым именем.
Исправление ошибок
- При добавлении или импорте репозитория текущий пользователь должен был устанавливать для себя права доступа к полученному репозиторию.
- В соединении DBF файлов отсутствовало свойство кодировки файлов.
EasyLoader
Изменение функций
- Для шаблона vertica.copy.CopyToVertica добавлен параметр environment, с помощью которого можно задать, с какой среды копировать данные без необходимости делать внешний коннект на источник данных.
- В шаблон rdbms.CopyToTables добавлены параметры для выполнения объединения записей источника с приёмником (MERGE).
- Для шаблона загрузки flat файлов vertica.replication.LoadFlatFiles теперь можно описать правила обработки ошибок для конкретных таблиц по моделям в файле конфигурации.
Исправление ошибок
- Шаблон rdbms.RunSql не корректно работал при вызове в многопоточном режиме, где параллельные потоки RunSql работали в рамках главного соединения, а не его клона.
- В шаблоне vertica.replication.CreateLogTables не корректно копировались данные со старой в новую создаваемую таблицу без учета реальной структуры старой таблицы лога репликации.
- В шаблоне rdbms.CopyToTables при пакетном копировании записей соединение приёмника могло отвалиться по таймауту, если слишком долго возвращались данные с приёмника и это соединение было открыто при чтении инкрементальной точки или таблицы истории.
JDBC
- Изменена версия PosgreSQL драйвера на 42.6.0.
Версия 1.60
EasyPortal
Добавление функций
- По правой кнопке мыши можно скопировать имя объекта в списке просмотра объектов группы или щелкнув на имени вкладки открытого редактора.
- В датасетах появилась экспериментальная вкладка "Данные", в которой можно просмотреть содержание датасета.
- В workflow теперь можно по правой кнопки мыши клонировать скрипт в шаге.
- Добавлена автоматическая перезагрузка объектов репозитория после вызова шаблонов и скриптов, которые изменяют содержимое репозитория.
- В панели администратора для пользователей добавлен раздел управления правами пользователей на репозитории. Всем пользователям доступны все репозитории портала для чтения, однако изменение объектов репозитория или запуск workflow должны явно задаваться в правах для пользователя.
- Теперь при переключении между репозиториями разных сред в интерфейсе будут отдельными цветами выделяться репозитории тестовой и промышленной среды эксплуатации.
- В панели администратора теперь можно временно отключить вход в портал пользователю, сняв у него флаг "Активность".
- В workflow теперь можно смотреть выполняемый в текущий момент или ранее выполненный лог процесса в отдельном окне, для этого добавлена кнопка "Лог в новом окне". Лог хранится в файловой системе и не пропадает после закрытия workflow или выхода из интерфейса портала. Таким образом, последний результат выполнения wofkflow теперь можно посмотреть в любой момент времени.
- Во вкладку опций создания для Vertica таблицы добавлено свойство "Наследование прав", в котором можно выбрать, как должна таблица наследовать права от родительской схемы.
Изменение функций
- При запуске workflow во вкладке отладки теперь не выводится вся служебная информация о старте процесса, что сокращает размер лога и улучшает его читабельность.
- Для датасетов теперь при выборе типа поле NUMERIC длина и точность поля не являются обязательными.
- При старте портала теперь репозитории не загружаются сразу в память, а подгружаются по мере обращения к объектам. Скорость старта портала значительно увеличилась, однако чуть замедлилась скорость чтения списка объектов группы при первом обращении к ним.
- Теперь при работе workflow активный лог работы режется до 300 последних строк, чтобы не занимать память браузера и не тормозить процесс отрисовки из-за большого объема лога.
Исправление ошибок
- В моделях групп и маппинга таблиц происходило некорректное сохранение таблиц модели, если в вкладке таблиц была задана фильтрация. В таком случае сохранялись только таблицы, которые подходили под заданный фильтр.
- При регистрации или изменении почты и пароля пользователя не проверялось, что указанное значение может содержать пробелы или псевдосимволы, что приводило к невозможности пользователю подключиться к порталу.
- Если пользователь выходил из учетной записи портала, но у него стоял флаг "Запомнить", то при следующем подключении происходил автоматический логин под вышедшим пользователем.
- Если по каким–то причинам был испорчен файл конфигурации объекта, то при попытке открыть его редактор, выдавалась ошибка и открывался пустой редактор. Теперь после выдачи ошибки редактор не открывается.
- Если открывался на редактирование датасет и пользователь щелкал на поле, помеченное как Primary Key, то при закрытии редактора предлагалось сохранить изменения, даже если ничего не менялось.
- В имени группы можно было задать пустое имя подгруппы, указав подряд две точки в имени группы объекта.
- При экспорте полей из таблиц Oracle в таблицы Vertica не корректно обрабатывались поля Oracle с типом NUMBER.
EasyLoader
Добавление функций
- Добавлен шаблон vertica.replication.CheckLogTables для проверки готовности таблиц приёмников и содержимого таблиц логов к репликации.
- Добавлен шаблон репликации vertica.replication.ReplicationLogTables из таблиц логов репликации в таблицы приёмника. На текущий момент поддерживаются типы репликаций NEW и NEW_EMPTY.
- Добавлен шаблон files.ExecuteScriptFile, с помощью которого можно выполнить Getl скрипт из файла локальной системы или репозитория.
- Добавлен шаблон files.GenerateObjectsScriptFile, с помощью которого можно выполнить Getl скрипт создания или изменения объектов в репозитории с автоматическим обновлением репозитория после выполнения скрипта.
- Добавлен шаблон repository.SynchJDBCTableStructure, который генерирует SQL скрипт с DML командами обновления структуры таблиц источника до структуры репозитория.
- Добавлен шаблон vertica.replication.LoadFlatFiles загрузки flat файлов OGG в таблицы логов репликации.
- Добавлен шаблон vertica.replication.ClearDoublesFromLogTables, с помощью которого можно искать и исправлять в таблицах логов репликации ошибки в виде дублей записей транзакций.
- Добавлена поддержка записи CSV файлов с разделителями в виде псевдо-символов.
- В шаблоны вызова программы RunProgram и вызова скрипта ExecuteScriptFile добавлен параметр exit_with_refresh, который сигнализирует, что после выполнения шаблона требуется перечитать репозиторий.
- В шаблон CleanLogs добавлен параметр workflow_as_subdir, который влияет на поиск логов внутри корневой директории. При включении этого параметра предполагается, что в корневой директории находятся директории по именам выполняемых workflow. При выключении параметра логи ищутся внутри корневой директории.
- В шаблон vertica.replication.CreateLogTables добавлен параметр grant_schema_roles, в котором можно перечислить роли и пользователей для организации доступа к схеме хранения логов репликации.
- В шаблоне vertica.replication.CreateLogTables добавлен параметр recreate_tables, при включении которого существующие таблицы логов репликации будут пересоздаваться без потери данных.
- Для шаблона CreateLogTables добавлен параметр recreate_if_difference_structure, с помощью которого можно отключить сравнение структур и принудительно пересоздавать буферные таблицы логов репликации.
- Для CSV соединений добавлены свойства blobAsPureHex и blobPfefix, в которых можно задать, нужен ли префикс для значений BLOB полей и значение префикса.
- Произведена оптимизация пакетной загрузки данных в таблицы Vertica для увеличения скорости загрузки и исключение потери переводов строк в загружаемых текстовых полях.
- В скриптовый язык добавлены функции parseSQLDate, parseSQLTime, parseSQLTimestamp, isTable, isView и isQuery.
Исправление ошибок
- В шаблоне vertica.replication.LoadLogTables не учитывались записи с оператором смены первичного ключа.
- В шаблоне vertica.replication.LoadLogTables исправлена ошибка, где при загрузке данных из таблиц логов источника текстовые поля с пустыми значениями интерпретировались как NULL.
- Для всех шаблонов, работающих с моделями таблиц исправлена ошибка, где timestamp партиции писались в историю, но при следующем запуске по ним заново шла загрузка.
- В шаблоне files.CleanLogs возникала ошибка, если в пути хранения логов использовались переменные Getl.
- При создании буферных таблиц логов репликации в сортировке и сегментации не учитывались поля первичного ключа в шаблоне vertica.replication.CreateLogTables.
- При завершении работы с файловыми менеджерами шаблонов не происходило отсоединение от источника, что могло привести к подвисанию задачи при завершении её работы, если драйвер менеджера продолжал удерживать коннект.
- При работе с CSV датасетами в свойствах обрамления текстовых полей, разделителя полей и разделителя записи не корректно обрабатывался escape символ "\", что не позволяло задать разделителем псевдо-символ в формате "\u<ЧИСЛО>".
- Для Vertica таблиц происходила не корректная пакетная загрузка значений BLOB полей из файлов в таблицы.
- При выполнении SQL скрипта возникала ошибка, если после открывающей скобки сразу же стояла запятая.
- Если в операторе ECHO SQL скрипта в конце стоял "--комментарий", то следующий за ECHO оператор не выполнялся.
- При автоматической конвертации значений полей источника в приёмник не было проверки переполнения числовых типов, что могло привести к некорректной записи данных из источника в приёмник, если в источнике тип данных был большей разрядности, чем в приёмнике.
- Если в файловых шаблонах была включена опция копирования только файлов, которые есть в истории загрузке, то при копировании таких файлов их имена снова вставлялись в историю, что приводило к ошибке дублирования уникального ключа.
Версия 1.59
EasyPortal
Изменение функций
- В моделях трансформации и маппинга таблиц изменен принцип работы таблиц модели с инкрементальными точками. Теперь в таблицах модели не указывается инкрементальный менеджер. Вместо этого на главной вкладке модели задается таблица хранения инкрементальных точек. Процесс автоматически в этой таблице хранит инкрементальные значения для каждой таблицы модели, у которой задано поле инкремента. Если в существующих репозиториях уже используются инкрементальные точки, то требуется увеличить в таблице хранения точек поле source до размерности 256 знаков, а так же сделать UPDATE source в этой таблице точки с именем, ранее указанным в инкрементальном менеджере, используемым в модели на составное имя: "ИмяМодели@ИмяТаблицыМодели". Если это не сделать, инкрементальные точки будут потеряны: инкрементальная загрузка начнется с нулевой позиции!!!
Добавление функций
- Добавлены шаблоны vertica.replication.CreateLogTables и vertica.replication.oracle.LoadLogTables, с помощью которых можно развернуть промежуточные таблицы для хранения логов репликации и обеспечить инкрементальную загрузку из таблиц хранения логов репликации Oracle (IUD).
- При экспорте датасета в портале на другое соединение конвертация полей не учитывался размер хранения текстов в байтах между разными источниками и в чём описывается длина хранения текста: в байтах или символах. При конвертации текстового поля из источника, где длина текста задана в символах в поле приёмника, который указывает длину текста в байтах, длина будет указана меньшей, чем приёмнику нужно для хранения значения поля. Теперь в JDBC соединения добавлены свойства "Кодовая страница БД" и "Длина полей указана в байтах", которые позволяют точно рассчитать длину текстовых полей при конвертации из разных источников. В случае, если для отдельного поля таблицы была задана явная другая кодовая страница, это будет так же учитываться при конвертации типов.
- При работе с CSV поля BLOB всегда записывались в HEX формате последовательности байт, что приводило к невозможности пакетного чтения таких файлов многими СУБД, которые ожидают данных такого типа в формате "0xбайты в HEX". По умолчанию теперь значения BLOB полей записываются в этом формате. Для управления способом записи в CSV соединение добавлено свойство "Натуральный формат BLOB", при включении которого BLOB будут записаны без "0x".
- В скриптовый язык добавлена функция "decode" (аналог SQL функции), в которой можно сравнить значение с перечисленными условиями и вернуть значение, заданное для подходящего условия.
- В моделях маппинга при нажатии кнопки "Авто соединение таблиц" теперь можно указать маску связи таблиц источника и приёмника. В ней задается шаблон "<маска источника>:<маска приёмника>", где в маске нужно использовать переменную "{name}", которая обозначает исходное имя, которым нужно оперировать. Пример
- маски соединения представлений с префиксом "v_" и таблиц с суффиксом "from_view": "v{name}:{name}_from_view", где "v_table1" будет соединена с "table1_from_view".
- В диалоговом окне выбора объектов теперь можно фильтровать список объектов группы по части имени.
EasyLoader
Смена версии
- Номер версии изменен на "6.3". Перед установкой обновления проверьте, что лицензия Вашего репозитория поддерживает этот номер версии!!!
Исправление ошибок
- При работе с JDBC таблицами, содержащих timestamp поля, миллисекунды обрезались до трех знаков. В случае использования таких полей как инкрементальных это приводило к неправильной работе, где после захвата записей они могли быть снова загружены в следующий раз, так как по разрядности наносекунд были больше, чем обрезанное значение поле до трех знаков миллисекунд. Теперь JDBC источники позволяют обрабатывать до шести знаков наносекунд.
- При работе с CSV поля timestamp могли содержать не более трех знаков миллисекунд. Теперь по умолчанию формат чтения и записи предполагает хранение миллисекунд до трех знаков, но при необходимости в формате данных можно задать хранение до девяти знаков наносекунд.
- При чтении и записи BLOB полей данных из Oracle могла возникать ошибка "Класс oracle.jdbc.OracleBlob не известен". Теперь такие поля читаются и пишутся без ошибок.
Версия 1.58
EasyPortal
Добавление функций
- В гриде датасетов операции с JDBC таблицами вынесены в отдельную кнопку "Операции".
- В гриде датасетов в "Операции" добавлен режим "Изменение схемы", с помощью которого можно изменить схему БД у помеченных в гриде JDBC таблиц.
- При экспорте датасетов в другое соединение теперь можно при необходимости явно задать схему БД, которую нужно установить для экспортируемых таблиц источника. Функция работает, если соединение приёмника имеет тип JDBC.
- В список объектов для всех типов добавлена кнопка "Переместить в группу", где можно выделить список объектов и задать им новое имя группы в репозитории.
EasyLoader
Добавление функций
- В процесс rdbms.CopyToTables добавлен флаг check_destination_tables, с помощью которого можно выключить принудительную проверку структуры таблиц на приёмнике с описанием их структуры в репозитории перед началом копирования для ускорения выполнения процесса.
Исправление ошибок
- Если при работе с Excel файлами у них расширение было с заглавными буквами, то возникала ошибка, что такой тип файла не поддерживается. Теперь для файлов с расширением xlsx и xls есть поддержка вне зависимости от регистра расширения в имени файла.
Версия 1.57
EasyLoader
Добавление функций
- Для процесса files.ProcessDatasetFiles добавлен параметр "copy_only_matching", с помощью которого можно указать, исключать ли из вставки в таблицу приёмника поля, которых нет в источнике. Требуется выключить этот параметр, если в маппинге модели для полей приёмника указываются константы или вычисляемые выражения, которые будут так же вставляться в приёмник.
- Для скриптов wofkflow и выражений моделей в языке Getl добавлены функции asDate, asTime и asTimestamp для конвертации текстового или числового значения в нужный тип.
Исправление ошибок
- При чтении таблиц Oracle могли возникать ошибки, если были поля с типом BLOB для последних версий Oracle. Теперь бинарные поля корректно читаются вне зависимости от версии Oracle.
- Если в модели маппинга для процесса files.ProcessDatasetFiles указывались скрипты инициализации "dest_init" и финализации "dest_done" в таблице модели, то эти скрипты выполнялись всегда, даже если процесс не обнаружил файлов для обработки. Теперь эти скрипты будут вызываться только, если процессом были найдены файлы.
- Процесс files.ProcessDatasetFiles вызывал скрипты инициализации "dest_init" и финализации "dest_done" таблицы модели вне явно запускаемой транзакции. Это приводило к тому, что после выполнения скрипта и закрытия соединения к приёмнику, СУБД откатывало изменения. Теперь скрипты выполняются в рамках транзакции, если приёмник поддерживает работу с ними и при успешном выполнении скрипта транзакция будет зафиксирована вызовом COMMIT.
- Для Firebird соединений возникала ошибка, если указывался путь к файлу базы данных, в котором были использованы {переменные окружения}.
- При включении флага bulkLoad процессам, которые загружают данные с источника в БД Vertica через промежуточные файлы, мог использоваться не корректный парсер загрузки, что приводило к обрезанию длины значений текстовых полей без ошибки загрузки, если значение источника превышало размер длины поля в таблице Vertica. Теперь это можно контролировать явно через параметр шаблонов bulk_escaped, где для контроля длины полей и поддержки кодировки NULL собственным значением, bulk_escaped должен быть включен.
- В язык Getl добавлена поддержка работы с базами данных SQLite с помощью операторов sqliteConnection и sqliteTable. В репозитории портала возможность визуально описывать соединения и таблицы SQLite отсутствует.
Версия 1.56
EasyLoader
Исправление ошибок
- При работе процесса files.ProcessDatasetFiles с включенными флагами кэширования и пакетной загрузкой в таблицу ничего не загружалось после обработки файлов. Теперь все работает корректно.
Версия 1.55
EasyPortal
Исправление ошибок
- В моделях мониторинга и эталонных таблиц Vertica не корректно работали checkbox для булевых свойств датасетов модели, что приводило к невозможности выключить или включить нужное свойство.
EasyLoader
Добавление функций
- Добавлен новый шаблон rdbms.MonitorSources, с помощью которого можно проверять наполнение таблиц БД на отставание от заданного периода.
Исправление ошибок
- При пакетной загрузке одно файла в БД могло ничего не произойти, если нужно было загрузить единственный файл, а не список по маске. Теперь файл будет корректно загружен.
Версия 1.54
EasyLoader
Исправление ошибок
- Для шаблонов, которые используют модели маппинга, возникала ошибка "Источник не поддерживает SQL скрипты", если источник не был JDBC совместимым, но не имел скриптов в модели.
- При генерации ошибки не корректно обрабатывалось имя workflow, в котором произошла ошибка и это могло привести к ошибке, что переменная не найдена.
Версия 1.53
EasyPortal
Добавление функций
- Интерфейс переведен на последнюю версию Webix для оптимизации производительности и закрытия ряда багов интерфейсной части JavaScript.
- В JDBC соединения добавлена вкладка атрибутов. Добавляемые соединению атрибуты можно использовать как глобальные переменные при запуске скриптов через SQL скриптер для этого соединения;
- В моделях трансформации и маппинга для таблиц моделей добавлена вкладка "Скрипты". Во вкладке можно задавать события для шаблонов, код которых написан на SQL языке ХП Getl. Помимо кода в скрипте можно использовать оператор RUN_FILE, чтобы выполнить код из SQL файла, находящегося в репозитории или на внешнем диске.
Исправление ошибок
- В редакторе полей датасетов можно было одновременно при групповом изменении свойств полей задать ключевое поле и nullable. Теперь можно задать что-то одно из них.
EasyLoader
Добавление функций
- Для шаблона files.ProcessingDatasetFiles добавлена поддержка событий, код которых указывается в SQL скриптах таблиц модели.
- Для шаблона rdbms.CopyToTables добавлена поддержка событий, код которых указывается в SQL скриптах таблиц модели.
- Расширена функциональность оператора "RUN_FILE" в языке хранимых процедур. Теперь можно указывать выполнение файлов с репозитория без указания префикса "repository:". Поиск файлов происходит сначала в файловой системе, потом в репозитории и если файл нигде не найден, выдается ошибка.
Исправление ошибок
- При работе с запросами Oracle возникала ошибка, если возвращались поля с типом "date". Теперь такие поля корректно обрабатываются наравне с "timestamp" полями.
Версия 1.52
EasyPortal
Добавление функций
- В файловые источники, поддерживающие веб-сервисы добавлена возможность работы с аутентификацией. В соединения работы с Json, Xml и Yaml добавлены свойства: логин, пароль и тип аутентификации. Поддерживается базовая и NTLM аутентификация по http протоколу.
- В гриде датасетов появилась кнопка перечитки списка полей для выбранных в списке таблиц. Ранее приходилось заходить в каждый датасет и нажимать кнопку перечитки списка полей.
- Для моделей эталонных данных таблиц Vertica в списке моделей добавилась группа кнопок, с помощью которой можно создать таблицы хранения эталонных данных, сохранить эталонные данные из рабочих таблиц или внешнего кластера Vertica, очистить рабочие таблицы или заполнить их эталонными данными, а также удалить таблицы хранения эталонных данных в БД.
- При создании нового репозитория теперь в автоматически создаваемой файла конфигурации репозитория сразу генерируется шаблон, в котором указаны основные настройки работы процессов с репозиторием для каждого стенда репозитория, такие как язык сообщений (по умолчанию русский), логирование процессов, JDBC соединений и файловых менеджеров, профилирование и параметры настройки дев стенда для работы с Vertica.
- В датасете теперь во вкладке полей появилась кнопка "Установка свойств", с помощью которой можно для выбранной группы полей массово установить тип поля или другие его характеристики.
- При просмотре файлов репозитория теперь для администраторов портала видны файлы лицензии репозитория и его конфигурации. Ранее эти файлы скрывались для всех пользователей.
- Добавлена поддержка механизма лицензирования по номеру версии продукта.
Исправление ошибок
- При долгом простое открытой веб страницы работы с порталом могли возникнуть ошибки при попытке дальнейшей работы с интерфейсом пользователем. Теперь время активной сессии в браузере увеличено до 6 часов и в случае потери сессии портал переходит на страницу логина, чтобы пользователь не смог работать с несуществующей веб сессией.
EasyLoader
Добавление функций
- При вызове событий шаблона files.ProcessingDatasetFiles внутри кода событий было невозможно определить, для какого обрабатываемого файла вызвано событие. Теперь в события параметром передаются атрибуты файлы (см. описание событий шаблона).
Исправление ошибок
- В шаблоне files.CleanFiles возникало задвоение файлов в таблице истории, так как после удаления уже существующих в истории файлов на источнике, они снова добавлялись в таблицу истории.
- При работе с БД Vertica при генерации запросов могла возникнуть ошибка, если поле называлось "NEW". Теперь это слово считается ключевым и обрамляется в двойные кавычки.
- Для шаблона rdbms.CopyToTables возникала ошибка, что партиции не поддерживаются, если в качестве источника выступал файловый источник с чтением данных с веб-сервиса и таблице в модели был назначен датасет списка партиций. Теперь при работе с веб-сервисами полноценно поддерживается чтение по списку партиций.
- Для шаблона vertica.CaptureData возникала ошибка закрытия соединения, если для таблицы модели указывался инкрементальный менеджер, который имел такое же соединение, как соединение приёмника модели. Теперь эта ситуация корректно обрабатывается и соединение закрывается только после окончания работы процесса с моделью.
Версия 1.51
EasyPortal
Добавление функций
- В главное меню добавлена кнопка вызова просмотра помощи по шаблонам в отдельной вкладке. Это позволяет по документации выбранного шаблона скрипта workflow разрабатывать нужную модель, без необходимости возвращаться в workflow и в модальном окне вызывать помощь по правилам заполнения модели.
Исправление ошибок
- В workflow при выборе объекта для параметра скрипта вызывалось модальное окно выбора, однако объект не выбирался двойным нажатием левой кнопки мышки, только выделением и нажатием кнопки "Ок". Теперь двойное нажатие тоже работает.
- В файлах репозитория при нажатии кнопки "Новый файл" запрашивалось его имя, файл создавался на диске, но не открывался сразу на редактирование. Теперь редактор автоматически открывается для новых файлов.
EasyLoader
Добавление функций
- Расширена функциональность для шаблона vertica.CopyToVertica:
- Добавлен параметр source_login, в котором можно указать, под каким логином подключаться к источнику;
- Добавлены атрибуты limit и order, с помощью которых для модели можно задать порядок сортировки выгрузки записей с источника и ограничение количества выгружаемых записей.
- В язык выражений добавлена поддержка функций isNull и nullIf.
- В конфигурации репозитория теперь в разделе sqlscripter можно включить принудительную отладку выполнения запросов с помощью параметра debug. Это позволит в логе выполнения процесса увидеть, лог работы Sql scripter при обработке и выполнении sql скриптов.
Исправление ошибок
- В некоторых случаях при ошибках работы с датасетами шаблоны в тексте ошибки вместо имени датасета выводили "noname". Это не позволяло определить, какой именно датасет содержит ошибки. Теперь при ошибках выводится как имя датасета в репозитории, так и его физическое имя в источнике (имя таблицы или файла).
- Для Excel датасетов возникала ошибка чтения датасетов, ячейки которых содержали ошибку "#Н/Д". Теперь такие ячейки интерпретируются как null значения.
- Если для Excel датасета поле, указанное как string в ячейках содержало тип number, то значение такого поля возвращалось в double формате. Теперь такие поля правильно интерпретируются с числового в текстовый формат.
- Для таблиц СУБД H2 не корректно возвращался список полей для регистрозависимых таблиц.
- Не удавалось считать список таблиц с БД, у которых в именах содержались одинарные кавычки и переводы строк. Теперь такие таблицы видны при импорте таблиц в портале и доступны к работе.
- При импорте в портал таблиц с БД, в именах которых содержались запрещенные в именовании объектов портала символы (такие, как перевод строки, табуляция, кавычки, двоеточие и т.д.), такие символы заменялись на символ подчеркивания. Однако, если в списке таблиц были имена, различие которых было только в некорректных символах, после преобразования их имена дублировались и возникала ошибка импорта. Например, импорт "table@1" и "table:1" генерировал имена table_1 и table_1. Теперь в именах объектов репозитория генерируется числовой ascii код таких символов в имя таблицы вместо простого подчеркивания, что решает проблему с дублированием имен.
- При выполнении sql скриптов в некоторых случаях Sql scripter не корректно определял тип выполняемого оператора, если в нем содержался SELECT и пытался его выполнить с получением результата. Например, оператор "EXPORT TO VERTICA AS SELECT" приводил к ошибке. Теперь Sql scripter точно определяет, где идет SELECT с возвратом результата, а где выполняется другой оператор.
- Если в sql скрипте перед оператором стоял хинт в комментарии, то такой оператор мог быть пропущен при выполнении, где Sql scripter ошибочно считал, что он часть комментария. Ошибка исправлена.
Версия 1.50
EasyPortal
Добавление функций
- В моделях маппинга и списка таблиц добавлена возможность быстрого поиска таблицы по имени среди списка таблиц модели.
Исправление ошибок
- Кнопка создания таблиц позволяла запустить визард для датасетов, не совместимых с JDBC таблицами. Теперь кнопка не горит, если выбраны не JDBC таблицы.
- В таблицах JDBC не корректно работало добавление и удаление индексов во вкладке "Создание". Теперь проблем нет при описании индексов для таблицы.
- В индексах таблиц JDBC вкладки "Создания" отсутствовала возможно выставить уникальность индексу. Это теперь можно сделать в свойстве "unique".
- При открытии нескольких моделей маппинга таблиц выходила ошибка неуникального id формы. Это исправлено.
- В панели администратора при создании нового репозитория в каталог, где уже был ранее прописан репозиторий возникала ошибка. Теперь портал не позволяет создать новый репозиторий в такой каталог и предлагает его импортировать.
EasyLoader
Исправление ошибок
- В шаблоне рефакторинга проекций Projections мог генерироваться хинт "createtype(L)", что при выполнении такого DDL приводило к ошибке в Vertica. Теперь такой хинт убирается из скрипта создания проекции.
Версия 1.49
EasyPortal
Добавление функций
- При выгрузке репозитория теперь спрашивается, нужно ли выгружать в архив библиотеки репозитория.
- Для таблиц Vertica теперь во вкладке опций создания есть возможность установить, следует ли включать проверку Primary Key в таблице при работе с ней.
Исправление ошибок
- При запуске скрипта из редактора файлов репозитория для ClickHouse выходила ошибка, что соединение не поддерживает транзакции и скрипт не выполнялся. Теперь скрипты в ClickHouse запускаются.
EasyLoader
Изменение функций
- Для шаблона EasyLoader.vertica.refactor.Projections добавлено свойство rules_file, в котором можно задать конфигурацию фильтрации списка обрабатываемых таблиц.
- Изменено свойство connection_name на connection, добавлено свойство логин.
- Для шаблона EasyLoader.vertica.reverse.SaveToFiles доработана модель получения метаданных, чтобы было можно ссылаться на все поля служебных таблиц Vertica при написании выражений фильтрации обрабатываемых объектов реверсинга в файле конфигурации.
- Ранее в языке макросов Getl поддерживалось экранирование символов "$", "{" и "}" с помощью "", чтобы исключить их с обработки. Теперь символ экранирования изменен на "~2, чтобы не было пересечения с экранированием в языках Groovy и SQL. То есть в тексте, где требуется вставить фигурную скобку, вместо её обработки, как переменной "{var}", нужно указать "~{~var~}~".
Исправление ошибок
- Для соединений H2 и Vertica исправлена ошибка, которая возникала при вызове оператора dropSchema для этих соединений.
- При работе с ClickHouse в лог работы писались сообщения по отсутствию инициализации логгера log4j. Теперь такие сообщения не пишутся.
Версия 1.48
EasyPortal
Добавление функций
- Добавлен новый тип источника ClickHouse. Для соединений поддерживается работа через ssl. Для таблиц поддерживается создание и удаление таблиц, добавление записей в таблицы и очистка записей в таблицах оператором truncate table. Нет поддержки time полей.
- Добавлен новый тип источника SAP Hana. Поддерживается полный функционал работы с таблицами. Нет поддержки записи в blob поля.
- В редактор SQL скриптов файлов добавлена возможность выбора среды выполнения, на которой требуется выполнить скрипт.
Версия 1.47
EasyWorkspace
Добавление функций
- При старте приложения очищаются устаревшие логи работы старше 7 дней.
Исправление ошибок
- При выгрузке файлов с сайта на локальный диск при запросе имени файла терялось расширение. Теперь расширение автоматически подставляется в окно выбора пути сохранения.
- При выгрузке файлов на локальный диск в окне прогресса выгрузки показывалось не выбранное для сохранение имя файла, а пришедшее оригинальное с сайта.
EasyPortal
Добавление функций
- В моделях групп таблиц и моделях маппинга появилась возможность описывать подчиненные таблицы к таблицам источника. Использование таких таблиц позволяет организовать схему записи master-detail, где при чтении таблицы источника по полям, содержащим вложенную структуру будет автоматически произведена обработка с помощью подчиненных таблиц и далее с них произведена запись в выбранные таблицы приёмника. В качестве вложенных таблиц можно использовать датасеты ArrayDataset, CSVDataset, JSONDataset, XMLDataset и YAMLDataset. Для выбора подчиненной таблицы на основной таблице нажмите кнопку "Добавить подчиненный" и выберите датасет. В подчиненном датасете укажите в свойстве "Поле связи" имя поля с мастер таблицы, для которого нужно брать значения как структуру данных. В свойстве "Таблица приёмника" выберите таблицу назначения, куда будут записываться полученные данные. Для подчиненных таблиц можно описывать маппинг полей. Помимо полей подчиненных таблиц в таблицу приёмника будут приходить поля таблицы источника, имена которых так же можно использовать в маппинге.
- Добавлен новый тип источника Array, который позволяет описывать массив как источник с одним полем. Создайте в репозитории одно соединение ArrayDatasetConnection и на него создавайте для полей, содержащих массивы датасеты ArrayDataset. Такие датасеты дальше можно использовать как подчиненные датасеты в моделях групп таблиц и моделях маппинга. У ArrayDataset может быть только одно поле, тип которого можно переопределить.
- В выражения маппинга моделей и код скриптов workflow выведены в публичный доступ функции работы с строками, числами, датами и парсингом файловых структур.
- В пути к локальным файлам теперь можно указывать служебную переменную {#REPOSITORY}, вместо которой будет подставляться путь к репозиторию, где описаны объекты.
- В коде скриптов workflow теперь можно обращаться к шагам и скриптам с помощью встроенных функций step('ИмяШага') и script('ИмяСкрипта').
- Теперь при выгрузке архива репозитория в панели администратора в zip файл так же включаются библиотеки шаблонов, которые привязаны к выгружаемому репозиторию. Ранее, чтобы запускаемые workflow видели скрипты подключаемых библиотек шаблонов, требовалось jar файлы скопировать в каталог userlibs инсталляции EasyLoader.
- Добавлена видимость пользовательских статических функций с библиотек шаблонов в скрипты workflow и выражения маппинга моделей. К функциям нужно обращаться в формате "ИмяПакета.ИмяКласса.ИмяФункции".
- Для файлов репозитория добавлена кнопка "Новый файл". Это позволяет с портала создавать в репозитории файлы без необходимости создавать их локально и загружать в портал.
- Для файлов репозитория с расширением sql доработан редактор. Теперь можно во вкладке "Выполнить" выбрать соединение, указать логин и запустить выполнить редактируемый SQL скрипт без необходимости делать workflow, который будет его запускать.
- При старте портала очищаются устаревшие логи работы с репозиториями старше 7 дней.
Исправление ошибок
- При экспорте файловых датасетов в таблицы JDBC в полях таблиц оставались заполненные алиасы полей, что приводило к ошибкам чтения данных из таблиц. Теперь при таком экспорте алиасы полей сбрасываются.
- При создании модели группы таблиц "Dataset groups" возникала ошибка, если соединение модели было не совместимое с JDBC источниками.
EasyLoader
Добавление функций
- Добавлен новый шаблон EasyLoader.rdbms.SwitchLogin, в котором можно переключить логин для заданного соединения. Позволяет управлять работой под нужным логином для ряда действий без необходимости это делать в скрипте шага для соединения.
- В шаблон EasyLoader.files.ProcessDatasetFiles добавлены события start_write_file, finish_write_file, start_write_cache и finish_write_cache.
- В шаблон EasyLoader.files..ProcessDatasetFiles добавлена поддержка моделей маппинга с мастер-детайл данными. Ранее можно было загрузить только данные из файлов в одну таблицу приёмника. Теперь в модели маппинга можно добавить подчиненные таблицы, связать их с полями источника и организовать запись в таблицы детализации приёмника.
Исправление ошибок
- Для CSV источников данных не корректно работал парсинг числовых и дата-время полей в локали ce-RU, если числа выгружались с разделителем запятая и в дате стояло русское название месяца. Теперь все работает корректно.
- Если в SQL скрипте на языке ХП Getl стояло ECHO {var} без статического текста в сообщение, то оператор ECHO не срабатывал. Теперь сообщение выводится.
- В шаблоне EasyLoader.Files.ProcessDatasetFiles возникала ошибка, если для скрипта не были заданы менеджеры для хранения архивов и ошибок.
- В файловых шаблонах EasyLoader.Files.* при указании сортировки обработки файлов поля с DESC возникала ошибка (например "FILEDATE DESC").
Библиотеки шаблонов
Добавление функций
- В библиотеке шаблонов можно явно указать, какие классы требуется подгрузить сразу при старте приложения. Это позволяет в разделе static этих классов инициализировать нужные для работы данные. Нужно создать ресурсный файл "getl-library.conf" и в нем перечислить требуемые для инициализации классы "init_classes=['Пакет.Класс1', 'Пакет.Класс2', ...]"
Версия 1.46
EasyPortal
Исправление ошибок
- При выборе в модальном окне объекта репозитория для импорта таблиц с БД, добавления таблиц модели, выбора таблицы истории и т.д., возникала ошибка "Объект не найден undefined:undefined". Теперь все объекты корректно выбираются из модального окна.
Версия 1.45
EasyPortal
Добавление функций
- Для моделей эталонных файлов и эталонных данных Vertica в списке объектов добавлена кнопка "Fill", с помощью которой можно развернуть эталонные данные на приёмнике без необходимости вызывать это вручную в коде.
- Для Kafka датасетов в редакторе добавилась вкладка опций управления чтением данных.
- В окне лицензии теперь показываются версии используемых Getl и EasyLoader.
Исправление ошибок
- В моделях набора таблиц и маппинга можно было дважды добавить таблицу источника в модель. Теперь при выборе таблиц для модели уже ранее выбранные подчеркиваются зеленым цветом и не добавляются в модель.
- При попытке смены источника или приёмника в моделях эталонных файлов с помощью вызова визарда ничего не возвращался выбранный файловый менеджер. Теперь все возвращается.
- При вызове fill у моделей эталонных файлов и эталонных данных Vertica возвращалась ошибка, что у репозитория не включен unit test режим. Теперь он включается в портале при работе с репозиторием для текущей среды по умолчанию, но только если она не имеет название "prod".
EasyLoader
Добавление функций
- Доработана проверка кластера Vertica на соответствие ожидаемому при тестировании работы процессов. Теперь это происходит не каждый раз при старте любого workflow, а только если используется шаблон, который работает с соединением Vertica, указанным как сервер среды разработки.
- Для шаблонов файловых процессов добавлено новое событие "tracking", с помощью которого можно отслеживать хода обработки файлов процессом.
- Обновлены JDBC драйвера для работы с поддерживаемыми РСУБД на последние версии.
- Обновлены библиотеки для работы с Hadoop и Kafka на последние версии.
Исправление ошибок
- Шаблоны процессов, которые используют модели с ведением истории работы, не корректно создавали соединения для работы с таблицей истории в многопоточном режиме, что приводило к множеству лишних соединений к БД. Теперь на каждый поток корректно создается одно своё соединение.
- Шаблоны файловых процессов при возникновении ошибки с файловой системой могли попытаться некорректно записать ошибку в лог и прервать работу. Теперь ошибки файловых систем корректно отрабатываются и записываются в лог.
- При построении списка файлов шаблоны работы с файлами создавали локальную временную таблицу в СУБД, где хранится таблица истории работы с файлами, даже если СУБД не поддерживает такой тип таблиц. Теперь в этом случае будет создаваться обычная таблица, которая удалиться по завершении работы.
Расширение языка Getl
- Счетчикам БД (sequence) теперь можно сбросить текущее значение на указанное с помощью функции restartWith.
- Добавлены новые операторы attachToDataset и attachToArray, с помощью которых можно присоединить локальные данные к файловому датасету и получить с него записи.
- В язык выражений и скриптов добавлены базовые функции для работы с строками, числами, датами и конвертацией типов, а так же функции для парсинга XML, Json и Yaml структур с текста (parseXML, parseJSON и parseYAML). Список доступных функций можно посмотреть на GitHab.
Исправление багов в языке Getl
- В шаблонах, которые копируют данных между источниками, не корректно вызывался код для события "before". Теперь это событие корректно вызывает код.