使用Astyanax在Apache Cassandra中存储和查询数据的最佳方法

时间:2014-04-08 11:30:40

标签: java cassandra astyanax

我有点困惑,不知道我是不是以正确的方式做到了。我有通过API发送的任意json数据,我开发了一种算法,可以将数据转换为能够编写适合cassandra柱状方法的数据。我有点困惑,不知道它是否写入数据的写入方式,因为我必须使用ad-hoc来查询数据。这是一个例子:

{'sales': 'HP-Laptop', 'location': 'NY', 'working': 'Yes'}
String content = input.getString(0);
    JSONObject ob = new JSONObject(content);

    Map<String,String> map = new HashMap<String,String>();
ObjectMapper mapper = new ObjectMapper();

    try{
        map = mapper.readValue(ob.get("content").toString(), new TypeReference<HashMap<String,String>>(){});
    }catch(IOException e){
        e.printStackTrace();
    }

    UUID uuid = UUID.randomUUID();


     MutationBatch _mutation = _m;
    for (Map.Entry<String, String> entry : map.entrySet()) {
        _mutation.withRow(EMP_CF, uuid.toString()).putColumn(entry.getKey(), entry.getValue(), null);
    }

    try {
       OperationResult<Void> result = _mutation.execute();
      } catch (ConnectionException e) {
        logger.error("failed to write data to C*", e);
        throw new RuntimeException("failed to write data to C*", e);
      }
      logger.debug("insert ok");

ad-hoc逻辑就是这样,让所有行都有这个列:&#39; sales&#39;其中sales列对每个插入的记录具有不同的值。我正在使用风暴拓扑和astyanax驱动程序来执行此操作。

非常欢迎建议和建议。

Ebot。

0 个答案:

没有答案