이것은 일반적인 마이그레이션 문제입니다. 이를위한 여러 가지 솔루션이 있습니다. (스파크 Dataframe, 스파크 SQL로 불리는)
Spark SQL and Spark Cassandra Connector:
스파크 JDBC는 API는 어떤 JDBC 소스에서 읽을 수 있습니다. 분할하지 않으면 덩어리로 읽을 수 있습니다. 그렇지 않으면 메모리가 부족합니다. 세분화는 또한 이주를 평행하게 만듭니다. 그런 다음 Cassandra Spark Connector가 작성한 데이터를 Cassandra에 씁니다. 이것은 내가 작업에서 사용한 가장 단순하고 효율적인 방법입니다.
Java Agents:
Java Agent는 일반 JDBC 또는 다른 라이브러리를 기반으로 작성한 후 Datastax 드라이버와 함께 Cassandra에 쓸 수 있습니다. 스파크 프로그램은 멀티 머신 - 멀티 스레드 방식으로 실행되며, 문제가 자동으로 해결되면 복구됩니다. 그러나 이와 같이 수동으로 에이전트를 작성하면 에이전트는 단일 시스템에서만 실행되며 멀티 스레딩은 코딩해야합니다.
Kafka Connectors
: Kafka는 메시징 중개인입니다. 그것은 간접적으로 마이그레이션에 사용될 수 있습니다. Kafka에는 다른 데이터베이스를 읽고 쓸 수있는 커넥터가 있습니다. JDBC 커넥터를 사용하여 PostGres 및 Cassandra 커넥터에서 읽고 Cassandra에 쓸 수 있습니다. 설치가 쉽지는 않지만 "코딩 불필요"라는 이점이 있습니다.
ETL Systems:
일부 ETL 시스템은 Cassandra를 지원하지만 개인적으로 시도하지 않았습니다.
내가 마이그레이션 스파크 카산드라와 스파크 SQL을 사용하여 몇 가지 장점을보고, 그들 중 일부는 다음과 같습니다
- 코드가 간결했다. 그것은 스파크 노드가 다운
- 오류 tolerance- 경우 스파크 마스터 UI 40 개 라인
- 멀티 시스템 (각 시스템에 다시 멀티 스레드)
- 작업 진행 상황과 통계 또는 스레드가/노동자가 다음 작업이 거기에 실패 거의 없었다 자동으로 다른 노드에서 시작 - 매우 긴 작업을 수행하는 데 적합합니다.
스파크를 알지 못하면 4GB 데이터를 작성할 수 있습니다.