在.net中使用aquiles访问Cassandra(三)
public void Remove(string columnFamily, IList<RowMutation> rowMutations)
{
if (string.IsNullOrWhiteSpace(columnFamily)) throw new ArgumentNullException("columnFamily"); Dictionary<byte[], Dictionary<string, List<Apache.Cassandra.Mutation>>> mutation_map = new Dictionary<byte[], Dictionary<string, List<Apache.Cassandra.Mutation>>>(); foreach (var rowMutation in rowMutations)
{
byte[] key = ByteEncoderHelper.UTF8Encoder.ToByteArray(rowMutation.Key); Dictionary<string, List<Apache.Cassandra.Mutation>> cfMutation = new Dictionary<string, List<Apache.Cassandra.Mutation>>();
List<Apache.Cassandra.Mutation> mutationList = new List<Apache.Cassandra.Mutation>(); Apache.Cassandra.Mutation mutation = new Apache.Cassandra.Mutation();
mutation.Deletion = new Deletion();
if (rowMutation.Mutations != null && rowMutation.Mutations.Count > )
{
mutation.Deletion.Predicate = new SlicePredicate()
{
Column_names = rowMutation.Mutations.Select(
m => ByteEncoderHelper.UTF8Encoder.ToByteArray(m.ColumnName)).ToList()
};
}
mutation.Deletion.Timestamp = DateTime.Now.ToUnixTimestamp();
mutationList.Add(mutation); cfMutation.Add(columnFamily, mutationList);
mutation_map.Add(key, cfMutation);
} if (mutation_map.Count == ) return;
_cluster.Execute(new ExecutionBlock(delegate(Apache.Cassandra.Cassandra.Client client)
{
client.batch_mutate(mutation_map, _consistencyLevel);
return null;
}), _keyspaceName); }
public void Remove(string columnFamily, string rowKey)
{
if (string.IsNullOrWhiteSpace(columnFamily)) throw new ArgumentNullException("columnFamily"); byte[] key = ByteEncoderHelper.UTF8Encoder.ToByteArray(rowKey); ColumnPath columnPath = new ColumnPath()
{
Column_family = columnFamily,
}; _cluster.Execute(new ExecutionBlock(delegate(Apache.Cassandra.Cassandra.Client client)
{
client.remove(key, columnPath, DateTime.Now.ToUnixTimestamp(), _consistencyLevel);
return null;
}), _keyspaceName);
}
public void Remove(string columnFamily, string rowKey, string columnName)
{
if (string.IsNullOrWhiteSpace(columnFamily)) throw new ArgumentNullException("columnFamily"); byte[] key = ByteEncoderHelper.UTF8Encoder.ToByteArray(rowKey); ColumnPath columnPath = new ColumnPath()
{
Column_family = columnFamily,
Column = ByteEncoderHelper.UTF8Encoder.ToByteArray(columnName)
}; _cluster.Execute(new ExecutionBlock(delegate(Apache.Cassandra.Cassandra.Client client)
{
client.remove(key, columnPath, DateTime.Now.ToUnixTimestamp(), _consistencyLevel);
return null;
}), _keyspaceName);
}
public void Remove(string columnFamily, IList<string> rowKeys)
{
IList<RowMutation> batchMutations = new List<RowMutation>();
foreach (string rowKey in rowKeys)
{
batchMutations.Add(new RowMutation(rowKey));
}
Remove(columnFamily, batchMutations);
}
public void Remove(string columnFamily, string rowKey, IList<string> columnNames)
{
IList<RowMutation> rowMutations = new List<RowMutation>(); RowMutation rowMutation = new RowMutation();
rowMutation.Key = rowKey; rowMutation.Mutations = new List<CellMutation>();
foreach (string columnName in columnNames)
{
rowMutation.Mutations.Add(new CellMutation(columnName));
}
rowMutations.Add(rowMutation); Remove(columnFamily, rowMutations);
}
在.net中使用aquiles访问Cassandra(三)的更多相关文章
- 在.net中使用aquiles访问Cassandra(一)
aquiles是.net下基于Thrift协议访问Cassandra的第三方类库,官方地址是: http://aquiles.codeplex.com/ 1.下载类库文件: http://aqui ...
- 在.net中使用aquiles访问Cassandra(二)
上文中我们已经建立了项目的基本结构,今天实现数据的修改.在NoSQL中,通常添加和修改都认为是对数据的一种Mutation. 1.建立描述修改Row的实体. public class RowMut ...
- 在.net中使用aquiles访问Cassandra(四)
数据的持久化我们都已经完成了,和所有应有程序一样,最重要的是要向用户展示数据.下面我们就推出这部分代码,读取任意行任何列: public IList<TRowResult> Execute ...
- 使用虚幻引擎中的C++导论(三-反射系统与迭代器)
使用虚幻引擎中的C++导论(三) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...
- Android平台中实现对XML的三种解析方式
本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...
- 客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出!
客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签: ORACLE 忙了一下午,只有两个字形容:麻烦! ...
- Sql Server中的表访问方式Table Scan, Index Scan, Index Seek
1.oracle中的表访问方式 在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问: 全表扫描(full table scan),直接访问数据页,查找满足条件的数据 通过row ...
- 转:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek
0.参考文献 Table Scan, Index Scan, Index Seek SQL SERVER – Index Seek vs. Index Scan – Diffefence and Us ...
- 在Tomcat中部署web项目的三种方式
搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...
随机推荐
- MYSQL使用mysqldump导出某个表的部分数据
命令格式如下: mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径 例子: 从meteo数据库的sdata表中导出sen ...
- Hibernate+jsp+struts+spring做增删该查,
同样还是web项目,这里只做了一张表,做一个测试,例子.主要是建Hibernate 的时候要非常注意,有时间了整理一下建Hiberbnate 的时候需要注意的事项 这里我是建了5个包,其实只要四个就好 ...
- Eclipse在线集成maven M2eclipse插件
首先说下版本: Eclipse:3.6 Maven:3.3.1,若不知道如何在本地安装Maven,请参见我的另一篇文章:Window下安装Maven 废话少说,直接讲步骤就好: 1.打开eclipse ...
- k-sum问题
给定一个数组,里面的是任意整数,可能有重复,再给定一个目标T,从数组中找出所有和为T的K个数,要求结果中没有重复. Note: Elements in a quadruplet (a,b,c,d) m ...
- MSBuild Devenv 编译VC 工程
Devenv "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" dap_cp ...
- dp px 转换工具
public class DensityUtil { private final static String TAG = "DensityUtil"; private static ...
- CSS无序列实现表宽度自适应的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript中对象的含义与this的指向
JavaScript中的对象:无序属性的集合 -其属性可以包含基本值.对象或函数.对象就是一组没有顺序的值.我们可以吧JavaScript中的对象想象成键值对,其中值可以是数据和函数.对象的行为和特征 ...
- Linux系统布置java项目
一.远程服务器 Linux系统是没有Windows那样可视化的界面的,所以首先我们需要一个远程Linux服务器的软件,有好多种,比较好用的XShell,下载地址:http://rj.baidu.com ...
- ubuntu 下安装boost库
ubuntu下安装boost库,,在网上试了一些其他人推荐的libboost-dev 但是会缺少,编译程序会报错: /usr/bin/ld: cannot find -lboost_serializa ...