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