Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确地在cassandra中设计数据模型来存储json_Json_Cassandra - Fatal编程技术网

如何正确地在cassandra中设计数据模型来存储json

如何正确地在cassandra中设计数据模型来存储json,json,cassandra,Json,Cassandra,我正在学习cassandra,以了解如何对数据进行建模以最好地管理json,如下所示: { "summary": { "elem": [ { "score": 15.8, "value": "xxx" }, { "score": 15.7, "value": "yyy"

我正在学习cassandra,以了解如何对数据进行建模以最好地管理json,如下所示:

{
    "summary": {
        "elem": [
            {
                "score": 15.8,
                "value": "xxx"
            },
            {
                "score": 15.7,
                "value": "yyy"
            },
            {
                "score": 13.9,
                "value": "zzz"
            }
        ],
        "sens": [
            {
                "score": 23,
                "start": 0,
                "end": 210,
                "value": "kkk"
            },
            {
                "score": 12.1,
                "start": 212,
                "end": 326,
                "value": "nnn"
            }
        ]
    },
    "cats": [
        {
            "name": "c1",
            "val": 10245,
            "sens": [
                {
                    "val": "mmm",
                    "els": [
                        {
                            "start": 25,
                            "end": 38,
                            "value": "ccc"
                        }
                    ],
                    "score": 810,
                    "start": 0,
                    "end": 210
                },
                ...
            ]
        },
        ...
    ],
    "ecv": {
        "ens": [
            {
                "val": "bbb",
                "text": "jjj",
                "matches": [
                    {
                        "start": 2706,
                        "end": 2719,
                        "value": "aaa"
                    }
                ],
                "properties": [
                    {
                        "name": "id",
                        "value": "0001"
                    },
                    {
                        "name": "uni",
                        "value": "V"
                    },
                    ...
                ]
            },
            ...
        ],
        "rels": [
            {
                "ens": [
                    {
                        "text": "pp",
                        "start": 0,
                        "end": 7,
                        "value": "uuu"
                    },
                    {
                        "type": "rrr",
                        "start": 25,
                        "end": 38,
                        "value": "www"
                    }
                ],
                "act": {
                    "name": "rtr",
                    "type": "fff",
                    "start": 122,
                    "end": 125
                },
                "sens": {
                    "value": "ddd"
                }
            },
            ...
        ]
    },
    "doms": [
        {
            "value": "yyy",
            "fas": [
                {
                    "val": "ccw",
                    "sens": {
                        "start": 0,
                        "end": 210,
                        "value": "xxx"
                    },
                    "els": [
                        {
                            "start": 169,
                            "end": 178,
                            "value": "bhh"
                        },
                        ...
                    ],
                    "ents": [
                        {
                            "val": "ents1",
                            "type": "xxx",
                            "matches": [
                                {
                                    "start": 0,
                                    "end": 7,
                                    "value": "bbb"
                                }
                            ]
                        },
                        ...
                    ]
                },
                ...
            ]
        },
        ...
    ]
}
我用了几个月的MongoDB,所以我认为将整个文档编写到MongoDB集合很简单

我不知道如何设计cassandra模型来存储json

有人能给我一个开始“用卡桑德拉思考”的方法吗


谢谢

需要了解的一点是,Cassandra中没有“一个存储”模型。您有一个传统的ER模型,从中衍生出一个逻辑模型,并结合您的约束和性能需求来获得最终的物理模型。你在cassandra中的表格是最后一种形式,其他形式是“在你的头脑中”或记录的——想法而不是表格。那么,你怎么去那些桌子?你根据你的疑问思考。您的表满足您的查询,因此在不了解访问模式的情况下,无法说明应该如何存储它

Cassandra中的数据存储在分区中。分区由主键中的第一个键标识。分区中的所有行一起存储在一台计算机(和副本)上。如果您的查询命中一个分区,它会很快。如果它命中多个分区(查询中的pk),则速度会变慢。如果它命中所有分区,则速度最慢。但是,如果所有查询都命中一个分区,则会出现热点(一些服务器被大量使用,而另一些服务器处于空闲状态)。这在大型集群中可能很糟糕

在分区内,数据按照集群键(主键中的“其他”键)的顺序进行排序。如果已指定所有以前的群集键,则只能对群集键执行筛选(where)查询。此外,只能对谓词中最后一个聚类键执行范围查询(>,<等)。您还可以创建二级索引,它可以让您查询集群键需求之外的相等条件,尽管它们比较慢,并且是异步更新的

这里有很多复杂之处,而且您可以执行的查询限制要大得多(如果需要考虑性能的话)。所以“cassandra方法”是考虑您的查询模式,然后基于这些模式存储数据。如果您有多种存储模式,请以不同的形式复制相同的信息。没有“一种真正的方式”来存储数据