Как я могу сегментировать / разделять файл в NiFi, получая маленькие фрагменты?

#apache-nifi

#apache-nifi

Вопрос:

Спокойной ночи

У меня есть 5 файлов

 [azureuser@ibpoccloudera output]$ pwd
/home/azureuser/logs_auditoria/output
[azureuser@ibpoccloudera output]$ ls -lrth
total 5.1G
-rw-r--r-- 1 nifi nifi 1.2G Oct  6 00:38 auditoria_20200928.txt
-rw-r--r-- 1 nifi nifi 433M Oct  6 00:38 auditoria_20200927.txt
-rw-r--r-- 1 nifi nifi 1.5G Oct  6 00:38 auditoria_20200929.txt
-rw-r--r-- 1 nifi nifi 1.6G Oct  6 00:38 auditoria_20200925.txt
-rw-r--r-- 1 nifi nifi 427M Oct  6 00:38 auditoria_20200926.txt
  

И я хочу разделить их на более мелкие части и поместить в другой каталог, используя NiFi. Я использую эту безопасность процессора:

Getfile -> SegmentContent -> Putfile

GetFile

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

SegmentContent

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

PutFile

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

Но когда я проверяю свой выходной каталог (PutFile) Я получил последний сегмент, который дал мне SegmentContent.

Есть ли какой-либо вариант получить что-то вроде разделения Linux

 [azureuser@ibpoccloudera output]$ split -b 524288000 auditoria_20200929.txt auditoria_20200929

[azureuser@ibpoccloudera output]$ ls -lrth
total 6.5G
-rw-r--r-- 1 nifi      nifi      1.2G Oct  6 00:38 auditoria_20200928.txt
-rw-r--r-- 1 nifi      nifi      433M Oct  6 00:38 auditoria_20200927.txt
-rw-r--r-- 1 nifi      nifi      1.5G Oct  6 00:38 auditoria_20200929.txt
-rw-r--r-- 1 nifi      nifi      1.6G Oct  6 00:38 auditoria_20200925.txt
-rw-r--r-- 1 nifi      nifi      427M Oct  6 00:38 auditoria_20200926.txt
-rw-rw-r-- 1 azureuser azureuser 500M Oct  6 00:54 auditoria_20200929aa
-rw-rw-r-- 1 azureuser azureuser 500M Oct  6 00:55 auditoria_20200929ab
-rw-rw-r-- 1 azureuser azureuser 500M Oct  6 00:55 auditoria_20200929ac
-rw-rw-r-- 1 azureuser azureuser  14M Oct  6 00:55 auditoria_20200929ad

  

Комментарии:

1. Вы автоматически обрабатывали «исходный» вывод из процессора segmentContent?

Ответ №1:

Я решил проблему, используя SplitText и UpdateAttribute.

Я использую SplitText, потому что у меня есть файл json, поэтому, если я использую SegmentContent, иногда я вырезаю одну запись и получаю ошибки.

и с помощью UpdateAttribute я меняю имя файла на UUID, поэтому я почти уверен, что у меня нет повторяющихся записей.

Разделенный текст

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

UpgradeAttribute

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