2016-10-05 5 views
0

У меня есть две базы данных Cassandra на двух разных хостах. Оба имеют таблицы с тем же самым определением. Как перенести данные из одного в другой?Как перенести данные из одной базы данных Cassandra в другую?

SparkConf sparkConf = new SparkConf().setAppName(App.APP_NAME) 
    .set("spark.cassandra.connection.host", App.CASSANDRA_HOST) 
    .set("spark.cassandra.auth.username", "user")    
    .set("spark.cassandra.auth.password", "pass") 
    .set("spark.cleaner.ttl", "3600"); 
SparkContext sparkContext = new SparkContext(sparkConf); 

JavaRDD<EventLog> logs = javaFunctions(sparkContext) 
    .cassandraTable("xyz", "event_log", mapRowTo(EventLog.class)); 
javaFunctions(logs).writerBuilder("xyz", "event_log", mapToRow(EventLog.class)).saveToCassandra(); 
sparkContext.stop(); 

В моей Java коде я прочитал из исходной БД и хочу использовать writerBuilder, чтобы записать его в другую БД. Где я могу разместить вторую конфигурацию БД и как ее написать?

+1

Почему вы хотите использовать Spark для своих целей? Это можно сделать с помощью возможностей Cassandra: https://docs.datastax.com/en/cassandra/2.1/cassandra/migrating.html – maxteneff

+0

@maxteneff. Я также занимаюсь фильтрацией. Документы не показывают, как перемещаться из одной базы данных в другую на разных хостах. Это только от БД к файлу и наоборот. – khateeb

ответ

0

Из docs, есть метод

def withConnector(connector: CassandraConnector): WriterBuilder 

Что вы можете позвонить, чтобы пройти в другой объект CassandraConnector с информацией кластера назначения. Это возвращает новый WriterBuilder, который вы бы назвали saveToCassandra.

Смежные вопросы