저는 scala와 cassandra에서 새로 왔습니다. 나는 hector를 사용하여 java와 cassandra의 연결성을 안다. 그러나 카사 드라와 스칼라를 연결하는 법을 모르겠습니다. 나는 이것에 대한 간단한 예를 원한다.scaland를 통한 cassandra 클러스터 연결
답변
트위터에 의해 cassie을 포함하여 카산드라 연결을 지원하기 위해 만들어진 스칼라 프로젝트가 있었지만 모두 죽어가는 것처럼 보였습니다.
헥터가 알고 계시므로 클래스 패스에 헥터 항아리가 있으면 원하는 경우 스칼라에서 헥터 API를 사용할 수 있습니다. documentation에서 빌리는 예를 들어
, 당신은이 작업을 수행 할 수 있습니다 :
val myCluster = HFactory.getOrCreateCluster("test-cluster","localhost:9160")
또는 구문이 해제 될 수 있도록 내가이 자유를 썼다
val template = new ThriftColumnFamilyTemplate[String, String](ksp, columnFamily, StringSerializer.get(), StringSerializer.get())
,하지만 당신은 아이디어를 얻을 .
datastax java 드라이버를 사용하고 있습니다. 발전은 여전히 github에서 활발합니다. 나는 이전에 헥터를 보았지만 죽어가는 것처럼 보였다. 도움이되는 의사는 http://www.datastax.com/documentation/developer/java-driver/1.0/webhelp/index.html#java-driver/quick_start/qsQuickstart_c.html입니다. 첫 번째 예를 스칼라로 번역했습니다. 또한, typesafe activator에서 akka-cassandra 예제를보십시오. 건배.
object Hello extends App {
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import scala.collection.JavaConversions._
var cluster: Cluster = null
private var session: Session = null
def connect(node: String) {
cluster = Cluster.builder().addContactPoint(node).build()
val metadata = cluster.getMetadata()
printf("Connected to cluster: %s\n",
metadata.getClusterName())
metadata.getAllHosts() map {
case host =>
printf("Datatacenter: %s; Host: %s; Rack: %s\n",
host.getDatacenter(), host.getAddress(), host.getRack())
}
}
def close() {
cluster.shutdown()
}
this.connect("127.0.0.1");
this.close();
}
당신은 나에게 sbt 파일에 넣어야하는 라이브러리 의존성을 말할 수 있습니까? –
'libraryDependencies + = "com.datastax.cassandra"% "cassandra-driver-core"% "1.0.4"' –
오류가 발생합니다 - "추상 유형의 클래스를 찾을 수 없습니다"org.apache.cassandra.db .marshal.TimestampType '] " –
나는 상용구 코드를 최소화하기 위해 자바 드라이버의 스칼라 래퍼 작업을 해왔다. 당신은 여기를 찾을 수 :
class Db(session: com.datastax.driver.core.Session) {
implicit val cache = new SessionQueryCache[PlainConverter](session)
// class for binding input/output parameters
case class User(userId: Int, name: String)
def insertUser(user: User): Future[Unit] = cql"insert into users(userid, name) values (?, ?)".bind(user).execute
// returns Future[Iterator[User]]
def selectAllUsers: Future[Iterator[User]] = cql"select * from users".all[User]
// if no user is found will throw NoRowsSelectedException
def selectUser(userId: Int) = cql"select * from users where userId = $userId".one[User]
// if no user is found will return None, otherwise Some(User)
def selectUserIfFound(userId: Int) = cql"select * from users where userId = $userId".oneOption[User]
}
가 build.sbt 파일에이 줄을 추가하여 playframework 프로젝트에 라이브러리를 사용하려면 : 여기 https://github.com/InnovaCo/binders-cassandra
일부 카산드라 DB와 함께 작동 클래스의 예입니다 :
libraryDependencies += "eu.inn" %% "binders-cassandra" % "0.2.0"
- 1. cassandra 클러스터 모니터링
- 2. sstableloader를 사용하여 cassandra 클러스터 마이그레이션로드
- 3. Datastax Java Cassandra 드라이버에게 클러스터 연결 제한 시간을 알려주십시오
- 4. .NET 드라이버에서 Cassandra 2.0에 연결
- 5. Cassandra ASP.NET 연결 풀링
- 6. Cassandra 연결 모범 사례
- 7. Cassandra 클러스터 측에 LOCAL_QUORUM 일관성을 추가하는 방법
- 8. cassandra 클러스터 컬럼 변경을 마이그레이션하는 방법
- 9. 4 노드 Cassandra 클러스터, 각 50.00 %
- 10. 클러스터 환경의 고유 TimeUUID 대 Cassandra
- 11. Cassandra 클러스터 링에없는 노드에서 sstableloader를 사용하는 방법
- 12. BigCouch 클러스터 연결 문제
- 13. Windows에서 Cassandra 샌드 박스에 연결
- 14. 원격 Cassandra (1.2.1) 서버 연결
- 15. cassandra 단일 노드 연결 오류
- 16. Apache Cassandra JDBC 연결 오류
- 17. Hadoop을 통한 Cassandra 및 Mahout 확장
- 18. nodejs - 클러스터 연결 해제/종료
- 19. IBM MQ 클러스터 연결 문제
- 20. 도쿄 캐비넷 클러스터 및 PHP (memcache를 통한)
- 21. cassandra : lb를 사용하여 cassandra 클러스터를 연결하는 방법?
- 22. DB jdbc 연결 프록시를 통한 고 가용성?
- 23. HTTPS를 통한 RavenDB 연결
- 24. API를 통한 TFT 연결
- 25. 퍼티를 통한 vps 연결
- 26. 클래스를 통한 데이터베이스 연결
- 27. TCP를 통한 원격 연결
- 28. UDP를 통한 프록시 연결
- 29. Flyway를 통한 ODBC 연결
- 30. 로그인을 통한 PHP 연결
이것은 나쁜 조언입니다. @ kfer38에서 제안한 것처럼 기본 Java 드라이버를 사용해야합니다. –
아이스크림 아이스크림에 타바스코 소스를 넣으라고 누군가에게 말하는 것은 "나쁜 조언"입니다. Scala 구문 (Scala로 작성된 API와 반대)을 사용하여 모든 Java API를 통합 할 수 있다는 폭 넓은 관점을 놓쳤습니다. OP의 경험으로 인해 Hector를 예로 들었습니다. 나의 요점의 또 다른 예를 생각해 내기 위해 @ kfer38에 대한 명성. Datastax 드라이버가 Hector와 Cassandra 클라이언트를 비교하는 방법은이 문제의 범위를 벗어납니다. – Vidya
아마도 "나쁜 조언"이 너무 강합니다. 군대에서 그는 헥터에 대해 구체적으로 묻습니다. 그러나 새로운 코드를 작성한다는 점에서 스칼라가 처음으로 카산드라에 액세스한다는 사실로부터도 분명합니다.이 경우 효과적으로 비추천 라이브러리를 사용하는 것이 좋지 않습니다. 현재 네이티브 Java 라이브러리 만 유효한 JVM 기반 옵션으로 간주되어야합니다. –