Diccionarios y tablas en KDB/Q: guía práctica de sus tipos de datos nativos

Fuentes: Dictionaries and Tables in KDB/Q: A Practical Overview

KDB/Q incorpora de forma nativa dos estructuras de datos fundamentales, los diccionarios y las tablas, que en lenguajes como Java requieren construcciones alternativas como HashMap o ArrayList. Comprender estas estructuras resulta clave para sacar partido a la velocidad y el rendimiento de KDB/Q en aplicaciones de big data, y esta entrada del blog DefconQ repasa sus conceptos esenciales remitiendo, para un análisis exhaustivo, a los capítulos 5 y 8 del manual «Q for Mortals». Según la referencia de code.kx.com, los diccionarios son del tipo 99h y las tablas del 98h.

Un diccionario es, en su forma más simple, un mapeo entre una lista de claves y otra de valores, que se crea con el operador bang (!). La única restricción al definirlos es que la lista de claves y la de valores tengan la misma longitud; en caso contrario se produce un error de longitud. Los diccionarios son muy flexibles: ni las claves ni los valores necesitan ser homogéneos, aunque una vez creada una lista homogénea, cualquier clave o valor nuevo debe coincidir con el tipo existente. El artículo ilustra estas propiedades con ejemplos en los que se añaden claves de tipos dispares y se demuestra que modificar el tipo de valor provoca un error de tipo.

Con KDB/Q 4.1, KX introdujo una nueva sintaxis para diccionarios que mejora su legibilidad, especialmente útil para crear diccionarios vacíos o de un solo elemento, tareas antes Verbosas. La entrada aborda también la indexación directa mediante corchetes o notación postfija, la búsqueda inversa con el operador find (?) y el comportamiento de claves no únicas. Se explica, además, la analogía entre el mapeo clave-valor de un diccionario y el mapeo índice-valor de una lista, un concepto clave para el desarrollador. Por último, el texto señala que aplicar una función a un diccionario equivale a aplicarla a su lista de valores, anticipando futuras entregas sobre operaciones con diccionarios y tablas.