iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
AI & Data

Apache NiFi - 讓你輕鬆設計 Data Pipeline系列 第 19

Day19 NiFi - 與 AWS SNS & AWS SQS 對接設定

今天要來介紹如何從 NiFi 將 FlowFiles 送到 SNS 和 SQS,一樣就有原生的 Processor 就可做操作了,所以也不會到非常複雜。

SNS & SQS

一樣在操作前,仍先來簡單介紹一下這兩個服務,若有不熟悉的讀者可看一下我如下整理好的表格:

AWS SNS AWS SQS
Persistence No Yes, 預設保留 14 天
Direction Push-Based。Consumer 必須持續監聽,若 Consumer 服務中斷則會導致資料 loss Pull-Based。Consumer 若服務中斷且重新啟動時,仍可取得原本尚未處理的資料

我們都能想像成兩個服務都是類似一個 Queue 的概念,只是其中 SNS 中間並不會保留資料與訊息,所以若接受的服務壞掉了,則資料或訊息就會不見了; 反之,SQS 很明確就是一個 Queue,會保留資料14天,若 Consumer 服務壞掉時,後續啟動仍可以取得近期14天內的資料。

How to use?

SQS

在 Nifi 這邊有三種關於 SQS 的 Processor,分別是 GetSQSPutSQSDeleteSQS,這些的設定都差不多,所以我們可看到如下要注意的設定:

  • Queue URL
    填入 AWS SQS url,可以在 AWS SQS Console 上取得,直接複製貼過來即可。
  • AWS Credentials Provider service
    一樣指定好原先建立的 AWS Controller Service。
  • Region
    設定好對應的 region。
  • Batch Size
    該參數代表一次要拉多少筆 Record,預設為 10 筆。

SNS

NiFi 對於 SNS 的 Processor 目前只有 PutSNS 可以做使用,來讓我們可以將 FlowFile 傳送到 SNS 對應的 topic 下:

  • Amazone Resource Name
    一樣可以到 AWS SNS 的 topic Console 取得 ARN,直接複製貼過來即可。
  • ARN Type
    預設為 Topic ARN,來讓我們可將 FlowFile 指定到上一個設定的 SNS topic。
  • Region
    設定好對應的 region。
  • AWS Credentials Provider service
    一樣指定好原先建立的 AWS Controller Service。

如上述設定完之後,就可以輕鬆與 SNS 和 SQS 做整合了。

小總結

今天這篇的篇幅相對比較簡單,一方面是目前 NiFi 所支援的 Processor 就前面所列出這些,而大致上的設定都與前面的 AWS 服務相同,只有一兩個參數要特別留意。

所以讀者們應該會發現,只要我建立好 AWS Controller Service 之後,剩下的都是個別服務的調整,甚至有些可以在 AWS Console 貼過來即可,或是設定成 Parameters 也可以。所以整體在對 AWS 服務的操作都十分簡單,接下來就會帶讀者們操作 GCP 的服務了。

Reference


上一篇
Day18 NiFi - 與 AWS Athena & AWS Redshift 對接設定
下一篇
Day20 NiFi - 與 GCP Cloud Storage 對接設定
系列文
Apache NiFi - 讓你輕鬆設計 Data Pipeline30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言