我在cassandra DB上构建了结构来存储操作系统数据的时间序列数据,如服务、进程和其他信息。为了理解如何使用Cassandra来存储JSON数据并通过条件的CQL查询检索数据,我倾向于简化模型。因为在整个模型数据库中,我将拥有比report_object更复杂的类型,如hashMap数组的hashMap,例如:TypeNETSTAT--
CREATE TYPE report_object (RTIME varchar, RMINORVER int, RUSER varchar, RLANG varchar, RSCRIPT varchar, RMAJORVER int, RHOST varchar, RPATH varchar);
CREATE TABLE test (
REPORTUUID uuid PRIMARY KEY,
report frozen<report_object>);
在表中,我在java类中使用以下查询注入了JSON数据:
INSERT INTO test JSON '{"REPORTUUID": "9fb21fb9-333e-4017-ab77-0fa6ee1e20e3" ,"REPORT":{"RTIME":"6/MAR/2016 6:0:0 PM","RMINORVER":0,"RUSER":"Administrator","RLANG":"vbs","RSCRIPT":"Main","RMAJORVER":5,"RHOST":"WIN-SAPV9MUEMNS","RPATH":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\IXP000.TMP"}}';
我用上面的查询插入了其他数据。澄清我的概念的问题是: - 我想使用检查类型定义的条件进行查询,CQL是否可以使用CQL或有必要使用spark SQL?
设计数据库模型是否符合目的(因为我已经从RDBMS传递到数据库非关系型数据库)?
为了能够使用Cassandra查询用户定义类型,您必须首先创建一个索引:
CREATE INDEX on test.test(report);
但它只允许基于完整文档的谓词:
SELECT * FROM test
WHERE report=fromJson('{"RTIME":"6/MAR/2016 6:0:0 PM","RMINORVER":0,"RUSER":"Administrator","RLANG":"vbs","RSCRIPT":"Main","RMAJORVER":5,"RHOST":"WIN-SAPV9MUEMNS","RPATH":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\IXP000.TMP"}');
有关如何按用户定义类型的字段筛选 cassandra 查询中的更多详细信息和说明
当使用 Spark 公开时,可以使用卡桑德拉表扫描RDD
上的筛选器来过滤这些值:
val rdd = sc.cassandraTable("test", "test")
rdd.filter(row =>
row.getUDTValue("report").getString("rscript") == "Main")
或,其中
/filter
对<code>DataFrame
df.where($"report.rscript" === "Main")
尽管使用Spark进行类似查询时,必须先获取整个表,然后才能过滤数据。虽然不清楚你到底想达到什么目的,但这不太可能是一个有用的结构。
全能的开发者们。我在Spark中运行一些基本的分析,在这里我查询多节点Cassandra。我正在运行的代码以及我正在处理的一些非链接代码是: Spark的版本是1.6.0,Cassandra v3。0.10,连接器也是1.6.0。键空间有,表有5列,实际上只有一行。如您所见,有两个节点(OracleVM中制作的虚拟Macine)。 我的问题是,当我测量从spark到cassandra的查询时间时,
我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为
我正在创建一个用于审计我的web应用程序的应用程序。所以我想在CASSANDRA db中存储所有审计日志,数据不是预定义的,我们要存储到db中的内容,基本上应该存储到一个无模式的db中。那么我们如何将它存储到卡珊德拉。请帮帮我。
我用Spring Data Cassandra 2.2.1开发了一个新的应用程序,想在Cassandra 2.1.9服务器上运行它(旧的,我知道)。但是我们得到了错误 Spring数据卡桑德拉手册声称Spring数据2.2.1至少需要卡桑德拉2.1,所以这应该有效,但它没有。我们包含的唯一特定于卡桑德拉的依赖项是 我怎样才能让这个工作?
我正在尝试评估Cassandra DB在存储和检索不同通道的时间序列数据方面的性能。 数据以文件格式记录,最大记录速率为8个样本/秒,每个样本都有一个以毫秒为单位的时间戳。给定时间记录的通道数可能会有所不同。 受以下链接的启发,我使用时间序列数据建模入门创建了以下表: 创建表uhhdata ( ch_idx int,date timestamp,dt timestamp,val float,PRI
卡桑德拉如何在内部存储空值?它是否占用任何存储空间?我正在编写一个应用程序,该应用程序使用具有许多列(100s)的表来表示不同类型的数据,因此列具有诸如“text1”,“text2”,“number1”,“number2”等名称,然后有一个外部JSON架构映射哪个列表示特定数据类型的什么值。因此,对于某种数据类型,许多列可能具有空值,并且我无法找到有关空值将占用的存储空间(如果有)的任何具体信息。