如何指定要從 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 在「輸出」直欄中,選擇「新增」,並新增必要的輸出直欄,以便從資料來源擷取。對於每一個輸出直欄,您可以在「新建 Script 資料集直欄」中指定下列值,如圖 2-2 所示: 名稱 類型 別名 分析類型 顯示名稱 顯示名稱索引鍵 當指定完資料集直欄內容時,請選擇「確定」。 圖 2-2 新增輸出直欄 指定的輸出直欄會出現在「新建資料集」中,如圖 2-3 所示。在這個範例中,輸出直欄是 first、last 和 age。 圖 2-3 指定要擷取的輸出直欄 4 選擇「完成」。 5 在 Script 中,從下拉功能表選取一種子句類型,並指定必要的 CQL 子句。例如: 1 在 Script 中,選取 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 在 Script 中,選取 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 子句: