1、本節通過一個小例子來講解下處理器PutDatabaseRecord,該處理器的作用是將數據寫入數據庫。
如下流程通過處理器GenerateFlowFile 生成數據,然後通過處理器JoltTransformJSON轉換結構,最後通過處理器PutDatabaseRecord將數據寫入數據庫。如下圖所示
2、處理器GenerateFlowFile 生成自定義數據,如下圖所示
3、處理器JoltTransformJSON轉換結構,將結構轉換成適合表字段的結構,此時有兩種方式駝峯和下劃線兩種方式。下圖採用駝峯方式
4、處理器PutDatabaseRecord將數據寫入數據庫,此處理器需要配置兩個控制器,Record Reader和Database Connection Pooling Service 兩個控制器。
Record Reader
指定用於解析傳入數據並確定數據模式的控制器服務。
Database Type
數據庫的類型/版本,用於生成特定於數據庫的代碼。在許多情況下,通用類型應該足夠,但某些數據庫(例如Oracle)需要自定義的SQL子句。這裏我們選擇mysql
Statement Type
支持常見的sql語句類型,如增刪改查,我們這裏選擇insert
Data Record Path
指定數據記錄的路徑,該路徑確定了要發送到目標數據庫的記錄。
Database Connection Pooling Service
配置數據庫連接池信息,如下圖所
Catalog Name
SQL語句應該更新的目錄名稱
Schema Name
database 名稱
Table Name
表名
Translate Field Names
如果設置爲 true,處理器將嘗試將字段名翻譯爲指定表格的相應列名。如果設置爲 false,字段名必須與列名完全匹配,否則列將不會被更新。
Unmatched Field Behavior
未匹配的字段行爲,自己根據要求進行選擇。未匹配的字段行爲,自己根據要求進行選擇策略。
5、大功告成,查看錶my_user,數據已經寫入,這裏爲了演示方便,所以user_id 沒有設置唯一健。