El esquema de un índice de búsqueda se modifica de forma dinámica para agregar, actualizar o eliminar columnas. También es posible cambiar su clave de enrutamiento y su método de preclasificación. Esto le permite adaptarse a nuevos requisitos del negocio u optimizar el rendimiento. El proceso consiste en crear un índice canary con el esquema modificado, sincronizar los datos y ejecutar pruebas A/B con ponderación de tráfico. Después, se intercambian los esquemas del índice de origen y del índice canary, y por último se elimina este último.
Funcionamiento
Las tablas de datos de Tablestore no tienen un esquema fijo, pero un índice de búsqueda sí lo tiene. Al crear un índice de búsqueda, debe definir qué columnas se indexan para las consultas. Modificar este esquema suele ser necesario para admitir cambios en el negocio o ajustar el rendimiento. Entre los escenarios más comunes se encuentran:
Agregar columnas de índice: conforme evoluciona el negocio, es posible que necesite consultar columnas adicionales.
Actualizar columnas de índice: puede cambiar propiedades como el tipo de columna, las columnas virtuales, la configuración de matrices, los analizadores o los formatos de fecha.
Eliminar columnas de índice: quite las columnas que ya no sean necesarias para las consultas.
Modificar la clave de enrutamiento: una clave de enrutamiento bien definida reduce la amplificación de lectura y mejora el rendimiento de las consultas.
Modificar la preclasificación: si el orden de clasificación de los datos en una consulta coincide con la configuración de preclasificación del índice, la velocidad de consulta aumenta.
Flujo de trabajo
Dado que su comportamiento es dinámico, no utilice este índice temporal para realizar consultas. Si esta función no satisface sus necesidades, envíe un ticket para ponerse en contacto con nosotros.
La siguiente figura muestra el flujo de trabajo para modificar un esquema de forma dinámica. Todo el proceso es transparente para su aplicación, lo que le permite cambiar el esquema sin modificar el código.
A continuación se describen los pasos principales para modificar el esquema de un índice de búsqueda.
|
Paso |
Acciones |
Descripción |
|
1 |
Crear un índice canary |
Cree un índice canary para el índice de origen y defina su nuevo esquema. Para ello, agregue, modifique o elimine columnas según sea necesario. |
|
2 |
Comprobar el progreso de sincronización del índice |
Antes de continuar, espere hasta que todos los datos existentes e incrementales se sincronicen. El progreso del índice canary debe coincidir con el del índice de origen. |
|
3 |
Establecer ponderaciones para las pruebas A/B |
Las pruebas A/B permiten distribuir el tráfico de consultas entre el índice de origen y el índice canary para validar el nuevo esquema. Redirija gradualmente el tráfico hacia el índice canary hasta que gestione el 100 % del tráfico de consultas. |
|
4 |
Intercambiar los esquemas de los índices |
Una vez que todo el tráfico de consultas se haya dirigido al índice canary, intercambie los esquemas del índice de origen y del índice canary. Después del intercambio, el nombre del índice de origen apunta al nuevo esquema, mientras que el nombre del índice canary apunta al anterior. Todo el tráfico de consultas se dirige entonces al nombre del índice de origen, que ahora utiliza el nuevo esquema. |
|
5 |
Eliminar el índice canary |
Tras intercambiar los esquemas y comprobar que el índice funciona correctamente, espere un periodo de estabilización (por ejemplo, un día) antes de eliminar el índice canary. |
Procedimiento
-
Vaya a la pestaña Indexes.
Inicie sesión en la consola de Tablestore.
En la barra de navegación superior, seleccione una región y un resource group.
En la página Overview, haga clic en el nombre de la instancia o en Manage Instance dentro de la columna Actions.
En la pestaña Instance Details, dentro del área Tables, haga clic en el nombre de la tabla de datos o en Indexes dentro de la columna Actions.
-
Cree un índice canary basado en el índice de origen.
En la pestaña Indexes, busque el índice de búsqueda y haga clic en Change Schema dentro de la columna Actions.
-
En el cuadro de diálogo Reindex, agregue, modifique o elimine campos de índice según sea necesario.
El cuadro de diálogo Reindex contiene los siguientes elementos de configuración:
Información básica del índice: Index Type (por ejemplo, search index), Instance Name, Table Name (por ejemplo,
exampletable), Index Name (por ejemplo,exampletable_index) y Canary Index Name (por ejemplo,exampletable_index_reindex).Tabla de configuración de campos: cada fila le permite establecer las propiedades Field Name, Field Type, Index Parameters, Array, Highlight y Virtual Column. Haga clic en el botón + para agregar un campo o en el icono de eliminación para quitarlo.
En la parte inferior hay disponible un interruptor Advanced Settings. Una vez completada la configuración, haga clic en OK.
-
Para modificar la clave de enrutamiento o el método de preclasificación, habilite Advanced Settings y configure los parámetros descritos en la siguiente tabla.
Parámetro
Descripción
Routing Key:
Especifica campos de enrutamiento personalizados. Puede seleccionar una o más columnas de clave primaria como campos de enrutamiento.
Cuando se escriben datos en el índice, el sistema utiliza el valor de la clave de enrutamiento para determinar la distribución de los datos. Los registros con el mismo valor de clave de enrutamiento se indexan en la misma partición. Para obtener más información, consulte Use routing fields in a search index.
Pre-sorting
Método de clasificación predeterminado para los datos del índice de búsqueda. La preclasificación determina el orden predeterminado en el que se devuelven los resultados de las consultas. Para obtener más información, consulte Index presorting.
-
Para clasificar por clave primaria, seleccione Default.
-
Para clasificar por valores de campo o por una combinación de columnas de clave primaria, seleccione Custom y configure los ajustes.
-
Seleccione un tipo de clasificación, como Primary Key Pre-sorting o Field Pre-sorting, y haga clic en Add.
-
Seleccione el nombre del campo y el orden de clasificación.
Los órdenes de clasificación compatibles son ascendente y descendente.
ImportanteDebe seleccionar un nombre de campo únicamente si elige Field Pre-sorting.
Al utilizar la clasificación personalizada, puede configurar tanto la preclasificación por clave primaria como la preclasificación por campo según sea necesario.
-
-
Haga clic en OK.
En el cuadro de diálogo Index Comparison, revise la comparación de la clave de enrutamiento, la preclasificación y el esquema entre el índice de origen y el índice canary. Una vez que compruebe que la información es correcta, haga clic en Yes.
-
Compruebe la información de sincronización del índice.
-
Haga clic en el icono
situado junto al índice de origen o haga clic en el nombre del índice de origen.Se muestra el índice canary correspondiente al índice de origen.
-
Haga clic en Use Gray Index dentro de la columna Actions del índice canary.
ImportanteEl índice canary pasa por una fase de sincronización completa de datos y una fase de sincronización incremental de datos.
Antes de que finalice la sincronización de datos, si coloca el puntero sobre el botón Use Gray Index de la columna Actions, aparece una información emergente que indica Yes, but the operation may cause security risks. y el cambio está deshabilitado.
Cuando el índice canary alcanza al índice de origen, si coloca el puntero sobre el botón Use Gray Index de la columna Actions, aparece una información emergente que indica Yes. The operation is secure.. En ese momento puede continuar con los siguientes pasos.
-
En el cuadro de diálogo Use Gray Index, consulte la información de sincronización del índice.
La parte superior del cuadro de diálogo muestra Data Status (Synchronizing) y Switchover Status (Safe to switch). La información del índice se presenta en dos columnas: una para el índice de origen y otra para el índice canary. Cada columna contiene los siguientes campos:
Sync Status
Rows
Created At
Last Sync Time
Sync Latency
Data Lifecycle
En la parte inferior, dentro del área Actions, utilice los controles deslizantes para ajustar las ponderaciones de tráfico del source index y del canary index. Luego, haga clic en Set Weight para guardar la configuración o en Switch Index para completar el cambio de índice.
-
-
Una vez finalizada la sincronización, ejecute pruebas A/B mediante la configuración de ponderaciones de tráfico.
Utilice las pruebas A/B para validar el nuevo esquema mediante la distribución del tráfico de consultas entre el índice de origen y el índice canary. Debe dirigir todo el tráfico al índice canary antes de continuar con el siguiente paso.
En la sección Operations del cuadro de diálogo Use Gray Index, arrastre el control deslizante para ajustar las ponderaciones del índice de origen y del índice canary. Después, haga clic en Set Weight.
En el cuadro de diálogo Set Weight, revise los datos de ponderación y la comparación de esquemas.
Una vez que compruebe que la información es correcta, haga clic en Set Weight.
En el cuadro de diálogo de confirmación que aparece, haga clic en Yes.
-
Una vez que todo el tráfico de consultas se haya dirigido al índice canary, intercambie los esquemas del índice de origen y del índice canary.
Después del intercambio, el nombre del índice de origen apunta al nuevo esquema y el nombre del índice canary apunta al anterior. Todo el tráfico de consultas se dirige entonces al nombre del índice de origen, que ahora utiliza el nuevo esquema.
En el cuadro de diálogo Use Gray Index, compruebe que el estado de los datos es In canary release, que el estado del cambio es Yes. The operation is secure., que la ponderación del índice de origen es 0 y que la ponderación del índice canary es 100. A continuación, haga clic en Switch Index.
En la sección Operations del cuadro de diálogo Use Gray Index, haga clic en Switch Index.
En el cuadro de diálogo Switch Index, revise la comparación de la clave de enrutamiento, la preclasificación y el esquema entre el índice de origen y el índice canary. Una vez que compruebe que la información es correcta, haga clic en Confirm Switch.
-
Tras intercambiar los esquemas y comprobar que el índice funciona correctamente, espere un periodo de estabilización (por ejemplo, un día) antes de eliminar el índice canary.
Compruebe que el cuadro de diálogo Use Gray Index muestra el estado de los datos como Released, el estado del cambio como Yes. The operation is secure. y que el área Actions muestra el tráfico del source index en 100 y el del canary index en 0.
En el cuadro de diálogo Use Gray Index, haga clic en Delete Canary Release.
En el cuadro de diálogo Are you sure you have completed the canary release and want to delete the old index?, compruebe que la información del índice canary que se va a eliminar es correcta. Luego, introduzca
I have confirmed that the new index data has been synchronized and has been in canary release for a period of timeen el cuadro de texto.Haga clic en Yes.
Salvaguardas
Para garantizar la seguridad operativa, Tablestore proporciona un mecanismo de reversión y alertas de cambio que minimizan los riesgos durante la modificación del índice.
-
Mecanismo de reversión
Los pasos clave del proceso de modificación dinámica del esquema admiten reversiones.
Si después de crear un índice canary detecta que su esquema es incorrecto, elimínelo y cree uno nuevo.
Durante las pruebas A/B, redirija gradualmente el tráfico hacia el índice canary ajustando las ponderaciones de tráfico. Si surge algún problema, devuelva el tráfico al índice de origen en cualquier momento restableciendo las ponderaciones.
Si tras intercambiar los esquemas detecta algún problema, ejecute Cancel Switchover en cualquier momento para volver al esquema del índice de origen. Las operaciones Switch Index y Cancel Switchover son inversas entre sí.
-
Alertas de cambio
Si dirige el tráfico al índice canary antes de que se sincronice por completo con el índice de origen, las consultas podrían devolver datos obsoletos. Tablestore determina si el cambio es seguro basándose en el estado de sincronización y en la hora de la última sincronización de ambos índices.
Tablestore considera que un cambio es Yes. The operation is secure. cuando se cumplen las siguientes condiciones:
El índice de origen se encuentra en la fase de sincronización completa y el índice canary está en la fase completa o incremental. Es decir, el índice canary ha alcanzado al índice de origen.
Tanto el índice de origen como el índice canary están en la fase de sincronización incremental, y la hora de la última sincronización del índice canary no supera los 60 segundos de retraso respecto a la del índice de origen.
Facturación
No se aplican cargos por construir índices canary ni por escribir datos en ellos. Sí se cobra por el almacenamiento que consumen ambos índices y por las CU de lectura reservadas que se aprovisionen para ellos. Para obtener más información, consulte Billable items of search indexes.
Documentos relacionados
Para consultar nuevos campos o tipos de datos sin cambiar la estructura de la tabla, modifique el esquema del índice de búsqueda o utilice la función de columnas virtuales al crear un índice nuevo. Para obtener más información, consulte Virtual columns.
Tablestore admite diversos tipos de consulta para distintos escenarios, entre ellos MatchAll query, Match query, Match Phrase query, Term query, Terms query, Wildcard query, Prefix query, Suffix query, tokenization-based wildcard query, Range query, Bool query, Nested query, Geo-distance query, Geo-bounding box query, Geo-polygon query, Exists query, Collapse (distinct) y Virtual columns para consultar sus datos.
Para consultar rápidamente datos de distintos tipos en un índice de búsqueda mediante instrucciones SQL, utilice la función de consulta SQL. Para obtener más información, consulte SQL query, Create mapping tables for search indexes, Query data, Full-text search, Array type, Nested type y Virtual columns.
Utilice la función de agregación del índice de búsqueda para analizar datos. Por ejemplo, puede buscar valores mínimos, máximos, sumas y promedios, contar filas, calcular conteos distintos, percentiles, agrupar por valor de campo, rango, ubicación geográfica o condiciones de filtro, crear histogramas o ejecutar consultas anidadas. Para obtener más información, consulte Aggregation.