Empiece a realizar un seguimiento de su progreso
Inicio de Trailhead
Inicio de Trailhead

Definir Big Objects personalizados

Objetivos de aprendizaje

Después de completar esta unidad, podrá:
  • Crear un big object personalizado.
  • Construir un índice personalizado.
  • Implementar un Big Object personalizado.
  • Rellenar un Big Object.

Definición de Big Objects personalizados

Así que echó un vistazo a los casos de uso para Big Objects personalizados o elaboró uno propio. Ahora es el momento de construir uno.

Puede definir un Big Object personalizado en Configuración. También puede definir un Big Object personalizado con la API de metadatos, pero es mucho más sencillo en Configuración. Para comenzar, inicie sesión en su Trailhead Playground y vaya a Configuración. A un alto nivel, así es como define un Big Object.

  1. Haga clic en Engranaje de Configuración y seleccione Configuración.
  2. Ingrese Big Objects en el cuadro Búsqueda rápida y, a continuación, seleccione Big Objects.
  3. Cree un Big Object y agregue algunos detalles básicos.
  4. Agregue campos personalizados. Almacenan los datos en su Big Object.
  5. Agregue un índice. El índice define la clave principal compuesta para un Big Object y se utiliza para consultar y filtrar los datos del Big Object.
  6. Guarde el Big Object y cambie el estado a Implementado.

Ahora realicemos esos pasos de forma más detallada.

Aunque los Big Objects personalizados son similares a objetos estándar y personalizados, algunos parámetros son exclusivos de los Big Objects, y algunos parámetros no se aplican. Los nombres de los objetos deben ser exclusivos entre todos los big objects, los objetos personalizados y los externos de su organización.

Detalles de definición de Big Object

Cuando define un Big Object, primero rellene algunos detalles básicos acerca de él.

Nombre de campo Descripción
Etiqueta Este nombre se utiliza para hacer referencia al objeto en la interfaz de usuario.
Etiqueta en plural El nombre en plural del objeto.
Empieza por un sonido de vocal Si es apropiado para el idioma predeterminado de su organización (idioma inglés), indique si “an” o “a” precede la etiqueta.
Nombre de objeto Nombre de API exclusivo del Big Object En paquetes gestionados, este nombre evita conflictos de nomenclatura con instalaciones de paquetes. Utilice únicamente caracteres alfanuméricos y guiones bajos. El nombre debe comenzar con una letra y no tener espacios. No puede finalizar con un guión bajo ni tener dos guiones bajos consecutivos.

Una vez guardado, el nombre de API de un Big Object se identifica por medio del sufijo “__b” frente al sufijo de los objetos personalizados “__c”.

Descripción Una descripción con sentido le ayuda a recordar las diferencias entre objetos cuando los está visualizando en una lista.
Configuración de ayuda contextual Define la dirección URL que aparece cuando un usuario hace clic en Ayuda para esta página desde el inicio del registro de objetos (descripción general), páginas de detalles y modificación, vistas de lista y listas relacionadas. Esta configuración no afecta al vínculo Ayuda en la parte superior de una página. Ese vínculo siempre abre la ventana Ayuda.
Estado de implementación Cuando crea un Big Object, el estado se establece como En desarrollo. No puede implementar un Big Object hasta que incluya un índice que contiene al menos un campo personalizado. Solo se permiten campos personalizados obligatorios en un índice. Tras crear un índice, verá un segundo estado de Implementado. Una vez esté listo para otorgar acceso a los usuarios, cambie el estado a Implementado.

Campos personalizados de Big Object

Una vez haya definido su Big Object, agregue campos personalizados. Los campos personalizados almacenan los datos exclusivos de su Big Object. También puede crear campos de relaciones personalizados para asociar su Big Object a otro objeto en Salesforce. Agregue campos personalizados a un Big Object del mismo modo que agregaría campos personalizados a cualquier objeto en Salesforce. Los Big Objects admiten estos tipos de campos:

  • Relación de búsqueda
  • Fecha/hora
  • Un email
  • Número
  • Teléfono
  • Texto
  • Área de texto (largo)
  • URL

Para crear un índice para su Big Object, al menos un campo personalizado debe estar marcado como obligatorio.

Definición del índice de Big Objects personalizados

¡Esto es importante! Recuerde, los campos definidos en el índice de un Big Object determinan la identidad y la capacidad de ser consultado del Big Object. Los campos definidos en su índice deberían ser los campos que serán más relevantes para sus consultas, de modo que tendrá que ser previsor y hacer algo de planificación aquí. El orden en el que define los campos es también una gran consideración. Si está utilizando SOQL para consultar su Big Object, solo puede consultar los campos que conforman su índice, en el orden en que los definió. Asigne el campo que utilizará con mayor frecuencia en un filtro de consulta a la primera posición en su índice. También puede utilizar únicamente operadores de comparación específicos, dependiendo de la posición del campo en su consulta. Hablaremos con mayor detalle sobre las consultas en la siguiente unidad.

