Una columna de un almacén de datos distribuidos es un objeto NoSQL del nivel más bajo en un espacio de claves . Es una tupla (un par clave-valor ) que consta de tres elementos:
- Nombre único: se utiliza para hacer referencia a la columna.
- Valor: el contenido de la columna. Puede tener diferentes tipos, como
AsciiType
,LongType
,TimeUUIDType
,UTF8Type
entre otros. - Marca de tiempo : la marca de tiempo del sistema utilizada para determinar el contenido válido.
Uso
Una columna se utiliza como almacén para el valor y tiene una marca de tiempo que se utiliza para diferenciar el contenido válido de los obsoletos. Según el teorema de CAP , los almacenes de datos distribuidos no pueden garantizar la coherencia , ya que la disponibilidad y la tolerancia de partición son cuestiones más importantes. Por lo tanto, el almacén de datos o el programador de la aplicación usarán la marca de tiempo para averiguar cuáles de los valores almacenados en los nodos de respaldo están actualizados.
Algunos almacenes de datos, como Riak , pueden usar el reloj vectorial más sofisticado en lugar de la marca de tiempo para resolver información obsoleta.
Diferencias de una base de datos relacional
En las bases de datos relacionales , una columna es parte de una tabla relacional que se puede ver en cada fila de la tabla. Este no es el caso de los almacenes de datos distribuidos, donde el concepto de tabla solo existe vagamente. Una columna puede ser parte de una ColumnFamily que se parece a lo sumo a una fila relacional, pero puede aparecer en una fila y no en las otras. Además, el número de columnas puede cambiar de una fila a otra, y las nuevas actualizaciones del modelo del almacén de datos también pueden modificar el número de columna. Por lo tanto, todo el trabajo de mantenerse al día con los cambios depende del programador de la aplicación.
Ejemplos de
A continuación se dan tres definiciones de columnas en notación similar a JSON :
{ calle : { nombre : "calle" , valor : "1234 x calle" , marca de tiempo : 123456789 }, ciudad : { nombre : "ciudad" , valor : "san francisco" , marca de tiempo : 123456789 }, código postal : { nombre : " zip " , valor : " 94107 " , marca de tiempo : 123456789 }, }