Filtros y patrones de consulta

Cada pestaña de tabla lleva un filtro: el estado de predicado que DynoTable convierte en una solicitud a DynamoDB. Aprender cómo se traducen las piezas a query frente a scan es la mayor parte de lo que hace que la aplicación sea rápida y tu factura pequeña.

Esta página cubre el modo de pestaña Visual. Para escribir consultas estilo SQL directamente, cambia a PartiQL; para uniones y agregaciones, abre un Workbench.

La fila de filtro

El modo Visual muestra una sola fila horizontal de píldoras:

[Index] [hashKey = value] [rangeKey op value] [+ filter] | [Clear] [Query/Scan]
  • Píldora de índice — el patrón de consulta a través del que lees.
  • Píldoras de clave — la clave de partición (hash) y, donde exista, la clave de ordenación (range) de ese patrón.
  • Píldoras de filtro — condiciones adicionales que no son de clave (filtros de Scan).
  • El botón de acción muestra Query o Scan según lo que hayas configurado, y se convierte en Load more una vez que los resultados empiezan a llegar.

Asigna un valor y DynoTable se ejecuta automáticamente; al borrar o editar una píldora se vuelve a ejecutar en cuanto el filtro vuelve a ser válido.

La fila de filtro visual: selector de índice, píldoras de clave, un filtro de Scan añadido y el botón de ejecución.
La fila de filtro visual: selector de índice, píldoras de clave, un filtro de Scan añadido y el botón de ejecución.

Patrones de consulta

Un patrón de consulta es el índice a través del que lees:

  • PRIMARY — la propia / de la tabla.
  • Un o con nombre — su propio esquema de claves.

El patrón elegido decide sobre qué claves puedes filtrar. Cambia de patrón desde la píldora de índice; las píldoras de clave se actualizan a la clave de partición y de ordenación de ese patrón.

Query frente a Scan

Esta es la distinción que importa para el coste y la velocidad:

  • Asigna un filtro de y DynoTable emite una dirigida — lee solo la partición que coincide. Barato y rápido.
  • Sin uno, recurre a un , que lee toda la tabla (o índice) página a página. El botón de acción muestra Scan para dejarlo explícito.

Filtros de clave

La píldora de clave de partición toma un valor; la acción pasa a Query en el momento en que se asigna. La píldora de clave de ordenación añade una comparación encima:

  • =, <, <=, >, >= — comparaciones ordenadas (números, y lexicográficas en cadenas).
  • begins_with — coincidencia de prefijo en cadenas o binarios.
  • between — un rango inclusivo; la píldora añade un segundo campo de valor.

Las claves de tipo cadena ofrecen autocompletado: a medida que DynoTable indexa una tabla en segundo plano, sugiere valores reales que ya has visto. Las claves sin sugerencias útiles (UUID aleatorios, por ejemplo) recurren a un campo de texto simple.

Filtros de Scan

La píldora + filter añade una condición que no es de clave — cualquier atributo, no solo claves. Cada filtro es una columna, un operador y un valor:

  • Comparaciones: =, , <, <=, >, >=, between.
  • Pertenencia: in — coincide con cualquier valor de una lista (cadenas o números).
  • Cadena / binario: begins_with, contains.
  • Existencia: exists, not exists.
  • Tipo: type equals / type not equals (contra el código de tipo de DynamoDB — S, N, BOOL, …), más una familia size para los tipos de colección.

Los operadores ofrecidos se adaptan al tipo del atributo — las comparaciones de orden aparecen para los números, begins_with para las cadenas. Los filtros de Scan se aplican después de que la Query o el Scan lean los Items, así que acotan el resultado pero no abaratan un Scan. Usa un filtro de clave para reducir la lectura; usa filtros de Scan para refinar lo que vuelve.

Diseño de tabla única: claves compuestas

Los diseños de tabla única empaquetan varios tipos de entidad en una sola tabla detrás de un prefijo de clave — USER#123, ORDER#456, TENANT#acme. DynoTable los reconoce por sí mismo, sin nada que configurar:

  • Las claves se decodifican en su sitio. Un valor compuesto — un prefijo en mayúsculas unido al resto por #, | o ~ — se renderiza con sus partes etiquetadas en cada cuadrícula: la tabla, los resultados de PartiQL y el Workbench. Los valores ordinarios que simplemente contienen uno de esos caracteres (un color hexadecimal como #FF5733, una lista separada por barras verticales) se dejan exactamente como están.
  • Filtra a una entidad en un solo clic. Haz clic derecho en una fila y elige Filter to USER# — el prefijo se lee directamente de la clave de esa fila. DynoTable aplica un begins_with real sobre la clave como una píldora de filtro ordinaria, que borras de la forma habitual (su , o Clear). Cuando la clave de partición y la de ordenación de una fila llevan ambas prefijo, obtienes una opción para cada una.

No hay diálogo, ni configuración, ni nada guardado — se deriva en vivo de las claves que tienes delante.

El menú contextual de fila sobre una tabla sobrecargada — las facetas Filtrar por USER# y Filtrar por POST# encima de claves decodificadas en segmentos etiquetados.
El menú contextual de fila sobre una tabla sobrecargada — las facetas Filtrar por USER# y Filtrar por POST# encima de claves decodificadas en segmentos etiquetados.

Ordenación y paginación

La píldora de clave de ordenación lleva un conmutador de orden (ascendente / descendente) que se traduce al ScanIndexForward de DynamoDB. Los resultados llegan página a página — Load more obtiene la siguiente página, y cambiar el tamaño de página recarga desde la primera página.

Ejecutar hasta el final

Por defecto, una Query o un Scan se pausa tras unas pocas páginas para que una tabla grande no se cargue toda de golpe — el botón de acción muestra Load more para obtener la siguiente página. Cuando prefieras traer todo de una sola pasada, cambia el modo de ejecución:

  • Haz clic en el chevron junto al botón de acción y elige Run to end. El botón principal se reetiqueta como Scan all / Query all / Run all — incluso cuando estás pausado en el presupuesto de páginas, donde al hacer clic se vacía hasta el final.
  • Haz clic en ese botón reetiquetado y DynoTable sigue obteniendo páginas hasta que se lea toda la tabla (o índice). La elección se recuerda por pestaña durante la sesión; elige Paged para volver atrás. Elegir un modo nunca inicia una ejecución por sí solo — solo reetiqueta el botón, así que tú decides cuándo disparar.

En una tabla grande, armar Ejecutar hasta el final muestra primero un aviso de confirmación con el tamaño aproximado de la tabla y el recuento de Items, para que un Scan completo sea siempre una elección deliberada y no un accidente. Confirma para continuar, o cancela para seguir paginado.

El botón dividido de modo de ejecución — el menú del chevron con Paged y Run to end, junto al botón Load more.
El botón dividido de modo de ejecución — el menú del chevron con Paged y Run to end, junto al botón Load more.

Desde el teclado:

  • ⌘↩ ejecuta la consulta actual — y cuando los resultados están pausados en el presupuesto de páginas, continúa a la siguiente página en lugar de empezar de cero.
  • ⌘⇧↩ siempre ejecuta hasta el final de una sola vez.
  • ⌘. o Esc detiene una ejecución en curso en cualquier momento.

Actualizado