訂閱穀歌Pub / Sub
磚連接器提供了一個內置的訂閱穀歌在磚Pub / Sub運行時13.1及以上。這個連接器提供了記錄的用戶隻有一次處理語義。
請注意
Pub / Sub可能發布重複的記錄,可能到達用戶的訂單記錄。你應該寫磚代碼來處理的重複和無序的記錄。
語法的例子
如果你有一個穀歌服務帳戶有足夠特權附加到集群中,您可以使用以下配置的基本語法結構流讀取Pub / Sub。看到穀歌服務帳戶。
瓦爾查詢=火花。readStream。格式(“pubsub”)/ /如果沒有,我們將創建一個Pubsub訂閱id。選項(“subscriptionId”,“mysub”)/ /需要。選項(“topicId”,“fe-demo-prod-dnd”)/ /需要。選項(“projectId”,“fe-prod-dbx”)/ /需要。負載()
你也可以直接通過授權選項,如以下示例:
瓦爾authOptions:地圖(字符串,字符串]=地圖(“clientId”- >clientId,“clientEmail”- >clientEmail,“privateKey”- >privateKey,“privateKeyId”- >privateKeyId)瓦爾查詢=火花。readStream。格式(“pubsub”)/ /如果沒有,我們將創建一個Pubsub訂閱id。選項(“subscriptionId”,“mysub”)/ /需要。選項(“topicId”,“mytopic”)/ /需要。選項(“projectId”,“。”)/ /需要。選項(authOptions)。負載()
更多的配置選項,見為Pub / Sub流讀取配置選項。
配置訪問Pub / Sub
磚建議使用穀歌的服務帳戶(GSA)來管理連接Pub / Sub。
當使用GSA,您不需要提供額外的授權選項直接流。
請注意
gsa不支持在計算配置共享訪問模式。
磚時建議使用秘密提供授權選項。以下選項需要授權連接:
clientEmail
clientId
privateKey
privateKeyId
下表描述了角色配置所需的憑證:
角色 |
必需的或可選的 |
如何使用它 |
---|---|---|
|
要求 |
檢查是否存在訂閱,訂閱 |
|
要求 |
獲取的數據訂閱 |
|
可選 |
允許創建訂閱如果不存在,也可以使用 |
發布/訂閱模式
流的模式匹配從Pub / Sub獲取記錄,如下表所述:
場 |
類型 |
---|---|
|
|
|
|
|
|
|
|
為Pub / Sub流讀取配置選項
下表描述了支持發布/訂閱的選項。所有選項配置作為結構的一部分流閱讀使用.option (“< optionName >”,“<用optionValue >”)
語法。
請注意
一些Pub / Sub配置選項使用的概念獲取而不是micro-batches。這反映了內部實現細節和選擇工作類似於推論其他結構化流連接器,除了記錄獲取,然後處理。
選項 |
默認值 |
描述 |
---|---|---|
|
初始化設置的執行人流 |
並行火花任務獲取記錄的數量從一個訂閱。 |
|
|
如果 |
|
沒有一個 |
批量大小的軟限製在每個處理micro-batch觸發。 |
|
1000年 |
在處理之前記錄的數量來獲取每個任務記錄。 |
|
10秒 |
每個任務的時間獲取之前處理記錄。磚建議使用默認值。 |
增量為Pub / Sub批處理語義
您可以使用Trigger.AvailableNow
消費記錄可用Pub / Sub一批增量來源。
磚記錄時間戳的,當你開始閱讀的Trigger.AvailableNow
設置。記錄由批處理包括所有之前獲取數據和任何新出版的記錄一個時間戳不到記錄流開始時間戳。
看到配置增量的批處理。