Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133559
  • 博文数量: 69
  • 博客积分: 2895
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-03 18:05
文章分类

全部博文(69)

文章存档

2010年(69)

我的朋友

分类:

2010-09-11 16:11:41

6)//range queries may only be performed against an order-preserving partitioner
    //如果系统试用的节点定位的RandomPartitioner的话那么这个方法将不能试用,好处是跟均衡的存储

  1.  
  2.     //此方法尚在研究中
  3.     public void test_get_key_range()
  4.     {
  5.         try {
  6.             cli.get_key_range("Table1""??""??"1);
  7.           
  8.         } catch (InvalidRequestException e) {
  9.             e.printStackTrace();
  10.         } catch (TException e) {
  11.             e.printStackTrace();
  12.         }
  13.     }
  14.  

7) //术语解释:每个key都对应一个Row的信息这个Row的信息又按照columnFamliy 分成了很多slice

  1.  
  2.     //每一个columnFamily都存在一个排序,或按照name或按照time
  3.     //该方法将取出对应某个key的一定区间段内的column元素
  4.     public void test_get_slice()
  5.     {
  6.          tableName = "Table1";
  7.          keyName = "testKey2";
  8.          columnFamily = "Standard1";    //想要从哪个columnFamily中获取column
  9.         int start = 0;//起始位置
  10.         int count = 10;//获取数量
  11.         try {
  12.             List cmts = cli.get_slice(tableName, keyName, columnFamily, start, count);
  13.             .out.println("cmts size : "+cmts.size());
  14.         } catch (InvalidRequestException e) {
  15.             e.printStackTrace();
  16.         } catch (NotFoundException e) {
  17.             e.printStackTrace();
  18.         } catch (TException e) {
  19.             e.printStackTrace();
  20.         } catch ( e) {
  21.             e.printStackTrace();
  22.         }
  23.     }

8) //通过一个column的名字数组来查找相对应的属于给定key的slice(一组column 元素)

  1.  
  2.     public void test_get_slice_by_names()
  3.     {
  4.          tableName = "Table1";
  5.          keyName = "testKey";
  6.          columnFamily = "Standard1";
  7.         List columnNameList = new ArrayList();
  8.         columnNameList.add("testColumn");
  9.         try{
  10.             List cmts = cli.get_slice_by_names(tableName, keyName, columnFamily, columnNameList);
  11.         }catch( e){
  12.             e.printStackTrace();
  13.         }
  14.     }
  15.  

9)//描述一个table中的各个columnFamily的基本信息

  1.  
  2.     public void test_describe_table()
  3.     {
  4.         try {
  5.             .out.println(cli.describeTable("Table1"));
  6.         } catch (TException e) {
  7.             e.printStackTrace();
  8.         }
  9.     }
  10.  

10)//批量的针对一个key插入数据

  1.  
  2.     public void test_batch_insert()
  3.     {
  4.         try{
  5.              tableName = "Table1";
  6.              keyName = "testkey2";
  7.             //当下的Map保存了ColumnFamily到他内部的column元素列表的一个映射
  8.             //所以String 应该保存 对应columnFamily的名字。
  9.             //column_t(column元素)包含:columnName , value , timestamp 三要素
  10.             Map> CFmap = new HashMap>();
  11.             //制作两个column_t实例
  12.             column_t cmt1 = new column_t("test_column_name_1" ,"test_column_value_1".getBytes() , .currentTimeMillis());
  13.             column_t cmt2 = new column_t("test_column_name_2" ,"test_column_value_2".getBytes() , .currentTimeMillis());
  14.             //制作一个column_t的list
  15.             List cList = new ArrayList();
  16.             cList.add(cmt1);
  17.             cList.add(cmt2);
  18.             //制作一个将其写入CFmap中
  19.              columnFamilyName = "Standard1";
  20.             CFmap.put(columnFamilyName, cList);//这样在以后的插入操作中,相应的column_t将插入"Docin"这个family中
  21.             batch_mutation_t bmt = new batch_mutation_t(tableName , keyName , CFmap);//完成插入的key的定位
  22.             //执行这个针对相应key和colmunFamily的batch_insert
  23.             cli.batch_insert(bmt, true);
  24.            
  25.         }catch( e){
  26.             e.printStackTrace();
  27.         }
  28.     }
  29.  

11)//同insert()相对的反向操作
    //当我们试图查询一个不存在的column_t元素的时候,会有”NotFoundException”异常被抛出

  1.  
  2.     public void test_remove()
  3.     {
  4.          tableName = "Table1";
  5.          columnFamily = "Standard1";
  6.          columnName = "removetest";
  7.          keyName = "removetestkey";
  8.          value = "removetestvalue";
  9.          path = columnFamily+":"+columnName;
  10.         try{
  11.             //先将相应的column元素写入
  12.             cli.insert(tableName, keyName, path, value.getBytes(),.currentTimeMillis()true);
  13.             //尝试读出信息
  14.             column_t cmt = cli.get_column(tableName, keyName, path);
  15.             displayColumn(cmt);
  16.             //删除这条信息
  17.             cli.remove(tableName, keyName, path, .currentTimeMillis(),true);
  18.         }catch( e){
  19.             e.printStackTrace();
  20.         }
  21.         //尝试读出信息
  22.         column_t cmt2;
  23.         try {
  24.             cmt2 = cli.get_column(tableName, keyName, path);
  25.             displayColumn(cmt2);
  26.         } catch (InvalidRequestException e) {
  27.             e.printStackTrace();
  28.         } catch (NotFoundException e) {
  29.             .out.println("NotFoundException 异常抛出,column_元素已经被删除");
  30.         } catch (TException e) {
  31.             e.printStackTrace();
  32.         } catch ( e) {
  33.             e.printStackTrace();
  34.         }
  35.     }
  36.  


阅读(628) | 评论(0) | 转发(0) |
0

上一篇:cassandra学习笔记

下一篇:cassandra 学习笔记

给主人留下些什么吧!~~