1
我從mongodb集合中獲取所有文檔(百萬),並且在postgreSQL中有很多正則表達式。 我想測試每個正則表達式,直到包含在文檔中的多個字段上的一個匹配。在每個文檔上測試多個正則表達式
你有什麼想法該怎麼做?
我嘗試了一個Filter Row
步驟,但我不知道如何遍歷所有來自postgreSQL的正則表達式。
我從mongodb集合中獲取所有文檔(百萬),並且在postgreSQL中有很多正則表達式。 我想測試每個正則表達式,直到包含在文檔中的多個字段上的一個匹配。在每個文檔上測試多個正則表達式
你有什麼想法該怎麼做?
我嘗試了一個Filter Row
步驟,但我不知道如何遍歷所有來自postgreSQL的正則表達式。
您可以通過使用連接行(笛卡爾積)組件解決您的問題。其中一個輸入必須在文檔中閱讀,另一個必須在正則表達式中閱讀。連接組件將從中創建一個外部產品,從而產生正則表達式和文檔的每種可能的組合。這個流必須輸入到Filter行組件,並將結果發送到某個輸出。
下列轉換將模擬天生這種方法(從CSV文件中讀取,但不應該有任何區別,從PostgreSQL的或MungoDB閱讀它):
輸入的數據爲「文檔」配置如下:
爲「正則表達式」的輸入數據被配置如下:
的加入不必在所有配置行,因爲我們將不提供的連接條件,從而使其成爲有效的完整外部聯接。
在篩選組件,你將不得不使用DOC_TEXT
和REGEX_TEXT
領域在REGEXP
操作執行檢查的基礎。
對於本文檔輸入
DOC_ID;DOC_TEXT
1;DFGBGGG
2;UHLLJAL
3;JJJJHHH
4;FGAKKBL
和這個表達式輸入
REGEX_ID;REGEX_TEXT
1;.*A.*
2;.*B.*
改造將輸出以下結果:
DOC_ID;DOC_TEXT;REGEX_ID;REGEX_TEXT
1;DFGBGGG;2;.*B.*
2;UHLLJAL;1;.*A.*
4;FGAKKBL;1;.*A.*
4;FGAKKBL;2;.*B.*
這不完全我首先想要什麼,但它工作正常,謝謝! – AnthonyB
不客氣!我想還有改進的空間。什麼不適合你的需求? –
對我來說,問題是如果一個文檔與多個正則表達式匹配,我會重複它們。我現在不需要它,但我知道我可以通過後續步驟來完成。 – AnthonyB