Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Apache NiFi Introductionデータフロー活用研究会
in OSC 2018 Hiroshima
自己紹介• 小林 明斗(データフロー活用研究会)
• 関東の某SIerで開発プロジェクトへのシステム連携を中心とした技術支援をしています。
• 日本Apache Camelユーザ会のメンバとしても活動しています。
• 今回は、Apache NiFiを紹介します!
What is Apache NiFi ??• Apache NiFi(アパッチ ナイファイ)
• データフローオーケストレーションツール
→フローモデリング+実行基盤
• GUI(WebベースUI)でデータフローを描画
• 描画したデータフローがボタン一つで動く!
• Apache License Version 2.0 • Java製
Apache NiFi’s Hisotry• 2014年に米国家安全保障局(NSA)が開発していた「Niagarafiles」がApache Software FoundationにOSSとして寄贈
• 「Niagarafiles」の名の通り、データが滝のように流れるイメージ
• 2015年には、Apacheのトッププロジェクトに昇格
2015 2016 2017 2018
0系
1系●7月 1.7.1
●6月 1.7.0●4月 1.6.0
●1月 1.5.0
●10月 1.4.0●6月 1.3.0
●5月 1.2.0●2月 1.1.2
●12月 1.1.1●11月 1.1.0
●8月 1.0.0
●7月 0.2.1●9月 0.3.0
●12月 0.4.0●12月 0.4.1
●2月 0.5.0●2月 0.5.1
●3月 0.6.0●4月 0.6.1
●7月 0.7.0●10月 0.7.1
●2月 0.7.2●5月 0.7.3●6月 0.7.4
データフローオーケストレーションって 具体的にどうやるの?
1. プロセッサを接続して、データフローを構築する
例: File To DB(CSVファイルのデータをDBに書き込む)
プロセッサ プロセッサ
データフロー
ファイル入力 SQL発行
プロセッサ プロセッサファイル入力 SQL発行
2. プロセッサに設定をするファイルパスは?
データの取得契機は?(定時実行、一定周期)
隠しファイルは無視する?取得した
ファイルは削除する?
接続先DBのURLは?発行するSQL文は?
JDBCドライバは?DBの認証情報は? (user, password)
データフローオーケストレーションって 具体的にどうやるの?
3. データフローを駆動する
再生風ボタンをクリック!
データフローオーケストレーションって 具体的にどうやるの?
JavascriptGroovy
データ入出力プロセッサが沢山!Oracle AWS
TCP
UDPKafka
MQTT
JMS
File
FTP
MongoDB
HadoopHDFS
TwitterSFTP
ElasticsearchHBase
Splunk
AMQP
GCPAzure
Hive
Kudu
Slack
Couchbase
Big Data
Messaging Queue
PostgreSQLMySQLRDBMS
HTTP(REST)
マルチプロトコル HTTP, FTP, SFTP TCP, UDP
DynamoDB
PythonRuby
Flume
Solr
Cassandra
NoSQL
WebSocket
Web
Log / File / SearchScript
OS Command
Cloud
Apache NiFiを使ってみよう1. Apache NiFi のダウンロード
→https://nifi.apache.org/download.html
Apache NiFiを使ってみよう2. ダウンロードした圧縮ファイル(zip or tar.gz)解凍
3. NiFi起動! Linux, MacOSならこっち
Windowsならこっち* MacOSでの起動例
Apache NiFiを使ってみよう4. NiFiにアクセス → http://localhost:8080/nifi/
Apache NiFiでデータフローを作ってみよう!
Apache NiFi温度
DB
温度センサーから取得したデータをDBに受け渡す サンプルを作ります!
MQTT
Apache NiFiでデータフローを作ってみよう!
Apache NiFi DB
実際にセンサーを使いたいところですが、 今回は環境と時間の都合上…
温度MQTT
温度情報を記した CSVファイル
Apache NiFiでデータフローを作ってみよう!今回は、以下のようなイメージのデータフローを 作ってみます。
Apache NiFi
DBCSVファイルを取得 DBに書き込み
CSV ファイル
Apache NiFiでデータフローを作ってみよう!
Demo
(番外編) Apache NiFiで収集したデータを可視化してみよう!
Apache NiFi温度
BI分析
DBMQTT
(番外編) Apache NiFiで収集したデータを可視化してみよう!
Demo
Apache NiFi ユースケース
Apache NiFiBigData
BI
IoT
写真 位置情報
位置情報 ユーザデータ位置情報
温度
分析
AI
Deep Learning
学習
MQTT
Apache NiFi ユースケース
Apache NiFi
LINE
Rule EngineChatBot
話しかける
SlackMattermost
Chat
回答
AI
Apache NiFi ユースケース
A社
Cloud サービス
Apache NiFi
マルチクラウド
B社
Cloud サービス
Apache NiFi ユースケース
Apache NiFi
DB移行
A DB
B DB
Enjoy! Data Flow!
Apache NiFi https://nifi.apache.org/