Google Cloud Dataflow は、 ETL などのデータ処理を行い、GCP のマネージドサービス間のデータのフローを構成するサービスです。今回は、NiFi で生成したデータを、Google Cloud Storage (GCS) に書き込むフローを試してみました。
- GCE 上にインスタンスを作成
マシンタイプ: n1-standard-4
HTTP/HTTPS トラフィックを許可する
ネットワークタグ: nifi
- Java, NiFi のインストール、起動
作成した インスタンス に ssh 接続し、下記の要領でインストール、起動します
sudo apt-get update
sudo apt-get -y install openjdk-8-jdk
sudo sh -c "echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> /etc/profile.d/jdk.sh"
sudo sh -c "echo 'export PATH=\$JAVA_HOME/bin:\$PATH' >> /etc/profile.d/jdk.sh"
source /etc/profile.d/jdk.sh
wget https://archive.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz
tar zxvf nifi-1.4.0-bin.tar.gz
cd nifi-1.4.0/bin
./nifi.sh start
-
フローの作成
NiFi では下記のように Processor と呼ばれる箱を組み合わせてフローを定義していくが、今回は、 GenerateFlowFile と、 PutOCSObject を使用してみます。
-
PutOCSObject をダブルクリックし、 GCS に データを書き込む為に、下記を設定を変更する
GCP Credentials Provider Service :
Project ID : <GCP のプロジェクトID>
Bucket : <GCS のバケット>
-
GCP Credentials Provider Service の設定
PutOCSObject Processor をダブルクリックし、GCP Credentials Provider Service の右に矢印をクリックして、歯車マークをクリック
-
Properties タブをクリックし、Service Account JSON に、作成したキー (JSON 形式) をペースト
-
PutOCSObject Processor をダブルクリックし、GCP Credentials Provider Service の右に矢印をクリックして、雷マークをクリックし、Enable 状態にします
Apache NiFi には、GCP のマネージドサービス用の Processor がまだまだ少ないので、(というか、GCS関連しかない)この辺りが充実されれば、色々展開できると思われます。
少し、はしょって書いているので、不明な点があれば、 @kkitase まで。
以上