2017-09-13 3 views
1

Ab sofort zu schreiben, ich bin in der Lage zu Cassandra über den folgenden Code verbinden:Mit Spring Batch zu einer Cassandra Datenbank

import com.datastax.driver.core.Cluster; 
import com.datastax.driver.core.Session; 

public static Session connection() { 
    Cluster cluster = Cluster.builder() 
     .addContactPoints("IP1", "IP2") 
     .withCredentials("user", "password") 
     .withSSL() 
     .build(); 
    Session session = null; 
    try { 
     session = cluster.connect("database_name"); 
     session.execute("CQL Statement"); 
    } finally { 
     IOUtils.closeQuietly(session); 
     IOUtils.closeQuietly(cluster); 
    } 
    return session; 
} 

Das Problem ist, dass ich in einem Spring Batch zu Cassandra schreiben muß Projekt. Die meisten Starter-Kits scheinen einen JdbcBatchItemWriter zu verwenden, um von einem Chunk in eine MySQL-Datenbank zu schreiben. Ist das möglich? Es scheint, dass ein JdbcBatchItemWriter keine Verbindung zu einer Cassandra-Datenbank herstellen kann.

Der aktuelle itemwriter Code ist unten:

@Bean 
public JdbcBatchItemWriter<Person> writer() { 
    JdbcBatchItemWriter<Person> writer = new JdbcBatchItemWriter<Person>(); 
    writer.setItemSqlParameterSourceProvider(new 
     BeanPropertyItemSqlParameterSourceProvider<Person>()); 
    writer.setSql("INSERT INTO people (first_name, last_name) VALUES 
     (:firstName, :lastName)"); 
    writer.setDataSource(dataSource); 
    return writer; 
} 

Antwort

2

Spring Data Cassandra bietet Repository Abstraktionen für Cassandra, die Sie sollten mit dem RepositoryItemWriter in Verbindung zu verwenden, der Lage sein, Cassandra von Spring Batch zu schreiben.

+1

Ich versuche zu tun, was Sie vorgeschlagen haben. Können Sie weitere Einblicke geben? –

Verwandte Themen