Neo4j外掛
下載安裝
下載地址:https://github.com/knowbi/knowbi-pentaho-pdi-neo4j-output/releases
- 解壓檔案,放入kettle的
plugins
目錄中 - 需要先刪除所有歷史
/plugins/Neo4JOutput
的資料夾 - 重啟kettle使用
kettle版本外掛,已不再維護;現維護的為kettle分支hop,地址:https://github.com/apache/hop
元件清單
類別 | 元件名稱 | 簡介 |
---|---|---|
JOB | Check Neo4j Connections | 條件欄,驗證neo4j連線是否正常 |
JOB | Neo4j Cypher Script | 指令碼欄,執行Cypher語句 |
TRANS | Neo4J Output | 插入或更新Neo4j資料庫中的節點和關係 |
TRANS | Neo4j Cypher | 執行 Cypher 語句 |
TRANS | Neo4j Generate CSVs | 生成並匯出csv檔案 |
TRANS | Neo4j Graph Output | 透過模板方式插入或更新Neo4j資料庫 |
TRANS | Neo4j Import | 初始化資料載入匯入 |
TRANS | Neo4j Split Graph | 切分圖,將大圖切分成單個小的圖 |
Check Neo4j Connections 元件
驗證neo4j連線是否正常
- 需要預先配置Neo4j的連線資訊
- 該元件無法建立連線,需要透過其他元件建立,如
Neo4j Cypher Script
元件 - 可配置多個,但只要有一個相簿無法連線則報錯
- 控制流程,失敗則不進行後續操作
Neo4j Cypher Script 元件
執行Cypher語句
- 可新建、編輯
neo4j
連線資訊,無法刪除 - 可選擇使用
變數替換
- 只能執行單條語句,不能進行多條
Cypher
語句
Neo4j Output 元件
插入或更新Neo4j資料庫中的節點和關係
- 允許插入或更新
一個節點
、兩個節點
或節點節點和關係
,節點和關係可以具有屬性 - 源節點(目標節點)標籤名
Label
的內容必須一致,如果存在不一樣的值會導致標籤錯亂 - 若是需要相同節點不重複建立,在節點配置中必須指定
Primary
屬性
整體配置
Neo4j Connection
:選擇、新建、編輯neo4j
連線資訊,無法刪除Batch size
:批次大小,將定義的記錄數分組到單個事務中執行Create indexes
:建立索引,為節點中所有Primary
屬性建立唯一約束,在處理關係的Merge
和查詢節點時保持良好的效能。(不允許重複,如果勾選,謹慎使用Use CREATE instead of Merge
選項,容易出現主鍵衝突無法匯入的情況);Use CREATE instead of Merge
:使用CREATE
代替Merge
- 選擇此項繞過了查詢,速度更快;
- 生成一個 UNWIND 語句,將記錄組合在一起以獲得更好的效能
- 不使用任何事務,只使用隱式事務(自動提交);
- 選擇此項無論什麼情況都會建立新的節點;
Only create relationships
:是否僅建立節點關係- 選擇後,節點資訊不會更新;
- 源節點和目標節點的
Perform lookups only,do not update the "from" nodes
選項不可用
Return graph data
:是否返回圖資料,選中後,將不會在圖資料庫建立節點和關係,僅輸出圖資料- 勾選此項後,僅
Graph output field name
選項有效,整體配置
的選項都不可用 - 圖資料為
JSON
格式,內容為節點、關係配置項的資料資訊
- 勾選此項後,僅
Graph output field name
:節點圖輸出名稱- 必須勾選
Return graph data
此選項才可用,並且可修改
- 必須勾選
源節點配置
Perform lookups only,do not update the "from" nodes
:僅查詢不更新節點資訊- 此配置無效,不論選中與否,節點屬性都會變更
整體配置
中勾選了Only create relationships
,該選項不可選
From Labels
:源節點標籤From Label Fields
:標籤名稱的欄位列(資料流傳入欄位),值作為節點標籤名稱,所有行的值必須都相同,否則會導致相簿中標籤錯亂From Label Values
:源節點標籤名稱預設值(From Label Fields
為空時使用此值);
From Property
:源節點屬性From Properties Fields
:屬性欄位列(資料流傳入欄位);Properties Name
:源節點屬性名稱的欄位列- 列名作為屬性名,值作為屬性值
From Properties Fields
欄位列存在下劃線,預設獲取欄位時會採用駝峰命名規則
type
:屬性值型別Primary
:是否主鍵,判斷節點是否Merge的標識
目標節點配置
Perform lookups only,do not update the "to" nodes
:僅查詢不更新節點資訊- 此配置無效,不論選中與否,節點屬性都會變更
整體配置
中勾選了Only create relationships
,該選項不可選
To Labels
:目標節點標籤To Label Fields
:標籤名稱的欄位列(資料流傳入欄位),值作為節點標籤名稱,所有行的值必須都相同,否則會導致相簿中標籤錯亂To Label Values
:目標節點標籤名稱預設值(To Label Fields
為空時使用此值)
To Property
:源節點屬性To Properties Fields
:屬性欄位列(資料流傳入欄位)Properties Name
:目標節點屬性名稱的欄位列- 列名作為屬性名,值作為屬性值
To Properties Fields
欄位列名存在下劃線,預設獲取欄位時會採用駝峰命名規則
type
:屬性值型別Primary
:是否主鍵,判斷節點是否Merge的標識
關係配置
Relationship filed
:關係型別名稱的欄位(資料流傳入欄位),值作為關係型別名稱,所有行的值必須都相同,否則會導致相簿中標籤錯亂Relationship value
:關係型別名稱預設值(Relationship filed
為空時使用此值);Relationship properties
:關係屬性Relationship Properties
:屬性欄位列(資料流傳入欄位)Properties Property name
:關係屬性名稱的欄位列- 列名作為屬性名,值作為屬性值
- 資料流欄位列名存在下劃線,預設獲取欄位時會採用駝峰命名規則
Property type
:屬性值型別
Neo4j Cypher 元件
執行 Cypher 語句
作業中的
Neo4j Cypher Script
元件不能傳遞資料流,本元件可傳遞資料流
整體配置
-
Neo4j Connection
:選擇、新建、編輯neo4j
連線資訊,無法刪除 -
Batch size
:批次大小,將定義的記錄數分組到單個事務中執行 -
Read only statement
:只讀語句,勾選此項只能執行查詢語句,執行插入更新語句會報錯 -
Retry connecting after disconnection
:連線中斷重連 -
Get Cypher from input field
:從輸入欄位獲取Cypher
語句(與Cypher
選項互斥)Cypher input field
:Cypher語句欄位
-
Cypher
:執行語句(與Get Cypher from input field
選項互斥) -
Collect parameter values map
:收集引數值,將所有行新增到列表中並將其傳遞給UNWIND
語句(必須在引數列表中選擇入參欄位)Name of values map list
:引數Map值的欄位名稱,如設定為params
- 例:
UNWIND $params AS p match (n:TL {id:p.id}) return n.name as name
- 例:
UNWIND $params AS p CREATE (n:TL {id:p.id,name:p.name})
-
Return graph data
:返回圖資料,選中後僅輸出圖資料- 勾選此項後,
Graph output field name
選項有效 Graph output field name
:節點圖輸出欄位名稱- 下一個步驟可連線
Neo4j Generate CSVs 元件
,用於匯出圖資料
- 勾選此項後,
入參配置 Parameters
Parameter
:引數名稱,需配合Cypher
語句使用,合併成MapField
:資料流欄位Neo4j Type
:相簿中資料型別
返回值配置 Returns
-
Field Name
:欄位名稱(相簿中返回的欄位名稱)- 若查詢語句返回值帶符號,此次也必須帶符號
- 例:
match (n:TL) return n.name
語句返回需配置為n.name
- 例:
match (n:TL) return n.name as rname
語句返回需配置為rname
-
Return Type
:返回值型別(輸出到下一個步驟的資料型別) -
Source Type
:來源型別(相簿中的資料型別)
Neo4j Generate CSVs 元件
匯出csv檔案
graph field
:傳遞圖形資料的欄位(從上一步選擇)base folder (below import/folder)
:檔案目錄(匯出的csv檔案在檔案目錄/import
下)csv files prefix
:csv檔案字首node/relationships uniqueness strategy
:節點或關係唯一性策略- 選項不起作用,暫未發現其他作用
filename field
:匯出檔案的欄位名- 輸出內容規則:
import/字首-相簿型別-轉換名-前一個步驟名-相簿名-序號.csv
- 輸出內容例子:
import/prefix-nodes-export_csv_neo4j-Neo4j Cypher-TL-0.csv
- 輸出內容規則:
file type field
:匯出檔案型別的欄位名- 節點型別:
Nodes
- 關係型別:
Relationships
- 節點型別:
Neo4j Graph Output 元件
透過模板方式插入或更新Neo4j資料庫
用的比較少,累了,過段時間再更新
Neo4j Import 元件
初始化資料載入匯入,慎用
實際上是呼叫Neo4j 資料庫的neo4j-import
命令列工具,用於高效地將大量資料匯入 Neo4j 圖形資料庫。適用於初始資料載入或大規模資料遷移,因為它能夠比Cypher查詢更快地匯入資料;
注意:使用該元件會先刪除資料庫再重新建立,但是社群版沒有許可權建立資料庫,會使用失敗
filename field
:匯出檔案的欄位名(資料流獲取)file type field
:匯出檔案型別的欄位名(資料流獲取)database filename
:圖資料庫檔名稱neo4j-admin command path
:neo4j管理命令的路徑base folder (below import/folder)
:檔案目錄(檔案需在檔案目錄/import
下)Max Memory
:最大記憶體High IO
:最高IOIgnore Duplicate Nodes
:忽略重複的節點Ignore Missing Nodes
:忽略丟失的節點Ignore Extra Columns
:忽略多餘的列Fields Can Have Multi-line Data
:欄位可以具有多行資料Skip Bad Relationships
:跳過不良關係Read Buffer Size
:讀取緩衝區大小
Neo4j Split Graph 元件
切分圖
將大的圖拆分成單個節點或者單個關係的小圖
Graph field
:傳遞圖形資料的欄位(從上一步選擇)Type output field (Node/Relationship)
:型別輸出欄位(節點/關係)- 節點型別:
Nodes
- 關係型別:
Relationships
- 節點型別:
ID output field
:ID輸出欄位Property set output field
:標籤(Lable)輸出欄位