Trabajar con datos de Salesforce Data Cloud en BigQuery

Los usuarios de Data Cloud pueden acceder a sus datos de Data Cloud de forma nativa en BigQuery. Puedes analizar datos de Data Cloud con BigQuery Omni y realizar analíticas entre nubes con los datos de Google Cloud. En este documento, se proporcionan instrucciones para acceder a los datos de Data Cloud y se describen varias tareas analíticas que puede realizar con esos datos en BigQuery.

Data Cloud funciona con BigQuery según la siguiente arquitectura:

Arquitectura de Data Cloud.

Antes de empezar

Para trabajar con datos de Data Cloud, debes ser usuario de Data Cloud. Si tienes habilitado Controles de Servicio de VPC en tu proyecto, necesitarás permisos adicionales.

Roles obligatorios

Se necesitan los siguientes roles y permisos:

  • Suscriptor de Analytics Hub (roles/analyticshub.subscriber)
  • Administrador de BigQuery (roles/bigquery.admin)

Compartir datos de Data Cloud

En esta documentación se explica cómo compartir datos de Data Cloud con BigQuery mediante la función Compartir datos con tu propia licencia: integración sin ETL con BigQuery.

Para acceder a un conjunto de datos de Data Cloud en BigQuery, primero debe vincularlo a BigQuery siguiendo estos pasos:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. Haga clic en Salesforce Data Cloud.

    Se muestran los conjuntos de datos de Data Cloud. Puedes encontrar el conjunto de datos por su nombre con el siguiente patrón:

    listing_DATA_SHARE_NAME_TARGET_NAME
    
    Sustituye lo siguiente:

    • DATA_SHARE_NAME: nombre del recurso compartido de datos en Data Cloud.
    • TARGET_NAME: el nombre del destino de BigQuery en Data Cloud.
  3. Haga clic en el conjunto de datos que quiera añadir a BigQuery.

  4. Haz clic en Añadir conjunto de datos al proyecto.

  5. Especifica el nombre del conjunto de datos vinculado.

Una vez que se haya creado el conjunto de datos vinculado, podrá explorar el conjunto de datos y las tablas que contiene. Todos los metadatos de las tablas se obtienen de forma dinámica de Data Cloud. Todos los objetos del conjunto de datos son vistas que se asignan a los objetos de Data Cloud. BigQuery admite tres tipos de objetos de Data Cloud:

  • Objetos de lago de datos (DLO)
  • Objetos de modelo de datos (DMO)
  • Objetos de estadísticas calculadas (CIO)

Todos estos objetos se representan como vistas en BigQuery. Estas vistas apuntan a tablas ocultas que se almacenan en Amazon S3.

Trabajar con datos de Data Cloud

En los ejemplos siguientes se usa un conjunto de datos llamado Northwest Trail Outfitters (NTO) que está alojado en Data Cloud. Este conjunto de datos consta de tres tablas que representan los datos de ventas online de la organización NTO:

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

El otro conjunto de datos que se usa en estos ejemplos son datos de puntos de venta offline. Esto incluye las ventas offline y consta de tres tablas:

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

Los siguientes conjuntos de datos almacenan objetos adicionales:

  • aws_data
  • us_data

Ejecutar consultas ad hoc

Con BigQuery Omni, puedes ejecutar consultas ad hoc para analizar los datos de Data Cloud a través del conjunto de datos suscrito. En el siguiente ejemplo se muestra una consulta sencilla que consulta la tabla de clientes de Data Cloud.

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

Ejecutar consultas entre nubes

Las consultas entre nubes te permiten combinar cualquiera de las tablas de la región de BigQuery Omni con las tablas de las regiones de BigQuery. Para obtener más información sobre las consultas entre nubes, consulta esta entrada de blog. En este ejemplo, obtenemos las ventas totales de un cliente llamado 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);

Transferencia de datos entre nubes mediante CTAS

Puedes usar la instrucción Create Table As Select (CTAS) para mover datos de tablas de Data Cloud en la región de BigQuery Omni a la región 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 tabla de destino es una tabla gestionada de BigQuery en la región US. Esta tabla se puede combinar con otras tablas. Esta operación conlleva costes de salida de AWS en función de la cantidad de datos transferidos.

Una vez que se hayan movido los datos, ya no tendrás que pagar tarifas de salida por las consultas que se ejecuten en la tabla online_orders_march.

Vistas materializadas entre nubes

Las vistas materializadas entre nubes (CCMV) transfieren datos de una región de BigQuery Omni a una región de BigQuery que no es de BigQuery Omni de forma incremental. Configura un nuevo CCMV que transfiera un resumen de las ventas totales de las transacciones online y replique esos datos en la región US.

Puedes acceder a las VCCMs desde el Centro de Datos de Anuncios y combinarlas con otros datos del Centro de Datos de Anuncios. Las Vistas Materializadas de Creación Continua se comportan como las tablas gestionadas de BigQuery normales en la mayoría de los casos.

Crear una vista materializada local

Para crear una vista materializada local, sigue estos pasos:

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

Autorizar la vista materializada

Debes autorizar las vistas materializadas para crear una vista materializada de creación de costes. Puedes autorizar la vista (aws_data.total_sales) o el conjunto de datos (aws_data). Para autorizar la vista materializada, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. Abre el conjunto de datos de origen listing_nto_john.

  3. Haz clic en Compartir y, a continuación, en Autorizar conjuntos de datos.

  4. Introduce el nombre del conjunto de datos (en este caso, listing_nto_john) y haz clic en Aceptar.

Crear una vista materializada de réplica

Crea una vista materializada de réplica en la región US. La vista materializada se replica periódicamente cada vez que se produce un cambio en los datos de origen para mantener la réplica actualizada.

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

Ejecutar una consulta en una vista materializada de réplica

En el siguiente ejemplo se ejecuta una consulta en una vista materializada de réplica:

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

Usar datos de Data Cloud con INFORMATION_SCHEMA

Los conjuntos de datos de Data Cloud admiten INFORMATION_SCHEMAvistas de BigQuery. Los datos de las vistas de INFORMATION_SCHEMA se sincronizan periódicamente desde Data Cloud y pueden estar obsoletos. La columna SYNC_STATUS de las vistas TABLES y SCHEMATA muestra la hora de la última sincronización completada, los errores que impiden que BigQuery proporcione datos actualizados y los pasos necesarios para corregir el error.

Las consultas INFORMATION_SCHEMA no reflejan los conjuntos de datos que se hayan creado recientemente antes de la sincronización inicial.

Los conjuntos de datos de Data Cloud están sujetos a las mismas limitaciones que otros conjuntos de datos vinculados, como solo poder acceder a ellos en INFORMATION_SCHEMA en consultas con ámbito de conjunto de datos.

Siguientes pasos