Tenga en cuenta estas consideraciones cuando defina el índice.

  • Un índice debe incluir al menos un campo personalizado y puede tener hasta un total de cinco campos personalizados.
  • Los campos personalizados incluidos en el índice deben marcarse como obligatorios.
  • Los campos Área de texto largo no pueden estar incluidos en el índice.
  • El número total de caracteres entre todos los campos de texto en un índice no puede superar 100.
  • Una vez haya creado un índice, no puede modificarlo o eliminarlo. Para cambiar el índice, cree otro Big Object con un nuevo índice.

Detalles de índice de Big Object

Define los campos que componen el índice de su Big Object personalizado y determina los campos y el orden de clasificación.

Nombre de campo Descripción
Etiqueta La etiqueta se utiliza para hacer referencia al índice en la interfaz de usuario.
Nombre El nombre de API para el índice.
Campos de índice Establezca la Posición de índice y Dirección de índice para cada campo personalizado incluido en el índice. El orden de los campos aquí determina su orden en el índice. Establezca la Posición de índice como 1 para el parámetro de filtro utilizado con mayor frecuencia. Los valores válidos para Dirección de índice son Ascendente y Descendente.

Ejemplo de big object personalizado

Ahora que conoce qué es necesario para crear un Big Object personalizado, pruebe a crear uno. Imaginemos que desarrolló este increíble juego nuevo, SFORCE-COM: U.F.B.O. Defense, donde los jugadores defienden la Tierra de la amenaza del Big Object volante no identificado. Quiere poder almacenar todas las interacciones que realizan sus jugadores en una única sesión de juego. En cada sesión de juego, captura esta información en su Big Object personalizado, Customer_Interaction__b:

  • El número de cosas que el jugador compró en In_Game_Purchase__c
  • El nivel más alto que alcanzaron en Level_Achieved__c
  • Cuántas vidas tuvieron en Lives_This_Game__c
  • Su plataforma en Game_Platform__c
  • Su puntuaje en Score_This_Game__c
  • Su nombre de cuenta en Account__c
  • Su fecha de sesión de juego en Play_Date__c
  • Su tiempo de juego en Play_Duration__c

Su juego es súper popular, de modo que para cada usuario obtiene varias interacciones cada día, que, multiplicadas por su base de jugador masivo, es un magnífico y sombroso número de registros. Sí... ¡el precio del éxito!

Usted define todos estos campos en el Big Object personalizado. Tras definir los campos, también define los campos que componen el índice. El nombre de cuenta de cada jugador es exclusivo, de modo que eligió Account__c como el primer campo de nuestro índice. Los siguientes campos en su índice son la plataforma de juego del jugador en Game_Platform__c, y luego la fecha de la sesión, Play_Date__c. Este orden específico le permite crear consultas únicamente en cuentas, cuentas y plataformas de juego, o bien cuentas, plataformas de juego y fechas de juego.

Utilice los valores exactos en estos ejemplos para crear un Big Object personalizado con ocho campos personalizados y un índice. Si un campo y un valor no están enumerados en la tabla, ignórelo o déjelo como el valor predeterminado.

Detalles de definición de Big Object

Nombre de campo Valor
Etiqueta Interacción de cliente
Etiqueta en plural Interacciones de cliente
Nombre de objeto Customer_Interaction
Descripción Dejar en blanco
Estado de implementación En desarrollo

Campos personalizados de Big Object

  • Compra dentro del juego
    • Tipo de datos: Texto
    • Etiqueta de campo: Compra dentro del juego
    • Longitud: 16
    • Nombre de campo: In_Game_Purchase
    • Obligatorio: No
  • Nivel alcanzado
    • Tipo de datos: Texto
    • Etiqueta de campo: Nivel alcanzado
    • Longitud: 16
    • Nombre de campo: Level_Achieved
    • Obligatorio: No
  • Vidas gastadas en el juego
    • Tipo de datos: Número
    • Etiqueta de campo: Vidas gastadas en el juego
    • Longitud: 18
    • Número de decimales: 0
    • Nombre de campo: Lives_This_Game
    • Obligatorio: No
  • Plataforma
    • Tipo de datos: Texto
    • Etiqueta de campo: Plataforma
    • Longitud: 16
    • Nombre de campo: Game_Platform
    • Obligatorio: Sí
  • Puntuaje de este juego
    • Tipo de datos: Texto
    • Etiqueta de campo: Puntuaje de este juego
    • Longitud: 16
    • Nombre de campo: Score_This_Game
    • Obligatorio: No
  • Cuenta
    • Tipo de datos: Búsqueda
    • Relacionado con: Cuenta
    • Etiqueta de campo: Cuenta
    • Nombre de campo: Cuenta
    • Obligatorio: Sí
  • Fecha del juego
    • Tipo de datos: Fecha/hora
    • Etiqueta de campo: Fecha del juego
    • Nombre de campo: Play_Date
    • Obligatorio: Sí
  • Duración del juego
    • Tipo de datos: Número
    • Etiqueta de campo: Duración del juego
    • Longitud: 18
    • Número de decimales: 2
    • Nombre de campo: Play_Duration
    • Obligatorio: No

