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(); }