`

Cassandra数据模型---理解Columns

阅读更多

Columns

 

column是cassandra数据模型中最小的数据单元,基本结构包含了 name, value, timestamp 我们来看以下的数据结构:

 

Contact: {      
    ian: {      
        name: "Ian Wu" ,    
        phone: "3939889",     
        birthday: "1983/01/01",     
        email: "ianwu@example.com"     
    }      
    john: {      
        name: "John Li" ,   
        phone: "4499888",     
        birthday: "1984/02/02",     
        email: "johnli@example.com",     
        age: "23",   
        gender: "male",
    } 
} 

 从上面的数据中我们可以清楚的看出包含了ian和john的各自信息,里面的name、phone等都是Contact的column,我们拿name:"Ian Wu"这个column来看,它是一个标准的column,他的结构应该是这样的

 

{
    name: "name",
    value: "Ian Wu",
    timestamp: 123456789
}

 

Cassandra里还有另一种column那就是Super Columns,Super Column结构包含了name与value,同時Super Column內的value是column的集合,以下是一个简单的super column数据:

Address: {      
    ian: {      
             work: {
                        street: "abc rd.", 
                        city: "Taipei County", 
                        zip: "251"
             },    
             home: { 
                       street: "def rd.",
                       city: "Taipei City",
                       zip: "108" 
            }        
    }      
    john: {      
               work: {
                    street: "abc rd.", 
                    city: "Taipei County", 
                    zip: "251"
               },    
               home: { 
                    street: "def rd.",
                    city: "Taipei City",
                    zip: "108" 
              }
    } 
} 

 

从上面的数据可以看出名为Address的columns family中存放了ian和john的地址信息,地址信息分为work与home两类。

work: {
           street: "abc rd.", 
           city: "Taipei County", 
           zip: "251"
}

以上面的数据为例,它的数据结构应表示为:

{  
    name: "work",
    value: {
        street: {
             name: "street", 
             value: "abc rd.",
             timestamp: 123456789
        },
        city: {
             name: "city",
             value: "Taipei County",
             timestamp: 123456789
        },
        zip: {
             name: "zip",
             value: "251",
             timestamp: 123456789
        }
    }
}

 这个 super column 记录了work的地址数据,同时zip, city, street 分別再以column來表示,形成一組 column set,有一点需要注意的是super column 沒有时间戳。

1
1
分享到:
评论

相关推荐

    apache-cassandra-2.2.16-bin.tar.gz

    Apache Cassandra 是一个高度可扩展的、分布式的NoSQL数据库系统,设计用于处理大规模的数据分布于多个数据中心,...同时,为了更好地理解和使用Cassandra,建议学习其设计理念、数据模型以及如何调整和优化集群性能。

    Apache-Cassandra-Spring-Framework-Example:这是有关如何将Apache Cassandra与Spring数据连接的简单示例

    1. **Spring Data Cassandra**: Spring Data Cassandra 提供了一种抽象层,使得开发者可以使用Java或JPA风格的API来操作Cassandra数据。它包含CassandraTemplate,一个用于执行Cassandra查询的工具类,以及...

    Cassandra分布式模型与源代码分析

    Cassandra的数据模型基于宽行表,每个键值对由主键(Partition Key)和列(Columns)组成。列可以进一步分为子列(Column Families),形成复合索引。 - **主键**:决定数据的存储位置,由分区键和集群键组成,决定...

    cassandra学习资料收集

    CQL是面向用户的SQL-like语法,简化了对Cassandra数据的操作,包括创建表、插入、更新和查询数据。 4. **Cassandra的读写操作**: - 读路径:基于Gossip协议,客户端会从最近的节点开始读取,然后根据一致性级别...

    cassandra cql3

    以上是 Cassandra CQL3 的核心知识点概览,涵盖了数据模型的设计、CQL 的基本使用、数据的插入和更新、查询操作以及表和索引的管理等方面。掌握这些内容对于有效利用 Cassandra 来构建高性能的应用程序至关重要。

    阿里云cassandra技术架构及最佳实践-陈江.pdf

    表格包含主键和列簇(Clustering Columns),支持灵活的数据模型设计。 - **CQL(Cassandra Query Language)**:类似SQL,提供DDL(数据定义语言)和DML(数据操纵语言)操作,如INSERT、UPDATE和DELETE,以及通过...

    02-使用Apache-Cassandra进行数据建模:02-使用Apache-Cassandra进行数据建模

    学习CQL是理解和操作Cassandra数据模型的重要步骤。 7. 索引: - 虽然Cassandra不是为复杂查询而设计的,但可以通过创建索引来改善某些查询性能。然而,由于索引对写操作的影响,应谨慎使用。 8. 反射模式...

    cassandra 插入superColumn

    总结,"Cassandra插入SuperColumn"涉及对Cassandra数据模型的理解,特别是SuperColumn家族和其子列的结构。在实际操作中,我们需要掌握CQL语法来插入和查询数据,并理解Cassandra的分布式特性和管理工具,以便高效地...

    JAVA操作cassandra数据库

    Cassandra的数据模型基于列族(Column Family),在Java中,我们通过创建`TableMetadata`来定义列族: ```java TableMetadata tableMeta = cluster.getMetadata().getKeyspace("keyspace_name").getTable("table_...

    cassandra入门demo

    **Cassandra 入门指南** ...随着对Cassandra的理解加深,你可以探索更多高级特性,如分布式数据模型、分区策略、复制策略、索引和触发器等。Cassandra是一个强大且灵活的数据库解决方案,尤其适合处理海量分布式数据。

    nosql-apache-cassandra:Apache Cassandra中的数据建模

    通过理解并熟练运用以上知识点,你可以构建出适应Cassandra分布式特性的高效数据模型,从而充分发挥其在大规模数据处理中的优势。在实际应用中,不断迭代和优化数据模型是必要的,以适应业务需求的变化。在Jupyter ...

    Cassandra PHP操作类

    Cassandra采用了列族(Column Family)的数据模型,类似于宽表,可以存储非结构化或半结构化的数据。每个列族由多个行(Row)组成,每一行包含多列(Column),并且列可以根据需要动态添加。此外,Cassandra强调数据...

    真是累啊

    文件名“cassandra数据模型.doc”表明主要内容可能与Cassandra数据库的数据模型相关。Cassandra是一款分布式NoSQL数据库系统,广泛用于处理大规模数据分布式存储。它的数据模型设计对于理解和有效利用Cassandra至关...

    非关系型数据库—Cassandra

    Cassandra的数据模型基于宽列(Wide Column)存储,类似于Google的Bigtable。每个表(Column Family)由多个行(Row)组成,每行包含多个列(Column),列族内可以有无限数量的列。列族可以进一步划分为超级列...

    data-modeling-apache-cassandra:在Apache Cassandra中创建NoSQL数据库并根据事先提供的查询测试其工作情况

    Apache Cassandra 是一个分布式、高度可扩展的...通过这个项目,你可以深入理解Cassandra的数据模型和查询机制,以及如何根据实际需求调整和优化模型。对于数据工程和NoSQL数据库的实践者来说,这是一项宝贵的技能。

    Cassandra Java Client.zip

    7. **Data Modeling**:在Cassandra中,数据建模通常是围绕宽列和时间序列数据进行的,需要理解主键(Partition Key和Clustering Columns)的概念以及如何设计适合查询模式的表结构。 8. **Replication and ...

    vtah-cassandra:Viseo技术一个小时-Cassandra

    2. **数据模型**:学习Cassandra的数据模型,如键空间(Keyspace)、表(Table)、分区键(Partition Key)和Clustering Columns。 3. **一致性级别**:掌握不同的一致性级别(如QUORUM、LOCAL_QUORUM等)及其应用...

    cassandra-qayl:Cassandra数据库的数据库客户端,可以像查询一样快速运行SQL或执行

    在使用Cassandra Qayl时,开发人员需要了解Cassandra的基本概念,例如Keyspace(键空间)、Table(表)、Partition Key(分区键)和Clustering Columns(聚簇列)等,以及如何根据Cassandra的数据模型设计表结构。...

    Oracle教程

    - **数据模型**: 数据模型用来描述数据之间的关系和结构,常见的数据模型有层次模型、网状模型和关系模型。 - **DBMS的功能**: DBMS主要负责数据的存储、检索、更新和管理等任务,确保数据的一致性和安全性。 - **...

    Python库 | dse_driver-2.10.0-cp27-cp27mu-manylinux1_i686.whl

    # 使用模型操作数据 management.create_table(session, User) ``` **Python库的特性** `dse_driver`库提供了以下关键特性: 1. **异步支持**:支持非阻塞I/O,允许并发处理多个请求,提高了性能。 2. **事件驱动*...

Global site tag (gtag.js) - Google Analytics