技术开发 频道

MySQL迁移到Cassandra技巧:放弃SQL思想

  配置文件

  · log4j.properties: Log4j属性文件

  · cassandra.yaml: 存储配置文件。更多信息可参考storage configuration setup。

  以下为配置文件的目录结构:

META-INF/
         security
/
                  config
/
                         cassandra
/
                                   cassandra.properties

  属性文件的一个示例:

cassandra-cluster-name=TurmericCluster
cassandra
-host-ip=127.0.0.1
cassandra
-rpc-port=9160
cassandra
-my-keyspace=My-keyspace

#
column families
cassandra
-foo-column-family=foo
cassandra
-bar-column-family=bar

  使用方法

  假定关系数据库MySQL中有一个名为Foo的表。则:

  1. 创建BaseDao接口

public interface BaseDao {
          
public void delete(String key);
          
public Set getKeys();
          
public boolean  containsKey(String key);
          
public void save(String key, FooPojoClass  fooPojo);
          
public FooPojoClass find(String key);
}

  2. 创建FooDao接口

public interface FooDao extends BaseDao  {
}

  3. 创建FooDao implementation

  public class FooDaoImpl extends AbstractColumnFamilyDao

  
implements FooDao {

  
public FooDaoImpl(final String clusterName, final String host, final String keySpace, final String cf, final Class kTypeClass) {

  
super(clusterName, host, keySpace, kTypeClass, FooPojo.class, cf);

  }

  }

  自定义的代码

//initiates an embedded Cassandra Service
CassandraManager.initialize();

//creates our Foo Column Family
FooDao fooDao = new FooDaoImpl("myCluster", "127.0.0.1", "myKeyspace",
                
"myColumnFamilyName", String.class);

  至此,已经成功将一个关系表转换为一个Cassandra列族!

  用户可以参考UT类来查看它们具体是如何实现的。

0
相关文章