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.
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
{
"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
}
}
}
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
{
"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
}
}
}
Última actualización 2026-03-20 21:51:56 +0530 IST
Yes
No
Send your feedback to us