「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Apache NiFi - Processor]]

*目次 [#t6df51c0]
#contents

*概要 [#n97a3943]
Apache NiFiのRDBMS系のProcessor

*詳細 [#f01f8b62]

**参照系 [#z1b238a5]
-ExecuteSQL
-QueryDatabaseTable

**更新系 [#e88d7ec2]
-PutSQL
--参照以外の更新系SQLを実行する。
--[[ConvertJSONToSQL>#sff9e16d]]と組合せて利用可能。
-PutSQL~
参照以外の更新系SQLを実行する。

**パラメタライズ [#hcfbb4b4]
パラメタライズするには、

-NiFi Expression Language(EL)
-若しくは、sql.args.N.value, sql.args.N.type

を使用するが、SQL Injection対策には後者が必要。~
だた、後者は難しいので、[[ConvertJSONToSQL>#sff9e16d]]を使用して、属性やSQLを確認すると良い。

**SQL生成 [#sff9e16d]
-ConvertJSONToSQL
--JSONとTable間のアダプタのようなもの。
--ContentにはSQLを設定する。
 DELETE FROM Shippers WHERE ShipperID = ? AND CompanyName = ? AND Phone = ?
--Attributeにはパラメタを設定する。
 {
   "sql.table":"Shippers",
   "sql.args.1.value":"1",
   "sql.args.1.type":"4",
   "sql.args.2.type":"-9",
   "sql.args.2.value":"hoge",
   "sql.args.3.type":"-9",
   "sql.args.3.value":"hogehoge"
 }

**Avro [#ge5df7a5]
レコードの値のデータ・スキーマを定義する。~
[[ExecuteSQL>#z1b238a5]]の結果は、Avro形式で入力される。

-SplitAvro~
-ConvertAvroToJSON~
-ConvertAvroToORC~

-ConvertCSVToAvro~
-ConvertJSONToAvro~

-ExtractAvroMetadata~
-InferAvroSchema~
-ConvertAvroSchema~

**その他 [#wde56309]
-ListDatabaseTables~
-CaptureChangeMySQL~

*参考 [#dcf5b75e]
-Apache NiFiでSQLを投げてみる~
https://qiita.com/grachro/items/2933606bf5c276a87572

-Apache nifi ローカルファイル_to_Database - すだちっこのOrdinary Days~
http://kashigeru.hatenablog.com/entry/2016/12/22/162319

-How to create DBCPConnectionPool in Syncfusion Data Integration Platform | Big Data Platform | Syncfusion~
https://www.syncfusion.com/kb/7678/how-to-create-dbcpconnectionpool-in-syncfusion-data-integration-platform

**Hortonworks [#q9365c03]
-NiFi Processor to Dynamically Create SQL Query From FlowFile or JSon~
https://community.hortonworks.com/questions/110791/nifi-processor-to-dynamically-create-sql-query-fro.html

--NiFi example template to execute SQL from JSON.~
https://gist.github.com/ijokarumawak/6d2bbfe48809e036008153f15113ab80
>&ref(SQLFromJSON.xml);

-Nifi ExecuteSQL prepared statements to prevent SQL Injection?~
https://community.hortonworks.com/questions/138649/nifi-executesql-prepared-statements-to-prevent-sql.html

-Data Inject To Database Through Ni-Fi~
https://community.hortonworks.com/idea/118504/data-inject-to-database-through-ni-fi.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS