ドキュメントと関連資料
▼Scala/Lift関連Lift本家
Scala本家
ScalaでWeb開発 (1) Scala, Maven, Liftをインストール
scalaのWebフレームワーク liftで遊ぶ 目次
Hectar Client Doc(ScalaとCassandraのラッパー)
▼Cassandra関連
▼IDE
▼ビルドツール
▼その他
Google Code Search(Githubなどにコミットされているソースコードを見れます)
私はNetBeans+Maven+Scala/Lift+Cassandraの環境で構築しました。
Hectorを使うと便利
Hectorライブラリを使うとデータの取得、追加、削除をシンプルに記述出来ます。
【取得例】
クラスター名:ST Cluster
キースペース名:ST KeySpace
カラムファミリ名:Index
キー:seiya.terashima@xxx.com
カラム:id
package com.seiyablogproject.snippet
import _root_.scala.xml.NodeSeq
import _root_.net.liftweb.util.Helpers
import Helpers._
import me.prettyprint.cassandra.serializers.StringSerializer
import me.prettyprint.hector.api.{Cluster,Keyspace}
import me.prettyprint.hector.api.beans.HColumn
import me.prettyprint.hector.api.exceptions.HectorException
import me.prettyprint.hector.api.factory.HFactory
import me.prettyprint.hector.api.mutation.Mutator
import me.prettyprint.hector.api.query.{ColumnQuery,QueryResult}
class HelloWorld {
def test(in: NodeSeq): NodeSeq = {
//クラスタ接続
val cluster = HFactory.getOrCreateCluster("ST Cluster", "localhost:9160")
//キースペース接続
val keyspace = HFactory.createKeyspace("ST KeySpace", cluster)
//クエリ
val columnQuery = HFactory.createStringColumnQuery(keyspace)
//クエリ実行&結果セット取得&値取得
val uid = columnQuery
.setColumnFamily("Index")
.setKey("seiya.terashima@xxx.com")
.setName("id").execute.get.getValue
//クラスタ接続をシャットダウン
cluster.getConnectionManager.shutdown
}
}
リアルタイムアプリを作っていて実感したのは、やはりLLには限界があるということ。
かといって1社が独占している技術にコミットメントするフラッシャーにもなりたくない。
現時点ではScala/Liftがベストプラクティスかな。
【取得例】
クラスター名:ST Cluster
キースペース名:ST KeySpace
カラムファミリ名:Index
キー:seiya.terashima@xxx.com
カラム:id
package com.seiyablogproject.snippet
import _root_.scala.xml.NodeSeq
import _root_.net.liftweb.util.Helpers
import Helpers._
import me.prettyprint.cassandra.serializers.StringSerializer
import me.prettyprint.hector.api.{Cluster,Keyspace}
import me.prettyprint.hector.api.beans.HColumn
import me.prettyprint.hector.api.exceptions.HectorException
import me.prettyprint.hector.api.factory.HFactory
import me.prettyprint.hector.api.mutation.Mutator
import me.prettyprint.hector.api.query.{ColumnQuery,QueryResult}
class HelloWorld {
def test(in: NodeSeq): NodeSeq = {
//クラスタ接続
val cluster = HFactory.getOrCreateCluster("ST Cluster", "localhost:9160")
//キースペース接続
val keyspace = HFactory.createKeyspace("ST KeySpace", cluster)
//クエリ
val columnQuery = HFactory.createStringColumnQuery(keyspace)
//クエリ実行&結果セット取得&値取得
val uid = columnQuery
.setColumnFamily("Index")
.setKey("seiya.terashima@xxx.com")
.setName("id").execute.get.getValue
//クラスタ接続をシャットダウン
cluster.getConnectionManager.shutdown
}
}
リアルタイムアプリを作っていて実感したのは、やはりLLには限界があるということ。
かといって1社が独占している技術にコミットメントするフラッシャーにもなりたくない。
現時点ではScala/Liftがベストプラクティスかな。
0 件のコメント:
コメントを投稿