无法在Azure Cosmos DB中插入json - Cassandra [英] Not able to insert json in Azure Cosmos DB - Cassandra

查看:82
本文介绍了无法在Azure Cosmos DB中插入json - Cassandra的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 


我使用下面的代码创建一个准备好的语句来插入JSON 文档(插入cassandra的json功能):


String queryString =" INSERT INTO" .concat(keySpace).concat("。")。concat(table).concat(" JSON:payload");


preparedStatement = session.prepare(queryString)


但是,当我执行我的session.prepare抛出异常时:


由:com.datastax.driver.core.exceptions.SyntaxError:第1:40行输入':( ... O asda_search.test_table JSON:...)at com.datastax.driver.core.Responses $ Error .asException(Responses.java:132)at com.datastax.driver.core.SessionManager $ 4.apply(SessionManager.java:220)
at com.datastax.driver.core.SessionManager $ 4.apply(SessionManager.java) :196)at shade.com.datastax.spark.connector.google.common.util.concurrent.Futures $ ChainingListenableFuture.run(Futures.java:906)at shade.com.datastax.spark.connector.google.common.uti l.concurrent.Futures $ 1 $ 1.run(Futures.java:635)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor $ Worker.run( ThreadPoolExecutor.java:624)at io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:748)



相同的上述代码在我的本地和部署的Cassandra数据中心完全正常。

解决方案

Hi Bikas,


Cosmos DB Cassandra API可能与内部部署的Cassandra实例不完全相同。 Cosmos DB Cassandra API基于CQL v4,您使用的Java客户端针对CQL v3,因此可能需要进行一些调整以解决一些
的差异。 


ere是一个基于java的示例,使用java将数据写入Cassandra API客户,作为参考。 


教程:将示例数据加载到Azure Cosmos DB中的Cassandra API表


谢谢,


迈克



Hi, 

I am using below code to create a prepared statement to insert JSON documents(Insert json feature of cassandra):

String queryString = "INSERT INTO ".concat(keySpace).concat(".").concat(table) .concat(" JSON :payload");

preparedStatement = session.prepare(queryString)

But, when I execute my session.prepare throws below exception:

Caused by: com.datastax.driver.core.exceptions.SyntaxError: line 1:40 no viable alternative at input ': (...O asda_search.test_table JSON :...) at com.datastax.driver.core.Responses$Error.asException(Responses.java:132) at com.datastax.driver.core.SessionManager$4.apply(SessionManager.java:220) at com.datastax.driver.core.SessionManager$4.apply(SessionManager.java:196) at shade.com.datastax.spark.connector.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:906) at shade.com.datastax.spark.connector.google.common.util.concurrent.Futures$1$1.run(Futures.java:635) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) at java.lang.Thread.run(Thread.java:748)

The same above code works perfectly fine in my local and deployed Cassandra in our data center.

解决方案

Hi Bikas,

The Cosmos DB Cassandra API may not behave exactly as a on-premise Cassandra instance. The Cosmos DB Cassandra API is based upon CQL v4, where the java client you are using is targeted for CQL v3, so some adjustment might be needed here to account for some differences. 

Datastax Java Driver for Apache Cassandra®

Here is a java based example of writing data to the Cassandra API with a java client, as a reference. 

Tutorial: Load sample data into a Cassandra API table in Azure Cosmos DB

Thanks,

Mike


这篇关于无法在Azure Cosmos DB中插入json - Cassandra的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