Utiliser des données Salesforce Data Cloud dans BigQuery

Les utilisateurs de Data Cloud peuvent accéder à leurs données Data Cloud de manière native dans BigQuery. Vous pouvez analyser les données Data Cloud avec BigQuery Omni et effectuer des analyses sur plusieurs clouds avec les données dans Google Cloud. Dans ce document, nous fournissons des instructions pour accéder à vos données Data Cloud, ainsi que plusieurs tâches analytiques que vous pouvez effectuer avec ces données dans BigQuery.

Data Cloud fonctionne avec BigQuery sur la base de l'architecture suivante :

Architecture Data Cloud.

Avant de commencer

Avant d'utiliser les données Data Cloud, vous devez être un utilisateur de Data Cloud. Si VPC Service Controls est activé sur votre projet, vous aurez besoin d'autorisations supplémentaires.

Rôles requis

Les rôles et autorisations suivants sont requis :

  • Abonné Analytics Hub (roles/analyticshub.subscriber)
  • Administrateur BigQuery (roles/bigquery.admin)

Partager des données depuis Data Cloud

Cette documentation explique comment partager des données depuis Data Cloud vers BigQuery – Partages de données BYOL – Intégration sans ETL à BigQuery.

Pour accéder à un ensemble de données Data Cloud dans BigQuery, vous devez d'abord associer l'ensemble de données à BigQuery en procédant comme suit :

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Cliquez sur Salesforce Data Cloud.

    Les ensembles de données Data Cloud s'affichent. Vous pouvez trouver l'ensemble de données par nom en utilisant le modèle de dénomination suivant :

    listing_DATA_SHARE_NAME_TARGET_NAME
    
    Remplacez les éléments suivants :

    • DATA_SHARE_NAME : nom du partage de données dans Data Cloud.
    • TARGET_NAME : nom de la cible BigQuery dans Data Cloud.
  3. Cliquez sur l'ensemble de données que vous souhaitez ajouter à BigQuery.

  4. Cliquez sur Ajouter un ensemble de données au projet.

  5. Spécifiez le nom de l'ensemble de données associé.

Une fois l'ensemble de données associé créé, vous pouvez l'explorer, ainsi que les tables qu'il contient. Toutes les métadonnées des tables sont extraites de manière dynamique à partir de Data Cloud. Tous les objets dans l'ensemble de données sont des vues qui correspondent aux objets Data Cloud. BigQuery accepte trois types d'objets Data Cloud :

  • Objets de lac de données
  • Objets de modèle de données
  • Objets d'insights calculés

Tous ces objets sont représentés sous forme de vues dans BigQuery. Ces vues pointent vers des tables masquées stockées dans Amazon S3.

Exploiter les données Data Cloud

Les exemples suivants utilisent un ensemble de données appelé Northwest Trail Outfitters (NTO) hébergé dans Data Cloud. Cet ensemble de données se compose de trois tables qui représentent les données des ventes en ligne de l'organisation NTO :

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

L'autre ensemble de données utilisé dans ces exemples est constitué de données de point de vente hors connexion. Il couvre les ventes hors ligne et comprend trois tables :

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

Les ensembles de données suivants stockent des objets supplémentaires :

  • aws_data
  • us_data

Exécuter des requêtes ad hoc

Avec BigQuery Omni, vous pouvez exécuter des requêtes ad hoc pour analyser les données Data Cloud via l'ensemble de données abonné. L'exemple suivant montre une requête simple qui interroge la table des clients à partir de Data Cloud.

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

Exécuter des requêtes multicloud

Les requêtes multicloud vous permettent de joindre n'importe quelle table de la région BigQuery Omni et des tables des régions BigQuery. Pour en savoir plus sur les requêtes multicloud, consultez cet article de blog. Dans cet exemple, nous récupérons le total des ventes pour un client nommé 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);

Transfert de données de cloud à cloud via CTAS

Vous pouvez utiliser l'outil CTAS (Create Table As Select) pour déplacer des données depuis les tables Data Cloud de la région BigQuery Omni vers la région 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

La table de destination est une table gérée par BigQuery dans la région US. Cette table peut être jointe à d'autres tables. Cette opération entraîne des coûts de sortie AWS en fonction de la quantité de données transférées.

Une fois les données déplacées, vous n'avez plus à payer de frais de sortie pour les requêtes exécutées dans la table online_orders_march.

Vues matérialisées sur plusieurs clouds

Les vues matérialisées sur plusieurs clouds (CCMV) transfèrent les données d'une région BigQuery Omni vers une région BigQuery non BigQuery Omni de manière incrémentielle. Configurez un nouveau CCMV qui transfère un résumé du total des ventes issues des transactions en ligne et réplique ces données dans la région US.

Vous pouvez accéder aux CCMV depuis Ads Data Hub et les associer à d'autres données Ads Data Hub. Les CCMV agissent comme des tables gérées par BigQuery classiques dans la plupart des cas.

Créer une vue matérialisée locale

Pour créer une vue matérialisée locale, procédez comme suit :

-- 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;

Autoriser la vue matérialisée

Vous devez autoriser les vues matérialisées pour créer un CCMV. Vous pouvez autoriser la vue (aws_data.total_sales) ou l'ensemble de données (aws_data). Pour autoriser la vue matérialisée, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Ouvrez l'ensemble de données source listing_nto_john.

  3. Cliquez sur Partager, puis sur Autoriser les ensembles de données.

  4. Saisissez le nom de l'ensemble de données (dans ce cas, listing_nto_john), puis cliquez sur OK.

Créer une vue matérialisée dupliquée

Créez une vue matérialisée répliquée dans la région US. La vue matérialisée se réplique régulièrement à chaque modification des données sources afin de maintenir l'instance répliquée à jour.

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

Exécuter une requête sur une vue matérialisée répliquée

L'exemple suivant exécute une requête sur une vue matérialisée répliquée :

-- 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

Utiliser des données du cloud de données avec INFORMATION_SCHEMA

Les ensembles de données Cloud Data sont compatibles avec les vues INFORMATION_SCHEMA BigQuery. Les données des vues INFORMATION_SCHEMA sont régulièrement synchronisées à partir de Data Cloud et peuvent être obsolètes. La colonne SYNC_STATUS des vues TABLES et SCHEMATA indique la date et l'heure de la dernière synchronisation, ainsi que les éventuelles erreurs qui empêchent BigQuery de fournir de nouvelles données, ainsi que les étapes nécessaires pour corriger l'erreur.

Les requêtes INFORMATION_SCHEMA ne reflètent pas les ensembles de données créés récemment avant la synchronisation initiale.

Les ensembles de données Data Cloud sont soumis aux mêmes limites que les autres ensembles de données associés. Par exemple, ils ne sont accessibles que dans INFORMATION_SCHEMA pour les requêtes à l'échelle de l'ensemble de données.

Étapes suivantes