Articulo de referencia

Espacio de claves (almacén de datos distribuido)

Un ejemplo de espacio de claves con varias familias de columnas. Un espacio de claves (o keyspace ) en un almacén de datos NoSQL es un objeto que agrupa todas las familias de co...

Un ejemplo de espacio de claves con varias familias de columnas.

Un espacio de claves (o keyspace ) en un almacén de datos NoSQL es un objeto que agrupa todas las familias de columnas de un diseño. [ 1 ] [ 2 ] Es la agrupación más externa de los datos en el almacén de datos. [ 3 ] Se asemeja al concepto de esquema en los sistemas de gestión de bases de datos relacionales . [ 4 ] Generalmente, hay un espacio de claves por aplicación.

Estructura

Un espacio de claves puede contener familias de columnas o supercolumnas . Cada supercolumna contiene una o más familias de columnas, y cada familia de columnas contiene al menos una columna. El espacio de claves es la abstracción más alta en un almacén de datos distribuido . Esto es fundamental para preservar las heurísticas estructurales en la recuperación dinámica de datos. [ 5 ] Múltiples algoritmos de protocolo de retransmisión están integrados dentro del marco simple. [ 6 ]

Comparación con sistemas de bases de datos relacionales

El espacio de claves tiene una importancia similar a la de un esquema en una base de datos. Sin embargo, a diferencia del esquema, no estipula ninguna estructura concreta, como ocurre en el modelo entidad-relación ampliamente utilizado en los modelos de datos relacionales . Por ejemplo, el contenido del espacio de claves puede consistir en familias de columnas, cada una con un número diferente de columnas, o incluso columnas distintas. Así, las familias de columnas que de alguna manera se relacionan con el concepto de fila en las bases de datos relacionales no estipulan ninguna estructura fija. El único punto en común con un esquema es que también contiene una serie de "objetos", que son tablas en los sistemas de gestión de bases de datos relacionales (RDBMS) y, en este caso, familias de columnas o supercolumnas.

Por lo tanto, en los almacenes de datos distribuidos, toda la responsabilidad de gestionar las filas, que incluso pueden cambiar de una actualización a otra del almacén de datos, recae sobre los programadores.

Ejemplos

Como ejemplo, mostramos varias familias de columnas en un espacio de claves. La CompareWithpalabra clave define cómo se realiza la comparación de columnas. En el ejemplo, se ha seleccionado el estándar UTF-8 . Existen otras formas de comparación, como AsciiType, BytesType, LongType, TimeUUIDType.

<Keyspace Name= "DeliciousClone" > <KeysCachedFraction> 0.01 </KeysCachedFraction> <ColumnFamily CompareWith= "UTF8Type" Name= "Users" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Bookmarks" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Tags" /> <ColumnFamily CompareWith= "UTF8Type" Name= "UserTags" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "UserBookmarks" /> </Keyspace>

Otro ejemplo muestra un modelo de datos simplificado similar al de Twitter :

<Keyspace Name= "TwitterClone" > <KeysCachedFraction> 0.01 </KeysCachedFraction> <ColumnFamily CompareWith= "UTF8Type" Name= "Users" /> <ColumnFamily CompareWith= "UTF8Type" Name= "UserAudits" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "UserRelationships" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Usernames" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Statuses" /> <ColumnFamily CompareWith= "UTF8Type" Name= "StatusAudits" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "StatusRelationships" /> </Keyspace>

Referencias

  1. Ronald Mathies (18 de marzo de 2010). "Instalación y uso de Apache Cassandra con Java, parte 2 (modelo de datos): Keyspaces" . Sodeso - Soluciones de desarrollo de software. Archivado del original el 3 de febrero de 2014. Recuperado el 28 de marzo de 2011. Los Keyspaces son bastante simples, desde el punto de vista de un RDBMS, se pueden comparar con el esquema; normalmente hay uno por aplicación. Un Keyspace contiene las ColumnFamilies. Sin embargo, tenga en cuenta que no hay relación entre las ColumnFamilies. Son simplemente contenedores separados.
  2. "Descripción general: Terminología/Abreviaturas: Espacio de claves" . Wiki de Cassandra. Archivado del original el 23/07/2013 . Consultado el 31/03/2011 . [Un espacio de claves] Contiene varias familias de columnas.
  3. Arin Sarkissian (23/08/2010). "¿Qué es una SuperColumna? Una introducción al modelo de datos de Cassandra" . Blog de Arin Sarkissian. Archivado del original el 31/12/2010 . Recuperado el 25/03/2011 . Un Keyspace es la agrupación más externa de tus datos. Todas tus ColumnFamily van dentro de un Keyspace. Tu Keyspace probablemente tendrá el mismo nombre que tu aplicación.
  4. Guy Harrison (23 de agosto de 2010). "Jugando con Cassandra y Oracle" . Terminología en NoSQL. Bits web de Guy Harrison . Recuperado el 25 de marzo de 2011. En Cassandra :
    • Un Keyspace es como un esquema
    • ColumnFamily es aproximadamente como una tabla.
    Puede resultar confuso, ya que cada base de datos NoSQL utiliza términos diferentes entre sí, y todas ellas utilizan términos diferentes a los de los sistemas de gestión de bases de datos relacionales (RDBMS).
  5. Fagin; et al. (2009). "Hashing extensible: un método de acceso rápido para archivos dinámicos". ACM Transactions on Database Systems . 41 (3): 315– 344. 
  6. Fu; et al. "Problemas de seguridad y soluciones de los protocolos de gestión de claves en redes de retransmisión multisalto". IEICE Transactions on Communications . 94 (5): 1295– 1302. 
  • Cassandra – Primeros pasos (Java) Archivado el 13/03/2011 en Wayback Machine