如何指定要从 Cassandra 数据源中检索的数据 在此过程中,请在 CQL 查询中使用以下 open 子句: importPackage(Packages.java.util); importPackage(Packages.me.prettyprint.cassandra.serializers); importPackage(Packages.me.prettyprint.cassandra.service); importPackage(Packages.me.prettyprint.hector.api); importPackage(Packages.me.prettyprint.hector.api.beans); importPackage(Packages.me.prettyprint.hector.api.factory); importPackage(Packages.me.prettyprint.hector.api.query); importPackage(Packages.me.prettyprint.cassandra.model); var cluster = HFactory.getOrCreateCluster("Test Cluster",new CassandraHostConfigurator("192.168.218.246:9160")); var keyspace = HFactory.createKeyspace("users", cluster); var cqlQuery = new CqlQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); cqlQuery.setQuery("select * from User"); var resultCQL = cqlQuery.execute(); rowsIterator = resultCQL.get().iterator(); 还要使用以下 fetch 子句: if (rowsIterator.hasNext()) { var myrow = rowsIterator.next(); var cols = myrow.getColumnSlice().getColumns(); for( ii=0; ii < cols.size(); ii++ ){ row[cols.get(ii).getName()] = cols.get(ii).getValue(); } return true; }else{ return false; } 1 在数据资源管理器中,右键单击“数据集”,然后选择“新建数据集”。 2 在“新建数据集”中,指定以下信息: 1 在“选择数据源”中,选择要使用的 Cassandra 数据源。“数据集类型”将显示“HQL SELECT 查询”。 2 在“数据集名称”中,为该数据集输入名称。 3 选择“下一步”。 3 在输出列中,选择“添加”,然后添加要从该数据源中检索的必需输出列。对于每个输出列,您可以在“新建脚本数据集列”中指定下列值,如图 2-2 中所示: 名称 类型 别名 分析类型 显示名 显示名关键字 完成了指定数据集列属性时,选择“确定”。 图 2-2 添加输出列 所指定的输出列显示在“新建数据集”中,如图 2-3 中所示。在此示例中,输出列为 first、last 和 age。 图 2-3 指定要检索的输出列 4 选择“完成”。 5 在“脚本”中,从下拉菜单中选择某种类型的子句,然后指定必需的 CQL 子句。例如: 1 在“脚本”中,选择 open,然后指定与以下子句相似的 CQL 子句,如图 2-4 中所示: importPackage(Packages.java.util); importPackage(Packages.me.prettyprint.cassandra.serializers); importPackage(Packages.me.prettyprint.cassandra.service); importPackage(Packages.me.prettyprint.hector.api); importPackage(Packages.me.prettyprint.hector.api.beans); importPackage(Packages.me.prettyprint.hector.api.factory); importPackage(Packages.me.prettyprint.hector.api.query); importPackage(Packages.me.prettyprint.cassandra.model); var cluster = HFactory.getOrCreateCluster("Test Cluster",new CassandraHostConfigurator("192.168.218.246:9160")); var keyspace = HFactory.createKeyspace("users", cluster); var cqlQuery = new CqlQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); cqlQuery.setQuery("select * from User"); var resultCQL = cqlQuery.execute(); rowsIterator = resultCQL.get().iterator(); 图 2-4 指定 open 子句 2 在“脚本”中,选择 fetch,然后指定与以下子句相似的 CQL 子句,如图 2-5 中所示: if (rowsIterator.hasNext()) { var myrow = rowsIterator.next(); var cols = myrow.getColumnSlice().getColumns(); for( ii=0; ii < cols.size(); ii++ ){ row[cols.get(ii).getName()] = cols.get(ii).getValue(); } return true; }else{ return false; } 图 2-5 指定 fetch 子句 3 选择“预览结果”以查看由数据集返回的数据行。
在此过程中,请在 CQL 查询中使用以下 open 子句:
还要使用以下 fetch 子句: