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.
- Haga clic en y seleccione Configuración.
- Ingrese Big Objects en el cuadro Búsqueda rápida y, a continuación, seleccione Big Objects.
- Cree un Big Object y agregue algunos detalles básicos.
- Agregue campos personalizados. Almacenan los datos en su Big Object.
- 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.
- 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 guion 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 lo 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! Como mencionamos anteriormente, el índice define la clave principal compuesta para un Big Object. Los campos definidos en el índice de un Big Object determinan la identidad y la capacidad de ser consultado. 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.
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, se captura la siguiente información en el Big Object personalizado, Customer_Interaction__b:
- La cantidad de cosas que el jugador compró en In_Game_Purchase__c
- El nivel más alto que alcanzó en Level_Achieved__c
- Cuántas vidas tuvo en Lives_This_Game__c
- Su plataforma en Game_Platform__c
- Su puntuaje en Score_This_Game__c
- El nombre de su cuenta en Account__c
- La fecha de la sesión de juego en Play_Date__c
- El 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 la cuenta de cada jugador es exclusivo, de modo que eligió Account__c como el primer campo del índice. Los campos siguientes son la plataforma de juego del jugador (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: 16
- 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!
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.
Ahora está preparado parar empezar a utilizar su nuevo Big Object personalizado.
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í se encuentra el archivo .csv que utilizamos para cargar en el Big Object Customer_Interaction__b. Un Big Object puede admitir muchos más datos que lo que proporcionamos aquí como un ejemplo.
Date of Play,In-Game Purchase,Level Achieved,Lives Used This Game,Platform,Play Duration,Score This Game,Account 2015-01-01T23:01:01Z,A12569,57,7,PC,25,55736,001R000000302D3 2015-01-03T13:22:01Z,B78945,58,7,PC,35,61209,001R000000302D3 2015-01-04T15:16:01Z,D12156,43,5,iOS,45,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 bo2 = new Customer_Interaction__b(); bo2.Account__c = '001R000000302D3'; bo2.Game_Platform__c = 'PC'; bo2.Play_Date__c = DateTime.newInstance(2018, 2, 5); bo2.In_Game_Purchase__c = 'A12569'; bo2.Level_Achieved__c = '45'; bo2.Lives_This_Game__c = 3; bo2.Score_This_Game__c = '5500'; bo2.Play_Duration__c = 25; // Modify a field in the index bo2.Game_Platform__c = 'Mac'; // Insert the record, creating a new record because the primary key has changed database.insertImmediate(bo2); // Define the record Customer_Interaction__b bo3 = new Customer_Interaction__b(); bo3.Account__c = '001R000000302D3'; bo3.Game_Platform__c = 'PC'; bo3.Play_Date__c = DateTime.newInstance(2018, 2, 5); bo3.In_Game_Purchase__c = 'A12569'; bo3.Level_Achieved__c = '45'; bo3.Lives_This_Game__c = 3; bo3.Score_This_Game__c = '5500'; bo3.Play_Duration__c = 25; // Modify a field not included in the index bo3.Level_Achieved__c = '1'; // Insert the record, which updates the second record because the index is the same database.insertImmediate(bo3);
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.
Recursos
-
Ayuda de Salesforce: Gestionar Big Objects
-
Guía de implementación de Big Objects: Definir e implementar Big Objects personalizados con la API de metadatos
-
Ayuda de Salesforce: Crear campos personalizados
-
Guía de implementación de Big Objects: Rellenar un Big Object personalizado
-
Ayuda de Salesforce: Cargador de datos
-
Sesión TrailheaDX 2017: Big Objects: Aportar Big Data a Lightning Platform