Day20 NiFi - 与 GCP Cloud Storage 对接设定

今天开始会带大家来操作一下 NiFi 如何来与 GCP 相关的服务做整合与设定,首先会先介绍 Google Cloud Storage 的应用。

Setting GCP Controller Service

首先一开始,我们一样要事先拥有 GCP 的 Credentials,这边给各位读者参考连结,照着操作到 GCP 设定,原则上就会取得到 GCP Credential JSON File 罗。

拿到 GCP Credentials File 之後,我们一样 volume 到 NiFi 的 Container 内某个路径,接着到 UI 的 Controller Service 选择 GCPCredentialsControllerService 来做设定,如下图:

我们继续点进去做更细项的设定,如下图:

只要在 Service Account JSON File 指定好你的 GCP Credential JSON File 路径即可。

到这边的操作与 AWS 的 Controller Service 都十分类似,所以相信各位读者们也容易就手。

How to use?

设定好 GCPCredentialsControllerService 之後,接下来我们就可以拉 GCS 相关的 Processors 来做操作了,在 NiFi 当中关於 GCS 的 Processors 包含了如下几种:

ListGCSBucket

列出特定 GCS 某一个 Bucker 且特定路径下的所有 Objects。
这边,我们可以看到如下图的设定:

  • Bucket: 要使用的 Bucket Name。
  • Project ID:对应的 GCP Project ID。
  • GCP Credentials Provider Service:选择刚刚设定好的 GCP Controller Service。
  • Prefix:要列出的 GCS Folder Path。

FetchGCSObject

取得 GCS 的 Objects,相关设定如下图:

假如有一个 file 在 GCS 的路径是 gs://my-bucket/example/data/titanic.csv

  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Name: 要读取的 filename,这边包含 GCS 的 Prefix 和 file 名称,套用例子就是 example/data/titanic.csv
  • Project ID:对应的 GCP Project ID。
  • GCP Credentials Provider Service:选择刚刚设定好的 GCP Controller Service。

这边会发现 BucketName 是使用 Variables 的方式,代表要进这个 Processor 之前,FlowFiles 必须带有 gcs.bucketfilename 这两个 Attributes,这样才能做读取,当然读者们也可以直接设定 Value 到对应的参数。

PutGCSObject

上传 Objects 到指定的 GCS,相关设定如下图:

假如要上传一个 file 且在 GCS 的路径是 gs://my-bucket/example/data/titanic2.csv

  • Project ID:对应的 GCP Project ID。
  • GCP Credentials Provider Service:选择刚刚设定好的 GCP Controller Service。
  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Key: 要上传的 filename,这边包含 GCS 的 Prefix 和 file 名称,套用例子就是 example/data/titanic2.csv

DeleteGCSObject

删除 GCS 的某一个 Objects,相关设定如下图:

假如要删除一个 file 且在 GCS 的路径是 gs://my-bucket/example/data/titanic.csv

  • Project ID:对应的 GCP Project ID。
  • GCP Credentials Provider Service:选择刚刚设定好的 GCP Controller Service。
  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Key: 要删除的 filename,这边包含 GCS 的 Prefix 和 file 名称,套用例子就是 example/data/titanic.csv

我们可以发现,连 Processors 的设定,都与 AWS S3 非常的类似,所以这边只要指定好对应的设定,也能像 S3 的 Processor 轻松做使用。此外,每一个 Processor 之间的设定也很类似,所以只要设定好 Controller Service 以及对应的 Variables 就可以很轻松地对 GCS 的资料或档案来做操作了。

小总结

今天的文章与先前的 AWS S3 一样十分简单,经过我们一系列的 Processor 的设定与操作,我想各位有相对一开始较容易上手了,其实在 NiFi 的设定上就是这样,很多 Processor 都是大同小异的,所以只要掌握好重点与精髓,对於任何一个新的 Datasource ,你也可以很轻松地去对他们做资料的操作。

最後,提醒一下,明天就会来介绍如何与 GCP 的 BigQuery 来做设定与应用,该服务也是目前在企业上最常用的资料服务,所以如果知道如何操作,想必也能获益良多。

Reference


<<:  Day20 React 使用Bootstrap 5快速建立网页

>>:  D25 - 用 Swift 和公开资讯,打造投资理财的 Apps { 三大法人成交比重 资料分析 }

Composition vs 继承( Day13 )

React 具有强大的 composition 模型,我们建议你在 component 之间使用 ...

Rust-流程控制-for

如果想印出1到100的数字,更常的做法是使用for回圈而不是while 例 for i in 1.....

大共享时代系列_010_共享居住

共居後,我们从不认识到认识~~~ 爲什麽要共居? 除了家人、朋友、同学、同事,你有跟其他原本不属於自...

Day26 React Router useLocation

useLocation 函数是当 URL 网址改变时useState()会返回一个新的包含有关目前U...

[day13] 快速建构JSON Server

前面几篇做了几个交易相关的API,而为了快速跳过後端API的建置,前端网页要留存的资料源,就打算偷懒...