使用 Pub/Sub 共用串流
您可以透過 BigQuery 分享功能分享 Pub/Sub 主題,在多個內部和外部組織界線之間收錄及發布串流資料資料庫。即時串流資料會透過 BigQuery 分享交換機制和清單分享,讓您能以邏輯方式分類及分組大量的 Pub/Sub 主題,並大規模地提供存取權。
您可以分享串流資料,以便執行下列操作:
- 金融服務:
- 即時分享快速變動的工具價格、報價和訂單
- 偵測洗錢和付款詐欺
- 支援交易風險計算
- 零售和民生消費用品業 (CPG):
- 協助商店即時管理商品目錄
- 提供個人化行銷和客戶支援服務
- 動態調整價格
- 監控社群媒體管道
- 改善實體商店的版面配置
- 醫療照護:
- 運用預測演算法即時監控病患,並分析風險
- 使用可穿戴式醫療裝置監控生命徵象
- 自動取得、建構、儲存及處理來自患者、醫療專業人員和機構管理員的資料
- 電信:
- 查看網路健康情況並預測失敗
- 找出使用者行為模式,以便更精準地找出裝置和天線
必要的角色
共用 Pub/Sub 主題的角色類似於共用 BigQuery 資料集:
- 管理員:管理交換平台和產品資訊的權限、瀏覽權限和會員資格的使用者。使用 Analytics Hub 管理員角色。
- 共用主題的發布者:使用者可建立、管理及授予共用 Pub/Sub 主題清單的存取權。使用 Analytics Hub 發布者或 Analytics Hub 清單管理員角色。這裡所指的發布者是使用者,而非建立並傳送主題訊息的發布者應用程式。
- 共用主題的訂閱者:訂閱共用主題資訊的使用者。訂閱者可以設定主題訊息的傳送方式。使用 Analytics Hub 訂閱者角色或 Analytics Hub 訂閱項目擁有者角色。視訊息資料的傳送方式而定,您可能需要其他角色 (例如Pub/Sub 服務帳戶權限,才能將訊息寫入 BigQuery)。
架構
下圖說明 Pub/Sub 資源的發布者和訂閱者如何與 BigQuery 共用資料:
- 共用主題
- 共用主題是指在「共用」中分享 Pub/Sub 主題的單位。發布端可以建立或使用現有的 Pub/Sub 主題,將訊息資料分發給訂閱端。分享不會複製來源 Pub/Sub 主題。
- 清單
- 發布者將共用主題新增至廣告交易平台時,系統就會建立清單。其中包含共用主題的參照。
- 廣告交易平台
- 交換是指參照共用主題的清單邏輯分組。
- 已連結的 Pub/Sub 訂閱項目
- 當您訂閱含有共用主題的清單時,系統會在訂閱端專案中建立連結的 Pub/Sub 訂閱項目。Pub/Sub 訂閱項目也會在發布端專案中顯示為 Pub/Sub 訂閱項目和分享清單訂閱項目。
- 一個共用主題最多可有 10,000 個 Pub/Sub 訂閱項目。這項限制包括已連結的 Pub/Sub 訂閱項目,以及在「共用」功能外建立的 Pub/Sub 訂閱項目,例如直接透過 Pub/Sub 建立的訂閱項目。
共用主題會在 Data Catalog (已淘汰) 和 Dataplex 通用目錄中建立索引,但您無法針對其資源類型篩選。
系統會擷取用量指標,並在指標資訊主頁中顯示共用 Pub/Sub 主題和訂閱項目的用量指標,但在
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
中則無法使用。如要監控指標,請參閱「在 Cloud Monitoring 中監控 Pub/Sub」。
這些指標包括:
- 發布訊息數
- 發布要求
- 發布處理量 (以位元組為單位)
- 前 5 名訂閱項目
- 擷取的位元組數
- 其他
- 建立資訊清單,將共用主題新增至廣告交易平台
- 更新產品資訊
- 刪除商家資訊
- 分享產品資訊
- 管理商家資訊的訂閱項目
- 從商家資訊中移除訂閱者
前往「分享 (Analytics Hub)」頁面。
畫面上會顯示列出您可以存取的所有資料交換。
按一下要建立產品資訊的資料交換平台名稱。
按一下「建立商店資訊」
。在「Create listing」頁面中,選取「Resource type」下拉式選單中的「Pub/Sub Topic」。
在「Shared topic」(共用主題) 下拉式選單中選取現有的 Pub/Sub 主題,或點選「Create a topic」(建立主題)。
在「商店資訊詳細資料」頁面的「顯示名稱」中,輸入商店資訊的名稱。
輸入下列選填詳細資料:
類別:選取最多兩個最能代表商家資訊的類別。訂閱者可以根據這些類別篩選房源資訊。
資料相依性:發布商用於發布資料的區域。這項資訊可協助訂閱者從相同區域讀取資料,盡量降低或避免 Pub/Sub 網路輸出費用。如要進一步瞭解外流費用,請參閱「資料傳輸費用」。
圖示:商家資訊的圖示。支援 PNG 和 JPEG 檔案格式。圖示的檔案大小不得超過 512 KiB,且尺寸不得超過 512 x 512 像素。
說明:簡短說明商家資訊。訂閱者可以根據說明搜尋房源資訊。
公開可搜尋性:在 BigQuery 共用目錄中啟用公開可搜尋性。您也必須為商家資訊設定權限。依序按一下廣告交易平台的「動作」和「設定權限」。將 Analytics Hub 檢視者角色授予
allUsers
或allAuthenticatedusers
。按一下「允許公開存取」。說明文件 > Markdown:其他資訊,例如任何相關說明文件的連結,以及任何可協助訂閱者使用主題的其他資訊。
在「商店資訊聯絡資料」頁面中輸入下列選填詳細資料:
主要聯絡人:輸入商家的主要聯絡人電子郵件地址或網址。
要求存取權聯絡資訊:請輸入電子郵件地址或資訊收集表單的網址,方便訂閱者與你聯絡。
供應者:展開「供應者」部分,然後在下列欄位中指定詳細資料:
- 供應商名稱:主題供應商的名稱。
- 供應商主要聯絡人:主題供應商的主要聯絡人的電子郵件或網址。
訂閱者可以根據資料供應商篩選清單。
發布商:展開「發布商」部分,然後在下列欄位中指定詳細資料:
- 發布商名稱:建立資訊的發布商名稱。
- 發布者主要聯絡人:主題發布者的電子郵件地址或網址。
查看「商家資訊預覽」頁面。
按一下 [發布]。
PROJECT_ID
:包含您要建立資訊清單的資料交換平台的專案 ID。LOCATION
:資料交換位置。如要進一步瞭解支援位置資訊分享功能的地區,請參閱支援的地區。DATAEXCHANGE_ID
:資料交換 ID。LISTING_ID
:商家資訊 ID。前往「分享 (Analytics Hub)」頁面。
按一下包含商家資訊的資料交換名稱。
按一下要更新的商家資訊。
按一下「編輯商家資訊」
。修改欄位中的值。你可以修改所有值,但不包括商家資訊的共用主題。
如要儲存變更,請按一下「發布」。
PROJECT_ID
:包含您要建立資訊清單的資料交換平台的專案 ID。LOCATION
:資料交換位置。如要進一步瞭解支援位置資訊分享功能的地區,請參閱支援的地區。DATAEXCHANGE_ID
:資料交換 ID。LISTING_ID
:商家資訊 ID。UPDATEMASK
:您要更新的欄位清單。如要更新多個值,請使用以半形逗號分隔的清單。前往「分享 (Analytics Hub)」頁面。
按一下包含商家資訊的資料交換名稱。
按一下要刪除的商家資訊。
按一下
「刪除」。在「Delete listing?」對話方塊中,輸入「delete」來確認刪除。
點選「刪除」。
PROJECT_ID
:包含您要建立資訊清單的資料交換平台的專案 ID。LOCATION
:資料交換位置。如要進一步瞭解支援位置資訊分享功能的地區,請參閱支援的地區。DATAEXCHANGE_ID
:資料交換 ID。LISTING_ID
:商家資訊 ID。前往「分享 (Analytics Hub)」頁面。
按一下包含商家資訊的資料交換名稱。
按一下要新增訂閱者的產品資訊。
按一下
「設定權限」。如要新增主體,請按一下
「新增主體」。在「新增主體」欄位中,根據商家資訊類型加入下列詳細資料:
- 如果是私人商家資訊,請輸入要授予存取權的使用者電子郵件地址。
- 如為公開資訊,請新增
allAuthenticatedUsers
。
在「選取角色」選單中,選取「Analytics Hub」,然後根據商家類型選取下列其中一個角色:
- 如果是商業產品資訊,請選取「Analytics Hub Viewer」角色。這個角色可讓使用者查看商家資訊並要求存取權。
- 如果是私人或非商業用途的公開清單,請選取「Analytics Hub 訂閱者」角色。這個角色可讓使用者訂閱你的商家資訊。
按一下 [儲存]。
前往「分享 (Analytics Hub)」頁面。
按一下資料交換名稱,該名稱包含你要管理訂閱項目的商家資訊。
按一下要列出所有訂閱者的商家資訊。
按一下
「設定權限」。如要新增主體,請按一下
「新增主體」。在「New principals」欄位中,輸入要新增的訂閱者使用者名稱或電子郵件地址。
在「請選取角色」中,依序選取「Analytics Hub」>「Analytics Hub 訂閱者」。
按一下
「Add another role」(新增其他角色)。在「請選擇角色」中,依序選取「Analytics Hub」>「Analytics Hub 訂閱項目擁有者」。
按一下 [儲存]。
PROJECT_ID
:要移除的訂閱項目專案 ID。LOCATION
:訂閱項目的位置。SUBSCRIPTION_ID
:要移除的訂閱項目 ID。如要查看您有權存取的產品資訊清單,請按照「查看產品資訊」中的步驟操作。
瀏覽商家資訊,然後按一下要訂閱的商家資訊。畫面上會顯示包含商家詳細資料的對話方塊。
按一下「訂閱」,開啟「建立訂閱項目」對話方塊。
如果專案未啟用 Analytics Hub API,系統會顯示錯誤訊息,並附上啟用 API 的連結。按一下「啟用 Analytics Hub API」。
在「Create subscription」對話方塊中,指定下列詳細資料:
- 訂閱 ID:指定您要建立的訂閱項目名稱。
- 傳送類型:選取訊息資料的傳送機制。
- 訊息保留時間:設定訊息保留時間。
- 到期時間範圍:設定訂閱項目在閒置一段時間後 (如果有) 會過期的時間。
- 確認期限:設定確認期限。
- 訂閱項目篩選器:設定郵件的篩選器語法。
- 僅傳送一次:啟用僅傳送一次。
- 訊息排序:啟用訊息排序功能,並使用排序鍵。
- 無效信件:啟用無效信件。
- 重試政策:設定重試政策。
如要進一步瞭解 Pub/Sub 訂閱屬性,請參閱「訂閱屬性」。
如要儲存變更,請按一下「建立」。系統會在專案中建立已連結的 Pub/Sub 訂閱項目。
PROJECT_ID
:您要訂閱的商家資訊專案 ID。LOCATION
:你想訂閱的產品資訊所在地點。DATAEXCHANGE_ID
:要訂閱的產品資訊資料交換 ID。LISTING_ID
:您要訂閱的商家資訊 ID。
限制
使用 Pub/Sub 共用串流有下列限制:
啟用 Analytics Hub API
如要啟用 Analytics Hub API,請按照下列步驟操作:
控制台
前往 API 程式庫,為 Google Cloud 專案啟用 Analytics Hub API。
gcloud
執行 gcloud services enable
指令:
gcloud services enable analyticshub.googleapis.com
啟用 Pub/Sub API
前往 API 程式庫,為 Google Cloud 專案啟用 Pub/Sub API。
發布商工作流程
身為 Analytics Hub 發布者,您可以執行下列操作:
其他發布商權限
如要執行發布者工作,您必須在廣告交易平台或廣告項目中具備 Analytics Hub 發布者角色 (roles/analyticshub.publisher
)。如要查看您有權存取的機構中所有專案的所有資料交換,您必須具備 resourcemanager.organizations.get 權限。
此外,您必須具備所要列出的 Pub/Sub 主題的 pubsub.topics.setIamPolicy
權限。如要分享附加結構定義的主題,您必須授予 Analytics Hub 訂閱者 pubsub.schemas.get
權限,讓他們可以存取主題附加的結構定義。這樣一來,Analytics Hub 訂閱者就能正確剖析 Pub/Sub 訂閱項目的訊息。
建立資訊清單 (新增共用主題)
如要將共用主題加入商家資訊,請選取下列任一選項:
主控台
API
請使用 projects.locations.dataExchanges.listings.create
方法。
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
更改下列內容:
在要求主體中提供商店詳細資料。如果要求成功,回應主體會包含商家資訊的詳細資料。
如要進一步瞭解可使用 API 在產品資訊中執行的任務,請參閱 projects.locations.dataExchanges.listings
方法。
更新產品資訊
如要更新商家資訊,請選取下列任一選項:
主控台
API
請使用 projects.locations.dataExchanges.listings.patch
方法。
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
更改下列內容:
在要求主體中指定更新後的值。
如要進一步瞭解可使用 API 在產品資訊中執行的任務,請參閱 projects.locations.dataExchanges.listings
方法。
刪除商家資訊
共用 Pub/Sub 主題的商家資訊,無法在訂閱項目處於有效狀態時刪除。請先撤銷所有有效訂閱項目,再嘗試刪除共用主題資訊清單。清單刪除後即無法復原。如要刪除商家資訊,請選擇下列任一選項:
控制台
API
請使用 projects.locations.dataExchanges.listings.delete
方法。
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
更改下列內容:
如要進一步瞭解可使用 API 在產品資訊中執行的任務,請參閱 projects.locations.dataExchanges.listings
方法。
分享產品資訊
如果您想讓使用者存取私人商家資訊,就必須為該商家資訊的個人或群組設定身分與存取權管理政策。如果是商用商家資訊,資料交換必須是公開。公開資料交換中的產品資訊會顯示在「分享」中,供所有 Google Cloud 使用者 (allAuthenticatedUsers) 存取。如要讓使用者要求商業資訊的存取權,您必須授予使用者 Analytics Hub 檢視者角色。
如要讓使用者查看或訂閱你的商家資訊,請按照下列步驟操作:
詳情請參閱「Analytics Hub 訂閱者和檢視者角色」。
管理訂閱內容
如要讓使用者訂閱共用主題的房源資訊,請為他們授予特定房源資訊的 Analytics Hub 訂閱者 (roles/analyticshub.subscriber
) 和 Analytics Hub 訂閱項目擁有者 (roles/analyticshub.subscriptionOwner
) 角色:
您隨時可以按一下「設定權限」,刪除及更新訂閱者。
撤銷訂閱
如要從「分享」中移除共用主題清單的訂閱項目,請選取下列任一選項:
主控台
API
如要移除訂閱項目,請使用 projects.locations.subscriptions.revoke
方法。
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
更改下列內容:
取消訂閱 BigQuery 共用內容後,訂閱者就不會再收到共用主題的訊息資料。Pub/Sub 訂閱項目已從共用主題中卸離。如果直接從 Pub/Sub 刪除訂閱項目,BigQuery 共用訂閱項目會保留,需要清理。
訂閱者工作流程
身為 Analytics Hub 訂閱者,您可以查看及訂閱清單。訂閱共用主題的清單會在訂閱端專案中建立一個連結的 Pub/Sub 訂閱項目。發布商的專案中會顯示 Pub/Sub 訂閱。
其他訂閱者權限
您必須具備專案、廣告交易平台或商家資訊層級的 Analytics Hub 訂閱者 (roles/analyticshub.subscriber
) 角色,才能執行訂閱者工作。
訂閱共用主題清單
如要訂閱共用主題的產品資訊,請選取下列任一選項:
主控台
API
請使用 projects.locations.dataExchanges.listings.subscribe
方法。
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
更改下列內容:
在要求的本文中,指定您要建立連結的 Pub/Sub 訂閱項目的 Pub/Sub 訂閱項目。如果成功,回應主體會留白。
如要進一步瞭解 Pub/Sub 訂閱,請參閱訂閱總覽。
定價
Pub/Sub 主題發布者透過「共用」功能列出及分享主題,不會產生額外費用。發布商會因寫入共用主題的總位元組數 (發布處理量) 和網路輸出 (如適用) 而遭收費。訂閱者會因從已連結訂閱項目和網路輸出 (如適用) 讀取的位元組總數 (訂閱傳輸量) 而付費。詳情請參閱 Pub/Sub 定價。
VPC Service Controls
如果是來自設有 VPC Service Controls 範圍的專案的共用主題,您可以設定適當的入站和出站規則,授予發布者和訂閱者存取權。