Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Indexación en NoSQL

Catalyst NoSQL proporciona la capacidad de crear índices para tablas NoSQL que te permitirán ejecutar consultas alternativas sobre los datos de la tabla, sin hacer uso de las claves primarias. Esto significa que puedes crear y utilizar índices secundarios y buscar elementos de datos por otros atributos además de la clave de partición y la clave de ordenación.

Los índices facilitan la conveniencia y agregan flexibilidad en las operaciones de recuperación de datos, ya que resultan útiles en escenarios que requieren priorizar atributos no convencionales en una tabla. Consultar usando índices acelera el proceso de lectura de datos y promueve la eficiencia. También puedes modificar o eliminar índices en una tabla según tus requisitos sin afectar la tabla principal de ninguna manera.

Arquitectura de los Índices

Los índices de Catalyst NoSQL abarcan toda la tabla y todas las particiones en las que se almacenan los datos de la tabla. Esta funcionalidad de indexación global entre particiones resulta altamente beneficiosa ya que te permite ejecutar consultas a través de todas las claves de partición de una tabla.

Catalyst te permite crear un máximo de 20 índices para una tabla. Puedes configurar claves de partición y claves de ordenación individuales para cada índice que crees. Debido a que la indexación es global, podrás configurar claves de partición y ordenación diferentes de las configuradas en la tabla principal.

Esencialmente, un índice puede considerarse como una copia de la tabla principal creada con diferentes claves de partición y ordenación para diferentes requisitos en la consulta de datos. En términos de arquitectura, cuando se crea un índice para una tabla, se almacena una copia de ella en diferentes nodos de almacenamiento con las mismas reglas de particionamiento aplicables a la tabla principal. Por lo tanto, cuando ejecutas consultas basadas en un índice secundario, aún puedes acceder a todos los atributos y datos de la tabla.

Nota: Catalyst actualizará automáticamente los índices cuando agregues, actualices o elimines datos de su tabla base.

Tipos de Índices

Catalyst proporciona tres formas diferentes de indexar una tabla en NoSQL:

  • Indexar Todos los Atributos: Esto creará un índice de todos los atributos de una tabla. Cuando elijas esta opción, Catalyst esencialmente replicará todos los atributos de la tabla y los almacenará según la clave de partición que configures para el índice.

  • Indexar Solo Claves: Esto indexará solo los atributos de clave de partición, clave de ordenación y las claves de ordenación adicionales, si las hay, en una tabla. Estos atributos de clave se almacenan según la clave de partición que configures para el índice.

  • Indexar Atributos Específicos: Esto indexará atributos específicos de una tabla que selecciones. Los atributos seleccionados se replican y almacenan según la clave de partición que configures para el índice.

Cuando ejecutas una consulta basada en un índice, los atributos de clave de partición y clave de ordenación de la tabla y del índice se devolverán junto con otros atributos según el tipo que hayas configurado.

Entendamos mejor la indexación con un ejemplo. La tabla Menu analizada en las secciones anteriores se actualiza y se muestra a continuación.

Representación de Tabla de Ejemplo

Nombre de la tabla- Menu

copy
{
 "item": {
	"Category": {
 	"S": "Pizza"
  	},
 "DishName": {
 	"S": "Vegan"
  	},
 "Calories": {
 	"N": 350
  	},
 "PreparationTime": {
 	"N": 20
  	},
"DiscountPercentage": {
 	"N": 12
 	},
 "KeyIngredients": {
 	"L": [
 		{
 	"S": "Pizza Base"
 	},
 	{
 		"S": "Pizza Sauce"
 	},
 	{
 		"S": "Olives"
 	},
 	{
 		"S": "Bell Peppers"
 	},
 	{
 		"S": "Corn"
 	},
 	{
 		"S": "Onions"
 	}
 		]
 	}
	},
	"item": {
  "Category": {
 	"S": "Pizza"
  	},
 "DishName": {
 	"S": "Chicken Overload"
  	},
"Cost": {
 "N": 25
 },
"DiscountPercentage": {
 "N": 15
 },
 "Calories": {
 	"N": 450
  	},
 "PreparationTime": {
 	"N": 30
  	}
	},
	"item": {
 "Category": {
 	"S": "Sandwich"
  	},
 "DishName": {
 	"S": "Vegan"
  	},
 "Calories": {
 	"N": 300
  	},
	"PreparationTime": {
 	"N": 20
  	},
  "Cost": {
 	"N": 20
 	},
"DiscountPercentage": {
 	"N": 10
 	}
}
}

Nota: La tabla presentada aquí es una representación del formato JSON personalizado de Catalyst. Los formatos para construir datos en cada SDK del lado del servidor en este formato JSON varían. Para conocer la sintaxis general del formato JSON personalizado de Catalyst presente en esta tabla, así como los tipos de datos admitidos y sus notaciones, consulta esta sección.

Supongamos que creas un índice, Pricing, para esta tabla con las siguientes configuraciones:

  • Clave de Partición: Cost
  • Clave de Ordenación: DiscountPercentage
  • Tipo de Índice: Atributos Específicos (Calories y PreparationTime)

A continuación se muestra una representación del índice creado.

Representación de Índice de Ejemplo

Nombre del índice- Pricing

copy
{
"item": {
	"Cost": {
 	"N": 25
 	},
	"DiscountPercentage": {
 	"N": 15
 	},
"Category": {
 	"S": "Pizza"
 	},
"DishName": {
 	"S": "Chicken Overload"
 	}
"Calories": {
 "N": 450
 },
 "PreparationTime": {
 "N": 30
 }
},

“item”: { “Cost”: { “N”: 20 }, “DiscountPercentage”: { “N”: 10 }, “Category”: { “N”: “Sandwich” }, “DishName”: { “N”: “Vegan” }, “Calories”: { “N”: 300 }, “PreparationTime”: { “N”: 20 } } }

Nota: Los elementos de datos que no contienen la clave de partición de un índice se omiten de la indexación. En este ejemplo, el elemento identificado por "Pizza" y "Vegan" de la tabla principal no se indexa porque no incluye el valor para la clave de partición del índice, Cost.

Última actualización 2026-03-20 21:51:56 +0530 IST