微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Amazon Keyspaces上启用Json插入

如何解决在Amazon Keyspaces上启用Json插入

我正在从托管的Cassandra迁移到Amazon Keyspace。

某些生产过程使用Cassandra Json Insert。当我尝试运行此过程之一以将数据存储在Amazon Keyspaces中时,出现以下错误

Unsupported statement: org.apache.cassandra.cql3.statements.UpdateStatement$ParsedInsertJson@7ba2351

我想在Amazon Keyspace中未启用此功能。在我的本地Cassandra上,我没有启用任何功能来使用JSON insert。有一种方法可以在Amazon Keyspaces上启用此功能

解决方法

Keyspaces 于 2021 年 1 月 22 日开始支持 JSON。 您可以像使用 Cassandra 一样使用 JSON API 输入插入和选择。

您可以使用 JSON API 对现有表执行插入和选择语句。

以下是有关密钥空间和 JSON 如何协同工作的信息链接:https://aws.amazon.com/about-aws/whats-new/2021/01/amazon-keyspaces-for-apache-cassandra-now-supports-json-syntax/

Keyspaces 一直在添加新功能。要查看支持的 API,请访问 this

以下是 JSON api 的示例。将以下 create table 语句复制到 Amazon Keyspaces CQL 控制台中。然后在表创建后执行以下插入和选择语句。

下面的代码将创建一个 json_keyspaces 键空间,然后它创建一个名为购物车的表。 将密钥空间名称替换为您自己的名称。完成后,您将拥有一个名为 Shoppingcart 的新表。

然后 INSERT 语句将使用 JSON API 插入一些 JSON 数据。 Bellow 是一个 SELECT 语句,用于从表中查询数据。


CREATE TABLE "json_keyspaces”.”shoppingcart"(
    "user_id" text,"item_id" text,"quantity" int,PRIMARY KEY("user_id","item_id"))
WITH CUSTOM_PROPERTIES = {
    'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'},'point_in_time_recovery':{'status':'enabled'}
} AND CLUSTERING ORDER BY("item_id" ASC)


INSERT INTO json_keyspaces.shoppingcart JSON '{
  "user_id": "id123","item_id": "blue_shirt","quantity" : 5
 }';
  

SELECT json user_id,item_id,quantity from json_keyspaces.shoppingcart;
,

Amazon Keyspaces(实际上)不支持const reducer = (state,{type,payload}) => { switch (type) { case 'name': return {...state,name: payload} case 'age': return {...state,age: payload} default: throw new Error() } } const [{name,age},dispatch] = useReducer(reducer,{ name: 'john',age: 25 }) const makeEventListener = type => e => dispatch({type,payload: e.target.value}) // Now,you can use either use makeEventListener,or dispatch() directly return <input type="text" value={name} onChange={makeEventListener('name')) 功能。 唯一的解决方案是更改业务逻辑并使用{​​{1}}插入数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。