- Dừng
PutSQL
bộ xử lý và để các luồng lưu trữ xếp hàng. - Khi chúng được xếp hàng đợi, hãy nhấp chuột phải vào
success
mối quan hệ
giữaUpdateAttribute
vàPutSQL
và chọnList Queue
. - Chọn một luồng bất kỳ và điều hướng đến
Attributes
tab và xem các thuộc tínhabsolute.path
vàflowfilename
tồn tại và nếu
chúng tồn tại, hãy xác minh xem chúng có được đặt giá trị mong đợi hay không. Trong trường hợp của bạn làabsolute.path
phải có giá trị/path/in/nifi/node/to/file
vàflowfilename
phải có giá trị/data.csv
Câu hỏi dành cho bạn:Bạn có đang tự đặt các thuộc tính này bằng cách sử dụng UpdateAttribute
không , lý do là, NiFi không tạo thuộc tính có tên flowfilename
, nó tạo ra một với tên filename
.
Một điều nữa, hãy đảm bảo giá trị cho absolute.path
kết thúc bằng /
cuối cùng hoặc giá trị của flowfilename
bắt đầu bằng /
. Nếu không, chúng sẽ được thêm vào và kết quả sẽ là /path/in/nifi/node/to/filedata.csv
. Bạn có thể thử append
chức năng mà @Mahendra đã đề xuất, nếu không, bạn có thể chỉ cần sử dụng ${absolute.path}/${flowfilename}
.
Cập nhật
Tôi vừa nhận ra rằng absolute.path
là thuộc tính cốt lõi như filename
, filesize
, mime.type
, v.v. Một số bộ xử lý sử dụng tất cả các thuộc tính cốt lõi trong khi một số bộ xử lý sử dụng rất ít các thuộc tính cần thiết. GenerateTableFetch
viết absolute.path
nhưng không thiết lập bất cứ điều gì cho nó. Đó là lý do tại sao nó có ./
là giá trị mặc định.
Vì vậy, đề xuất của tôi để cách tiếp cận của bạn hoạt động là, bạn có thể đặt / ghi đè absolute.path
theo cách thủ công thuộc tính sử dụng UpdateAttribute
(giống như bạn đã ghi đè filename
) và đặt giá trị mong muốn là /path/in/nifi/node/to/file