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
使用Hector将spring与cassandra集成_Spring_Cassandra_Hector - Fatal编程技术网

使用Hector将spring与cassandra集成

使用Hector将spring与cassandra集成,spring,cassandra,hector,Spring,Cassandra,Hector,我正在开发一个Spring应用程序,需要使用Hector与Cassandra通话。需要一些关于如何接近的帮助。我想使用JPA,并利用Spring的依赖注入特性 任何一点帮助 第一个问题的答案:您必须设计并规范化数据模型,以便减少多列族之间的遍历。例如,如果您在CF itemlist中存储一些用户id,您应该插入具有使用详细信息的用户JSON对象,而不是该用户id,通过这种方式,在获取对usermaster CF的遍历时可以避免对于JPA合规性,我使用了Kundera,我可以很容易地将它与spri

我正在开发一个
Spring
应用程序,需要使用
Hector
Cassandra
通话。需要一些关于如何接近的帮助。我想使用
JPA
,并利用Spring的依赖注入特性


任何一点帮助

第一个问题的答案:您必须设计并规范化数据模型,以便减少多列族之间的遍历。例如,如果您在CF itemlist中存储一些用户id,您应该插入具有使用详细信息的用户JSON对象,而不是该用户id,通过这种方式,在获取对usermaster CF的遍历时可以避免

对于JPA合规性,我使用了Kundera,我可以很容易地将它与spring集成,是的,正如Hardik Bhalani所建议的那样,columnfamilies是经过精心设计以实现最大效率的

我已经设法使用它非常容易地完成了,但是这就给您留下了SimpleCassandrado(您可以将其注入到DAO中),这是非常有限的

我所做的是务实地建立联系:

@PostConstruct
public void connect() {
if (Boolean.parseBoolean(isActive)) {
    CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(this.socket);
    cluster = HFactory.getOrCreateCluster(clusterName, cassandraHostConfigurator);
    ConfigurableConsistencyLevel consistencyLevelPolicy = new ConfigurableConsistencyLevel();
    consistencyLevelPolicy.setDefaultReadConsistencyLevel(getConsistencyLevelPolicy());
    keyspace = HFactory.createKeyspace(keyspaceName, cluster, consistencyLevelPolicy);
    if (isConnected())
    fireConnectionEvent(true);
    else {
    LOG.error("Could not connect to socket " + this.socket + ". Connection to Cassandra DB is down!!!");
    }
} else {
    LOG.info("Cassandra connection is not active hence could not connect to socket " + this.socket
        + ". Please activate the connection before trying to connect");
}
} 
此方法是Springbean的一部分(使用组件注释进行注释),因此一旦部署了应用程序,就会创建连接池。 如您所见,我正在触发一个连接事件(使用支持)。该事件保存新创建的键空间,然后由我的Dao捕获。这样,我的Dao就可以初始化所需的查询。例如:

StringSerializer stringSerializer = StringSerializer.get();
SliceQuery<String, String, String> query = HFactory.createSliceQuery(this.keyspace, stringSerializer, stringSerializer, stringSerializer)
        .setColumnFamily(columnFamily).setRange(null, null, false, 4).setKey(rowKey);

    ColumnSlice<String, String> columnsSlice = query.execute().get();
    List<HColumn<String, String>> columns = columnsSlice.getColumns();
StringSerializer-StringSerializer=StringSerializer.get();
SliceQuery query=HFactory.createSliceQuery(this.keyspace,stringSerializer,stringSerializer,stringSerializer)
.setColumnFamily(columnFamily).setRange(null,null,false,4).setKey(rowKey);
columnsice columnsSlice=query.execute().get();
List columns=columnsSlice.getColumns();

我希望这会有所帮助。

您可以尝试使用Playorm哪种1。支持两个columnfamilies 2的类似sql的联接。也为列提供索引支持。

请向我们展示您的尝试。您好,我尝试将我的Spring MVC项目与我的本地Cassandra DB集成。已配置POM.xml并获得所需的依赖项。Dal层已完成。我面临两个问题1.我需要从多个列族中获取数据,如何进行查询2)如何对列进行索引以进行查询您回答的是哪个问题?您的建议是否有助于获得春季卡桑德拉·赫克托奖,或者是否有助于JPA。我还没有与JPA和Spring Hector Cassandra合作过。我的答案是“当我需要从多个列族中获取数据时,如何进行查询?”我的解决方案是尝试设计数据模型,以减少依赖性,如我的示例中所述。我现在开始使用我的代码进行生产。我使用了Kundera+SPrings。是的,正如Hardik Bhalani所建议的,columnfamilies经过精心设计,以实现最大效率。