Вставьте данные в cassandra, используя драйвер datastax - PullRequest
0 голосов
/ 15 ноября 2018

Мы пытаемся вставить данные из CSV-файла в Cassandra, используя драйвер DataStax для Java. Какие существуют методы для этого?

В настоящее время мы используем запуск cqlsh для загрузки из файла CSV.

1 Ответ

0 голосов
/ 15 ноября 2018

Вопрос довольно расплывчатый.Обычно вы должны быть в состоянии предоставить код и привести пример чего-то, что не совсем подходит для вас.

При этом я только что провел (на этой неделе) урок по этому предмету для нашегоразработчики за работой.Поэтому я могу привести несколько быстрых примеров.

Прежде всего, у вас должен быть отдельный класс, созданный для обработки ваших объектов соединения Cassandra.Я обычно строю его с помощью пары конструкторов, чтобы его можно было вызывать несколькими разными способами.Но каждый по сути вызывает метод connect, который выглядит примерно так:

public void connect(String[] nodes, String user, String pwd, String dc) {
    QueryOptions qo = new QueryOptions();
    qo.setConsistencyLevel(ConsistencyLevel.LOCAL_ONE);

    cluster = Cluster.builder()
        .addContactPoints(nodes)
        .withCredentials(user,pwd)
        .withQueryOptions(qo)
        .withLoadBalancingPolicy(
            new TokenAwarePolicy(
                DCAwareRoundRobinPolicy.builder()
                .withLocalDc(dc)
                .build()
                )
        )
        .build();
        session = cluster.connect();

Имея это в виду, я также пишу несколько простых методов, чтобы показать некоторые функциональные возможности объекта session:

public ResultSet query(String strCQL) {
    return session.execute(strCQL);
}

public PreparedStatement prepare(String strCQL) {
  return session.prepare(strCQL);
}

public ResultSet query(BoundStatement bStatement) {
  return session.execute(bStatement);
}

После установки я могу вызывать эти методы из уровня обслуживания.Простой INSERT (с подготовкой оператора и привязкой к нему значений) выглядит следующим образом:

    String[] nodes = {"10.6.8.2","10.6.6.4"};
    CassandraConnection conn = new CassandraConnection(nodes, "aploetz", "flynnLives", "West-DC");

    String userID = "Aaron";
    String value = "whatever";
    String strINSERT = "INSERT INTO stackoverflow.timestamptest "
        + "(userid, activetime, value) "
        + "VALUES (?,dateof(now()),?)";     

    PreparedStatement pIStatement = conn.prepare(strINSERT);
    BoundStatement bIStatement = new BoundStatement(pIStatement);
    bIStatement.bind(userID, value);
    conn.query(bIStatement);

Кроме того, в драйвере Java DataStax есть папка «examples» в их репозитории Git.Вот ссылка на «основные» примеры , которые я рекомендую прочитать далее.

...