- 浏览: 330907 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
di1984HIT:
谢谢,写的不错。
使用hector操作Cassandra -
mr_von:
非常感谢!
paoding的分词使用 -
howgoo:
http://www.dhtmlx.com/docs/prod ...
dhtmlxGrid分页与排序 -
青春的、脚步:
谢谢
spring-data-mongodb的MongoTemplate 使用小例子 -
青春的、脚步:
xiaofancn 写道青春的、脚步 写道这个能查询都个值在某 ...
spring-data-mongodb的MongoTemplate 使用小例子
http://rantav.github.com/hector/build/html/content/getting_started.html
https://github.com/zznate/hector-examples.git
private static final String DYN_KEYSPACE = "logdb"; private static final String DYN_CF = "user"; private static StringSerializer stringSerializer = StringSerializer.get(); private static LongSerializer longSerializer = LongSerializer.get(); private static Cluster cluster = HFactory.getOrCreateCluster( "Test Cluster", "localhost:9160"); public static void createSchema() { try { if (cluster.describeKeyspace(DYN_KEYSPACE) != null) { cluster.dropKeyspace(DYN_KEYSPACE); } // 字段操作 BasicColumnDefinition ageColumnDefinition = new BasicColumnDefinition(); ageColumnDefinition.setName(stringSerializer.toByteBuffer("age")); ageColumnDefinition.setIndexName("age_idx"); ageColumnDefinition.setIndexType(ColumnIndexType.KEYS); ageColumnDefinition.setValidationClass(ComparatorType.LONGTYPE .getClassName()); // 字段操作 BasicColumnDefinition usernameColumnDefinition1 = new BasicColumnDefinition(); usernameColumnDefinition1.setName(stringSerializer .toByteBuffer("username")); usernameColumnDefinition1.setIndexName("username_idx"); usernameColumnDefinition1.setIndexType(ColumnIndexType.KEYS); usernameColumnDefinition1 .setValidationClass(ComparatorType.UTF8TYPE.getClassName()); BasicColumnFamilyDefinition columnFamilyDefinition = new BasicColumnFamilyDefinition(); columnFamilyDefinition.setKeyspaceName(DYN_KEYSPACE); columnFamilyDefinition.setName(DYN_CF); columnFamilyDefinition.addColumnDefinition(ageColumnDefinition); columnFamilyDefinition .addColumnDefinition(usernameColumnDefinition1); ColumnFamilyDefinition cfUser = new ThriftCfDef( columnFamilyDefinition); KeyspaceDefinition keyspaceDefinition = HFactory .createKeyspaceDefinition(DYN_KEYSPACE, "org.apache.cassandra.locator.SimpleStrategy", 1, Arrays.asList(cfUser)); cluster.addKeyspace(keyspaceDefinition); // insert some data for (int i = 0; i < 1; i++) { List<KeyspaceDefinition> keyspaces = cluster .describeKeyspaces(); for (KeyspaceDefinition kd : keyspaces) { if (kd.getName().equals(DYN_KEYSPACE)) { System.out.println("Name: " + kd.getName()); System.out.println("RF: " + kd.getReplicationFactor()); System.out.println("strategy class: " + kd.getStrategyClass()); List<ColumnFamilyDefinition> cfDefs = kd.getCfDefs(); for (ColumnFamilyDefinition def : cfDefs) { System.out.println(" CF Type: " + def.getColumnType()); System.out.println(" CF Name: " + def.getName()); System.out.println(" CF Metadata: " + def.getColumnMetadata()); } } } } } catch (HectorException he) { he.printStackTrace(); } cluster.getConnectionManager().shutdown(); } public static void operatioinDB() { String value = ""; for (int i = 0; i < 10; i++) { value = value + "x"; } Keyspace keyspaceOperator = HFactory.createKeyspace("logdb", cluster); try { Mutator<String> userMutator = HFactory.createMutator( keyspaceOperator, stringSerializer); Long age = 1000L; long start = System.currentTimeMillis(); for (long i = 0; i < 10000 * 10000; i++) { userMutator.addInsertion("" + i, "user", HFactory.createStringColumn("username", "小贩" + i)) .addInsertion( "" + i, "user", HFactory.createColumn("age", i, stringSerializer, longSerializer)); if (i % 500 == 0) { System.out.println(i); userMutator.execute(); } } userMutator.execute(); System.out.println("消耗毫秒:" + (System.currentTimeMillis() - start)); } catch (HectorException e) { e.printStackTrace(); } cluster.getConnectionManager().shutdown(); } public static void query() { Keyspace keyspaceOperator = HFactory.createKeyspace("logdb", cluster); long value = RandomUtils.nextInt(10000 * 1); ColumnFamilyTemplate<String, String> columnFamilyTemplate = new ThriftColumnFamilyTemplate<String, String>( keyspaceOperator, "user", stringSerializer, stringSerializer); IndexedSlicesPredicate<String, String, Long> agePredicate = new IndexedSlicesPredicate<String, String, Long>( stringSerializer, stringSerializer, longSerializer); IndexedSlicesPredicate<String, String, String> usernamePredicate = new IndexedSlicesPredicate<String, String, String>( stringSerializer, stringSerializer, stringSerializer); usernamePredicate.addExpression("username", IndexOperator.EQ, "小贩" + value).startKey(""); agePredicate.addExpression("age", IndexOperator.EQ, value).startKey(""); ColumnFamilyResult<String, String> list = columnFamilyTemplate .queryColumns(usernamePredicate); System.out.println(list.getString("username")); list = columnFamilyTemplate.queryColumns(agePredicate); System.out.println(list.getLong("age")); // ====================================================================================== } public static void query2() { Keyspace keyspaceOperator = HFactory.createKeyspace("logdb", cluster); long value = RandomUtils.nextInt(10000 * 1); IndexedSlicesQuery<String, String, String> indexedSlicesQuery = HFactory .createIndexedSlicesQuery(keyspaceOperator, stringSerializer, stringSerializer, stringSerializer); indexedSlicesQuery.addEqualsExpression("username", "小贩" + value); indexedSlicesQuery.setColumnFamily("user"); indexedSlicesQuery.setStartKey(""); indexedSlicesQuery.setColumnNames("username", "age"); QueryResult<OrderedRows<String, String, String>> result = indexedSlicesQuery .execute(); System.out.println(result.get()); } public static void main(String[] args) throws Exception { query2(); }
发表评论
-
spring cloud gateway 全局过滤器。
2019-03-17 23:11 527spring cloud gateway 网关 ... -
elasticsearch 5.4搜索
2017-05-19 08:37 148@Test public void t ... -
netty简单的操作memcached
2017-04-19 18:59 974pom文件 <dependency> ... -
juc系列-Executor框架
2017-03-20 13:34 698转自 juc系列-Executor框架 什 ... -
ReentrantLock 类
2017-03-19 21:11 11.1 什么是reentrantlock java.u ... -
juc之CountDownLatch、CyclicBarrier和Semaphore例子
2017-03-19 17:23 833import java.util.concurren ... -
netty客户端与服务端例子
2017-03-12 20:07 2798package com.snailteam.nett ... -
freemaker集成spring
2017-02-26 19:00 567<bean id="freeMark ... -
spring集成Hessian插件配置改成自动注入。
2017-02-10 15:39 834原来的配置 <bean name="/ ... -
web开发模版
2017-02-09 14:42 0# Rules reminder: # DEBUG &l ... -
Java多线程
2017-02-04 14:39 515线程状态图 新建状态(New): ... -
hash冲突解决
2017-01-23 18:30 4531、开放地址法有一个公式: m是hash表长度,di ... -
mybatis +spring 分库
2015-04-30 17:56 353<context:component-scan b ... -
Java并发任务处理例子
2014-02-12 16:06 1125public void init() { su ... -
JAVA动态代理模式
2012-10-03 01:01 1183这是我要实现的效果 public static ... -
paoding的分词使用
2012-06-13 21:30 4864paoding下载 http://code.googl ... -
使用spring-hadoop操作hadoop
2012-05-20 02:12 32参考文章 http://blog.springsource. ... -
solr3.5集成paoding和位置搜索及对solrj的使用。
2012-04-28 02:12 1978http://xiaofancn.iteye.com/blog ... -
日期处理DateUtils
2012-03-24 09:47 4810import java.text.SimpleDateF ... -
Cassandra的数据分布情况测试
2012-03-16 15:09 20321、规划种子节点ip和Token值的对应 4个种子 ...
相关推荐
本文将深入探讨如何使用Java通过Hector库来操作Cassandra数据库。 Cassandra概述: Cassandra是由Facebook开发,后来贡献给Apache的一个开源分布式数据库系统。它的设计目标是处理大量数据,并提供高可用性和水平...
标题"Cassandra-examples"指的是一个关于使用Java编程语言通过...通过深入学习这些示例,开发者不仅可以掌握Cassandra的基本操作,还能了解到如何在实际项目中使用Hector,提升其在大数据处理和分布式存储领域的技能。
Cassandra 使用 Memtable 和 SSTable 来存储数据。当写入操作发生时,首先会在 CommitLog 中记录,随后数据会被写入到对应的 Memtable 中。Memtable 是一种按 key 排序的内存结构,当其达到一定大小后,会被刷新到...
对象映射器是Hector中的一个重要组件,它允许开发人员使用面向对象的方式来操作数据库,而不是直接编写CQL(Cassandra查询语言)。 描述中的"updates-r-simple.zip, Java自动更新系统,无框架和签名"可能是指一个名...
6. **导入数据**:使用CQL或者第三方工具(如cqlsh、Astyanax、 Hector等)进行数据导入。 7. **监控和调整**:定期检查节点状态,监控性能指标,根据需求调整副本数量、缓存大小等配置。 总的来说,Apache ...
为了提高读写性能,Cassandra使用了Memtable和SSTable两种数据结构,以及Bloom Filter来避免不必要的磁盘I/O。 **Cassandra的查询语言CQL** Cassandra Query Language(CQL)是Cassandra提供的一种类似SQL的查询...
5. ** Tombstones**:Cassandra 使用 Tombstones 来标记已删除的数据,而不是立即清除,以避免删除操作的复杂性和数据恢复的可能性。随着时间推移,Tombstones 会经历 GCGracePeriod 后被清理。 6. **Compaction ...
Hadoop上的数据库系统,如HBase、Cassandra或Hadoop上的SQL引擎(如Hive、Pig和Impala),提供了处理大规模数据的解决方案。这些系统通常支持SQL查询,但其优化策略与传统的关系型数据库不同。例如,在Hive中,JOIN...
OptConCient 这是一个基于 Hector API 的 Java 客户端,它: 预测给定 subSLA 行的测试数据的最佳一致性级别(具有模型中参数延迟、吞吐量、数据包重传率和陈旧性的阈值)。 为给定训练模型的测试数据生成 ROC 曲线...