Ahora tiene ocho campos para seguir todas las interacciones de sus jugadores. ¡Bien hecho!

Campos personalizados de Big Object

Detalles de índice de Big Object

Nombre de campo Valores.
Etiqueta Índice de interacciones del cliente
Nombre CustomerInteractionsIndex
Campos de índice

Posición de índice 1: Account__c, Descendente

Posición de índice 2: Game_Platform__c, Ascendente

Posición de índice 3: Play_Date__c, Descendente

Implementación de Big Objects

Ahora que definió su Big Object personalizado, está listo para implementarlo. Haga clic en Modificar en el Big Object y cambie el estado de implementación a Implementado.

Big objects como aparecen en Configuración.

Ahora está preparado parar empezar a utilizar su nuevo Big Object personalizado.

Un big object personalizado en Configuración.

Desde aquí, puede modificar las etiquetas y los nombres de su Big Object personalizado y sus campos, pero no puede modificar o eliminar el índice. Para cambiar el índice, empiece con un nuevo big object. También puede eliminar un big object personalizado desde Configuración. Los big objects eliminados se almacenan durante 15 días. Durante ese tiempo, puede restaurarlo o eliminarlo permanentemente, pero transcurridos esos 15 días, el big object se elimina de forma permanente.

Rellenar Big Objects

Hay dos maneras principales de rellenar un Big Object. Puede utilizar un archivo .csv con Cargador de datos o la API, o hacerlo completamente a través de Apex.

Al utilizar un archivo .csv, la primera fila en su archivo debe incluir las etiquetas de campo utilizadas para asignar los datos de .csv a su Big Object personalizado. Cargue los datos en el Big Object en Cargador de datos o cargue a través de la API masiva o la API de SOAP. Aquí está el archivo .csv que utilizamos para cargar en nuestro big object Customer_Interaction__b. Un Big Object puede admitir muchos más datos que lo que proporcionamos aquí como un ejemplo.
Play Start,In-Game Purchase,Level Achieved,Lives Used,Platform,Play Stop,Score,Account
2015-01-01T23:01:01Z,A12569,57,7,PC,2015-01-02T02:27:01Z,55736,001R000000302D3
2015-01-03T13:22:01Z,B78945,58,7,PC,2015-01-03T15:47:01Z,61209,001R000000302D3
2015-01-04T15:16:01Z,D12156,43,5,iOS,2015-01-04T16:55:01Z,36148,001R000000302D3
Si desea utilizar Apex para rellenar Customer_Interaction__b, utilice el método insertImmediate.
// Define the record
Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = 3;
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
 
// Insert the record, which creates a new record
database.insertImmediate(bo);
// Define the record
Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = '3';
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
 
// Modify a field in the index
bo.Game_Platform__c = 'Mac';
 
// Insert the record, creating a new record because the primary key has changed 
database.insertImmediate(bo);
// Define the record
Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = '3';
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
 
// Modify a field not included in the index
bo.Level_Achieved__c = '1';
 
// Insert the record, which updates the second record because the index is the same 
database.insertImmediate(bo);
Advertencia

Advertencia

Las pruebas de Apex que utilizan llamadas DML no se permiten y fallan. Si escribe únicamente en el Big Object, la prueba inserta datos erróneos en el big object de destino que tendrá que eliminar manualmente. Para contener llamadas DML de prueba al big object de destino, utilice un marco de trabajo simulado con la API de código auxiliar de Apex en su lugar.

Al volver a insertar un registro con el mismo índice pero con datos diferentes da como resultado un comportamiento similar a una operación de inserción y actualización. Si hay un registro con el índice, la inserción sobreescribe los valores del índice con los nuevos datos. La inserción es idempotente, de modo que la inserción de datos existentes no da como resultado duplicados. La reinserción es útil cuando se cargan millones de registros. Si se produce un error, la reinserción vuelve a cargar las cargas fallidas sin datos duplicados. Durante la reinserción, si no hay registros para el índice proporcionado, se inserta un nuevo registro.