在 BigQuery 中使用 Salesforce Data Cloud 資料

Data Cloud 使用者可在 BigQuery 中原生存取 Data Cloud 資料。您可以使用 BigQuery Omni 分析 Data Cloud 資料,並使用 Google Cloud中的資料執行跨雲端分析。本文件將說明如何存取 Data Cloud 資料,以及如何在 BigQuery 中使用該資料執行多項分析工作。

Data Cloud ���根據下列架構與 BigQuery 搭配運作:

資料雲架構。

事前準備

您必須是 Data Cloud 使用者,才能使用 Data Cloud 資料。如果專案已啟用 VPC Service Controls,您需要額外的權限。

必要的角色

您必須具備下列角色和權限:

  • Analytics Hub 訂閱者 (roles/analyticshub.subscriber)
  • BigQuery 管理員 (roles/bigquery.admin)

分享 Data Cloud 中的資料

本文件說明如何將資料從 Data Cloud 共用至 BigQuery - BYOL 資料共用 - 與 BigQuery 整合,無須 ETL

如要在 BigQuery 中存取 Data Cloud 資料集,您必須先按照下列步驟將資料集連結至 BigQuery:

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 按一下「Salesforce Data Cloud」

    系統會顯示 Data Cloud 資料集。您可以使用下列命名模式,依名稱尋找資料集:

    listing_DATA_SHARE_NAME_TARGET_NAME
    
    取代下列內容:

    • DATA_SHARE_NAME:Data Cloud 中資料共用項目的名稱。
    • TARGET_NAME:Data Cloud 中 BigQuery 目標的名稱。
  3. 按一下要新增至 BigQuery 的資料集。

  4. 按一下「將資料集新增至專案」

  5. 指定連結資料集的名稱。

建立連結資料集後,您可以探索資料集和其中的資料表。系統會動態從 Data Cloud 擷取所有表格的中繼資料。資料集內的所有物件都是對應至 Data Cloud 物件的檢視畫面。BigQuery 支援三種類型的 Data Cloud 物件:

  • 資料湖泊物件 (DLO)
  • 資料模型物件 (DMO)
  • 計算洞察物件 (CIO)

所有這些物件都會在 BigQuery 中以檢視表的形式呈現。這些檢視會���向儲存在 Amazon S3 中的隱藏資料表。

使用 Data Cloud 資料

以下範例會使用名為 Northwest Trail Outfitters (NTO) 的資料集,該資料集由 Data Cloud 代管。這個資料集包含三個資料表,代表 NTO 機構的線上銷售資料:

  • linked_nto_john.nto_customers__dll
  • linked_nto_john.nto_products__dll
  • linked_nto_john.nto_orders__dll

這些範例中使用的其他資料集是離線銷售點資料。這份報表涵蓋離線銷售,並包含下列三個資料表:

  • nto_pos.customers
  • nto_pos.products
  • nto_pos.orders

下列資料集會儲存其他物件:

  • aws_data
  • us_data

執行臨時查詢

您可以使用 BigQuery Omni 執行臨時查詢,透過訂閱的資料集分析 Data Cloud 資料。以下範例顯示從 Data Cloud 查詢 customers 資料表的簡易查詢。

SELECT name__c, age__c
  FROM `listing_nto_john.nto_customers__dll`
  WHERE age > 40
  LIMIT 1000;

執行跨雲端查詢

跨雲查詢可讓您彙整 BigQuery Omni 區域和 BigQuery 區域中的任何資料表。如要進一步瞭解跨雲查詢,請參閱這篇網誌文章。在本例中,我們會擷取名為 john 的客戶的總銷售量。

-- Get combined sales for a customer from both offline and online sales
USING (
  SELECT total_price FROM `listing_nto_john.nto_orders__dll`
       WHERE customer_name = 'john'
  UNION ALL
  SELECT total_price FROM `listing_nto_john.nto_orders__dll`
       WHERE customer_name = 'john'
) a SELECT SUM(total_price);

透過 CTAS 進行跨雲端資料移轉

您可以使用「建立資料表做為選取」(CTAS) 功能,將 BigQuery Omni 區域的 Data Cloud 資料表資料移至 US 區域。

-- Move all the orders for March to the US region
CREATE OR REPLACE TABLE us_data.online_orders_march
  AS SELECT * FROM listing_nto_john.nto_orders__dll
    WHERE EXTRACT(MONTH FROM order_time) = 3

目的地資料表是 US 地區的 BigQuery 代管資料表。這個資料表可與其他資料表彙整。這項作業會根據傳輸的資料量產生 AWS 輸出費用。

資料移至 online_orders_march 後,您就無須為在該資料表中執行的任何查詢支付輸出費用。

跨雲端具體化檢視表

跨雲端具體化檢視 (CCMV) 會逐步將資料從 BigQuery Omni 區域傳送至非 BigQuery Omni BigQuery 區域。設定新的 CCMV,將線上交易的總銷售額摘要資料傳輸,並將這些資料複製到 US 區域。

您可以透過廣告資料中心存取 CCMV,並與其他廣告資料中心資料彙整。在大部分情況下,CCMV 的運作方式與一般 BigQuery 代管資料表相同。

建立本機具體化檢視表

如要建立本機具體化檢視表,請按照下列步驟操作:

-- Create a local materialized view that keeps track of total sales by day

CREATE MATERIALIZED VIEW `aws_data.total_sales`
  OPTIONS (enable_refresh = true, refresh_interval_minutes = 60)
  AS SELECT EXTRACT(DAY FROM order_time) AS date, SUM(order_total) as sales
    FROM `listing_nto_john.nto_orders__dll`
    GROUP BY 1;

授權具體化檢視表

您必須授權給物化檢視表,才能建立 CCMV。您可以授權檢視表 (aws_data.total_sales) 或資料集 (aws_data)。如要授權物化檢視表,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 開啟來源資料集 listing_nto_john

  3. 依序按一下「分享」和「授權資料集」

  4. 輸入資料集名稱 (在本例中為 listing_nto_john),然後按一下「Ok」

建立備用資源具體化檢視表

US 區域中建立新的備援 materialized view。只要來源資料有變更,物件化檢視畫面就會定期複製,以便保持備用資源的最新狀態。

-- Create a replica MV in the us region.
CREATE MATERIALIZED VIEW `us_data.total_sales_replica`
  AS REPLICA OF `aws_data.total_sales`;

對備用資源具體化檢視表執行查詢

以下範例會對備援資料庫的物化檢視表執行查詢:

-- Find total sales for the current month for the dashboard

SELECT EXTRACT(MONTH FROM CURRENT_DATE()) as month, SUM(sales)
  FROM us_data.total_sales_replica
  WHERE month = EXTRACT(MONTH FROM date)
  GROUP BY 1

搭配 INFORMATION_SCHEMA 使用 Data Cloud 資料

Data Cloud 資料集支援 BigQuery INFORMATION_SCHEMA 檢視。INFORMATION_SCHEMA 檢視畫面中的資料會定期從 Data Cloud 同步,因此可能已過���。TABLESSCHEMATA 檢視畫面中的 SYNC_STATUS 欄會顯示上次完成同步處理的時間、任何導致 BigQuery 無法提供最新資料的錯誤,以及修正錯誤所需的任何步驟。

INFORMATION_SCHEMA 查詢不會反映初始同步處理前最近建立的資料集。

Data Cloud 資料集與其他已連結的資料集有相同的限制,例如只能在資料集範圍查詢的 INFORMATION_SCHEMA 中存取。

後續步驟