Обновить

Когда строишь потоки обработки в Apache Nifi в основном требуется результат записать в базу данных. Бывают случаи, когда запись в целевую таблицу не проходит по причине несоответствия данных в записи и полей в таблице. Это возникает в случае, если на источнике размер поля увеличился, либо изменился порядок знаков после занятой, либо вы ожидаете "uniqueidentifier" а приходит пустая строка.

Ситуаций много, а решение обычно одно - локализовать ошибку, найти поле, которое не соответствует S2T, внести корректировки в таблицы, либо дополнить трасформации. В случае, если полей в записи две три, понять причину не сложно. Когда же их много приходится тратить время на разбор записи по отдельным полям и проверку каждого потенциального источника ошибки.

Для этого предлагаю скрипт для ScriptedTransformRecord, позволяющий разобрать запись на массив записей, каждая из которых содержит только одно значение, остальные проставляются "null".

results = []

fields = record.getRawFieldNames()
schema = record.getSchema()
fields.each{key -> {
    log.debug("Got key: ${key}")
    nMap = new java.util.HashMap<String, Object>()
    log.debug("create map")
    nMap.put(key,record.getValue(key))
    log.debug("Put to map value")
    newrecord = new org.apache.nifi.serialization.record.MapRecord(schema, nMap)
    log.debug("Сreate new record with field ${key}")
    results.add(newrecord)
}}

results

Полезные ссылки:

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

GPT-6 Astra помогла прочесть зашифрованную Enigma немецкую радиограмму 1941 года — над ней бились 21 год

Сотрудник Bloomberg Картер Леффен с помощью GPT-6 Astra расшифровал немецкую военную радиограмму MVUEH от 10 июля 1941 года. Сообщение состояло всего из 82 зашифрованных символов и находилось в коллекции исследовательского проекта CryptoCellar. По словам его куратора, специалиста по Enigma Фроде Вайеруда, попытки подобрать к нему ключ предпринимались с 2005 года — безуспешно.

Иногда эту историю уже пересказывают как «шифр не могли разгадать 83 года», но на самом деле неизвестно, пытался ли кто‑нибудь расшифровать именно эту радиограмму в течение большей части времени после войны. В современный криптоаналитический проект сообщение попало значительно позже. Вайеруд говорит вполне конкретно: MVUEH сопротивлялась попыткам расшифровки с 2005 года.

Леффен дал GPT-6 Astra в режиме Extra High довольно общую задачу — изучить оставшиеся нерасшифрованными сообщения из коллекции CryptoCellar и попробовать взломать одно из них. По рассказу самого Леффена, непосредственно работа модели до нахождения решения заняла около десяти часов. Всё исследование вместе с разбором источников, дополнительными проверками и воспроизведением результата шло 14 и 15 сентября.

GPT-6 Astra помогла прочесть зашифрованную Enigma немецкую радиограмму 1941 года — над ней бились 21 год

Публикации