2013-09-03 2 views
0

Gradle을 통해 CQL3 스크립트를 실행해야한다는 요구 사항이 있습니다. cassandra 플러그인을 Gradle에 동일하게 적용하거나 다른 방법으로 빌드 자체에서 CQL3 스크립트를 실행할 수 있습니다. 제발 제안 해주세요.cql3 스크립트를 실행하는 Gradle 플러그인

Dawood에는

답변

1

당신은 buildscript 클래스 경로에 아 스티 아낙 스 같은 카산드라 클라이언트를 추가 한 다음 Gradle을 스크립트에서 직접 사용할 수 있습니다. 예 :

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     compile 'com.netflix.astyanax:astyanax-cassandra:1.56.42' 
    } 
} 

task(doCql) << { 
    AstyanaxContext<Keyspace> context = new AstyanaxContext.Builder() 
     .forCluster("ClusterName") 
     .forKeyspace("KeyspaceName") 
     .withAstyanaxConfiguration(new AstyanaxConfigurationImpl()  
      .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE) 
      .setCqlVersion("3.0.0") 
      .setTargetCassandraVersion("1.2") 
     ) 
     .withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool") 
      .setPort(9160) 
      .setMaxConnsPerHost(1) 
      .setSeeds("127.0.0.1:9160") 
     ) 
     .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) 
     .buildKeyspace(ThriftFamilyFactory.getInstance()); 

    context.start(); 
    Keyspace keyspace = context.getClient(); 
    result = keyspace 
     .prepareQuery(CQL3_CF) 
     .withCql("SELECT * FROM employees WHERE empId='111';") 
     .execute(); 

    for (Row<Integer, String> row : result.getResult().getRows()) { 
     LOG.info("CQL Key: " + row.getKey()); 

     ColumnList<String> columns = row.getColumns(); 

     LOG.info(" first_name : " + columns.getStringValue ("first_name", null)); 
     LOG.info(" last_name : " + columns.getStringValue ("last_name", null)); 
    } 
}