๐ปTech/๐งnifi8 [NiFi] ExecuteSQLRecord postgresql ์ฌ์ฉ์ ์ฃผ์ auto commit ์ต์ ์ด default๋ก true์ธ๋ฐ postgresql ๊ฐ์ ๊ฒฝ์ฐ true๋ก ์ฌ์ฉ ์, Heavy Query ์ผ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ nifi ์ฅ์ ๋ฐ์๋จ (nifi ํ๋ก์ธ์ค kill ํด์ค์ผ ํจ) ๊ฒฐ๋ก ์ postgresql์ auto commit ์ต์ ์ false๋ก ์ค์ ํ๊ณ fetch ์ฌ์ด์ฆ๋ฅผ ํ ๋นํด์ ๋ฉ๋ชจ๋ฆฌ ์ด์๋ฅผ ์๋ฐฉํ ์ ์์ 2023. 8. 22. [NiFi] FlowFile "Details" ๊ฐ attribute ์ถ์ถ ๋ฐฉ๋ฒ Details ํญ์์ Filename, File Size ๋ผ๋ ๊ฐ์ attribute๋ก ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. UdateAttribute ํ๋ก์ธ์๋ฅผ ์์ฑํ๊ณ ์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ๋ฉด ํด๋น ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์์ฑ์ด๋ฆ: my_file_name ์์ฑ๊ฐ: ${filename} ์์ฑ์ด๋ฆ: my_file_size ์์ฑ๊ฐ: ${fileSize} 2023. 4. 21. [NiFi] content ๋ด์ฉ์ attribute๋ก ์ ์ฅํ๋ ๋ฐฉ๋ฒ NiFi Processor ์ค ExtractText ํ๋ก์ธ์์์ ์ ๊ท์์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. html ๋ด์ฉ์ attribute์ ์ ์ฅํด์ sql์ ์ง์ด๋ฃ๊ธฐ ์ํด ์ถ์ถํ์ต๋๋ค. ๐จ๐ป ExtractText์์ ๋ณ๊ฒฝํ properties ๋ด์ฉ Maximum Capture Group Length = 1048576 Enable DOTALL Mode = true Enable Multiline Mode = true body = (.*) 2022. 10. 20. [NiFi] ORACLE, Impala Data Type ๋น๊ต NiFI์์ ORACLE ๋ฐ์ดํฐ ์์งํ ๋ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ๐ Data Type ORACLE Impala CLOB string varchar string number(int) decimal(20,0) number(double) decimal(20,3) timestamp timestamp date timestamp binary_double double โพ ExecuteSQLRecord Use Avro Logical Types: true Max Rows Per Flow File: 500000 Fetch Size: 500000 โพ Impala DBCP Validation query: select 1 2022. 9. 22. [NiFi] Groovy-Java๋ก ์ฌ๋ฌ ๋ ์ง ๋ฝ๋ ๋ฐฉ๋ฒ NiFi์์ ์ ๊ณตํ๋ Groovy Script๋ ์๋ฐ ํธํ์ด ๊ฑฐ์ ๋๋ฏ๋ก ์๋ฐ ์ฝ๋๋ก ์์ฑํ์ฌ๋ ์ ๋์๊ฐ Create ExecuteScript Processor PROPERTIES > Select Groovy > Write Script Body Script Contents import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; //attribute์ ๋ ์ง(yyyymmdd) ๊ธฐ์ค๋ถํฐ -30์ผ๊น์ง ์ถ์ถ flowFile = session.get(); if(!flowFile) return; dt = flo.. 2022. 9. 22. [NiFi] global variable(์ ์ญ๋ณ์) ์ค์ nifi์์ global variable(์ ์ญ๋ณ์) ์ค์ ํ์ฌ ์ฌ๋ฌ Process Group์์ ํ์ฌ ๋ ์ง(yyyyMMdd)๋ฅผ ์ฌ์ฉํ๋ ์๊ฑด์ด ์์๋๋ฐ ๋ฐฉ๋ฒ ์ฐพ๋๋ผ ์์ฒญ ๊ณ ์ํ๋ค์ ๐ญ Variables์ Parameter 2๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ Parameter์์ NiFi EL(Expression Language)์ด ๋จนํ์ ๊ธ๋ก๋ฒ ๋ ์ง ๋ณ์๋ฅผ ์ถ์ถํ ์ ์์์ต๋๋ค. Variables์์๋ ${now():format('yyyyMMdd')} ์ ๊ฐ์ ํํ์์ ๋ชจ๋ String ๋ฌธ์ ๊ฐ์ผ๋ก ์ฝ์ด์ ๋ฐํํด์ ์ฌ์ฉํ ์ ์๊ณ , Parameter๋ EL ํํ์์ด ์ฌ์ฉ ๋ถ๊ฐํ๋ค๊ณ NiFi doc์ ๋์์์ง๋ง ์ฌ์ฉ์ด ๋๋ค์..๐คจ 1. Parameter์์ EL ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋๋ค. 2. ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ํ๋ผ๋ฏธํฐ ๋งคํ 3.. 2022. 8. 31. [NiFi] Impala JDBC DBCPConnectionPool ์ฌ์ฉ ์์ 1. Impala JDBC Connector ๋ค์ด๋ก๋ https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-17.html 2. NiFi DBCPConnectionPool ์ค์ Database Driver Location(s) ์ ๋ก๋ํ ํ์ผ ๊ฒฝ๋ก ์ ๋ ฅ /opt/cloudera/parcels/CFM/NIFI/lib/ImpalaJDBC42.jar ๊ฒฝ๋ก๋ฅผ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํจ Validation query ์ ๋ ฅํด์ฃผ๋ฉด ์ข์ (select 1) Could not initialize class com.cloudera.impala.jdbc42.internal.apache.thrift.transport.TSocket 3. Impala SQ.. 2020. 10. 14. [NiFi] GetFTP - PutHDFS ์ฐ๋ ์์ ๊ฐ๋จํ nifi ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋๋ค. ftp ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ hdfs์ ์ ๋ก๋ํ๋ ์์ ์ ๋๋ค. 1. Processor ๋ฒํผ์ ์์ ํ๋ฉด์ ๋์ด ๋์ผ๋ฉด nifi์์ ์ ๊ณตํ๋ processor๋ฅผ ์ ํํ ์ ์์ต๋๋ค. (GetFTP, PutHDFS ์ถ๊ฐ) 2. ์ถ๊ฐ ํ Configure์์ ์ค์ ์ ํ๊ณ processor ์์ ๋ง์ฐ์ค ์ปค์๋ฅผ ์ฎ๊ธฐ๋ฉด ๋ฒํผ์ด ๋์ค๋๋ฐ ํด๋ฆญ ํ ๋ ๊ฐ์ ํ๋ก์ธ์๋ฅผ ์ฐ๊ฒฐํด ์ค๋๋ค. GetFTP ํ๋ก์ธ์์ ์ค์ผ์ค์ 10์ด๋ก ์ค์ ํ์ฌ 10์ด๋ง๋ค ์คํ๋๊ฒ ํด ์ฃผ์์ต๋๋ค. ftp ์๋ฒ์ ํ์ผ ์ ๋ณด ์ ๋ ฅ (Delete Original ์ต์ ์ true ์ค์ ํ๋ฉด get ์ดํ ์์ฒ๊ฒฝ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ) hdfs ์ค์ ํ์ผ ์์น์ ์ ๋ก๋ํ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํฉ๋๋ค. ํ๋ก์ธ์ค ์ฐ๊ฒฐํด ์ค ์ํ (๋ ธ๋์ Warn.. 2019. 11. 20. ์ด์ 1 ๋ค์