使用 apache-nifi 将两列加在一起
Add two columns together using apache-nifi
我有以下场景。我有一个数据库 table 我有 :
| id | name | basic_salary | allowance |
_______________________________________|
| 1 | sach | 2000 | 1000 |
| 2 | nala | 5000 | 2500 |
|______________________________________|
将 basic_salary
和 allowance
加在一起并使其成为 net_salary
并插入到名为 net_salary
的新 table
第一步,我使用了ExecuteSQLRecord
处理器,可以得到所有的记录。但问题是:如何添加流文件中的这两列。
所以最终结果应该是:
| id | name | net_salary |
|________________________|
| 1 | sach | 3000 |
| 2 | nala | 7500 |
这与直接相关。
如何处理流文件变量以在 apache-nifi
?
中执行操作
我在 ExecuteSQL
处理器中使用了 How to compute the sum of multiple columns in PostgreSQL,但它无法理解流文件变量。
有一个棘手的问题。使用 UpdateRecord
两次。
第一个是
Record Reader CSVReader
Record Writer CSVRecordSetWriter
Replacement Value Strategy Record Path Value
/net_salary concat(/basic_salary, ',', /allowance)
第二个是
Record Reader CSVReader
Record Writer CSVRecordSetWriter
Replacement Value Strategy Literal Value
/net_salary ${field.value:substringBefore(','):toNumber():plus(${field.value:substringAfter(','):toNumber()})}
它给出的结果如下。
id,name,basic_salary,allowance,net_salary
1,sach,2000,1000,3000
2,nala,5000,2500,7500
我有以下场景。我有一个数据库 table 我有 :
| id | name | basic_salary | allowance |
_______________________________________|
| 1 | sach | 2000 | 1000 |
| 2 | nala | 5000 | 2500 |
|______________________________________|
将 basic_salary
和 allowance
加在一起并使其成为 net_salary
并插入到名为 net_salary
第一步,我使用了ExecuteSQLRecord
处理器,可以得到所有的记录。但问题是:如何添加流文件中的这两列。
所以最终结果应该是:
| id | name | net_salary |
|________________________|
| 1 | sach | 3000 |
| 2 | nala | 7500 |
这与apache-nifi
?
我在 ExecuteSQL
处理器中使用了 How to compute the sum of multiple columns in PostgreSQL,但它无法理解流文件变量。
有一个棘手的问题。使用 UpdateRecord
两次。
第一个是
Record Reader CSVReader
Record Writer CSVRecordSetWriter
Replacement Value Strategy Record Path Value
/net_salary concat(/basic_salary, ',', /allowance)
第二个是
Record Reader CSVReader
Record Writer CSVRecordSetWriter
Replacement Value Strategy Literal Value
/net_salary ${field.value:substringBefore(','):toNumber():plus(${field.value:substringAfter(','):toNumber()})}
它给出的结果如下。
id,name,basic_salary,allowance,net_salary
1,sach,2000,1000,3000
2,nala,5000,2500,7500