Поиск Apache Nifi HBASE

Я новичок в Apache Nifi

Мы создаем поток Nifi, который потребляет данные json от kafka, и результаты отправляются в другую тему kafka после обогащения. Однако поиск HBase не возвращает значение ключа. Вместо этого он возвращает пару ключ-значение, например MapRecord[{SERIAL_NUM=123456789}]. Но мне нужно только значение "123456789".

Мне не удалось решить эту проблему. кто-нибудь может мне помочь по этой теме?

Я делюсь результатами своего потока. Мы хотим видеть значение «hbase_integid» как «123456789», но служба поиска возвращает

MapRecord[{SERIAL_NUM=123456789}]"

Как мы можем извлечь только значение SERIAL_NUM ("123456789") ??

[
  {
    "table" : SIEBEL.S_ASSET,
    "op" : Update,
    "hbase_integid" : **MapRecord[{SERIAL_NUM=123456789}]**,
    "op_type" : U,
    "op_ts" : 2018-04-02 05:48:35.055299,
    "current_ts" : 2018-04-02T08:48:40.071000,
    "pos" : 00000000020530642196,
    "before" : {
        "ROW_ID" : 1-G7B7EGF,
        "BILLACCT_ID" : ,
        "BILL_ACCNT_ID" : 1-G79GNWP,
        "BILL_PROFILE_ID" : 1-1FJHFB0,
        "INTEGRATION_ID" : 1-G79GU5K,
        "NAME" : ,
        "OWNER_ACCNT_ID" : 1-G79GEVV,
        "OWNER_CON_ID" : 1-G79GEW3,
        "PROD_ID" : 1-Q5B470,
        "PROMOTION_ID" : ,
        "PROM_INTEG_ID" : ,
        "PROM_ITEM_ID" : ,
        "PR_ACCNT_ID" : ,
        "PR_CON_ID" : No Match Row Id,
        "ROOT_ASSET_ID" : 1-G7B7EFI,
        "SERIAL_NUM" : ,
        "X_VF_MSISDN" : ,
        "X_VF_PERMISSONS" : 
    },
    "after" : {
        "ROW_ID" : 1-G7B7EGF,
        "BILLACCT_ID" : ,
        "BILL_ACCNT_ID" : ,
        "BILL_PROFILE_ID" : ,
        "INTEGRATION_ID" : ,
        "NAME" : ,
        "OWNER_ACCNT_ID" : ,
        "OWNER_CON_ID" : ,
        "PROD_ID" : ,
        "PROMOTION_ID" : ,
        "PROM_INTEG_ID" : ,
        "PROM_ITEM_ID" : ,
        "PR_ACCNT_ID" : ,
        "PR_CON_ID" : ,
        "ROOT_ASSET_ID" : ,
        "SERIAL_NUM" : ,
        "X_VF_MSISDN" : ,
        "X_VF_PERMISSONS" : 
    }
  }
]

person erkan.oktay    schedule 05.04.2018    source источник
comment
How can we extract only value of SERIAL_NUM value ("123456789")?? - непонятно, это ваш вопрос к hbase или к nifi?   -  person daggett    schedule 06.04.2018
comment
Мой квест, связанный с Нифи, я пытаюсь обогатить данные с помощью LookupRecord. Службы поиска Habse были включены для получения значения поля ключа.   -  person erkan.oktay    schedule 09.04.2018


Ответы (2)


Если вы используете процессор LookupRecord, документация несколько вводит в заблуждение. Настройте процессор, как показано на скриншоте. Убедитесь, что следующие два свойства установлены правильно:

  1. Для содержимого результата записи должно быть установлено значение «Вставить поля записи».
  2. Стратегия обновления записи должна быть установлена ​​на «Использовать свойство».
  3. Наконец, путь к записи результата должен быть установлен в /, а не hbase_integid (похоже, это ошибка в документации)

Надеюсь, это поможет!

введите здесь описание изображения

person MojoJojo    schedule 06.05.2020

Запись поиска выдает вывод как MapRecord; вам может понадобиться впоследствии использовать другие процессоры для извлечения значения SERIAL_NUMBER.

Ниже приведен рабочий пример.

введите описание изображения здесь

Конфигурация поиска HBase

введите описание изображения здесь

Получив результат поиска, вы можете использовать 2 процессора UpdateRecord для извлечения и обновления значения SERIAL_NUM в потоковом файле.

Обновить конфигурацию записи 1

введите описание изображения здесь

Обновить конфигурацию записи 2

введите описание изображения здесь

person Akhil Baby    schedule 15.07.2020