Java 类com.datastax.driver.core.BatchStatement 实例源码
项目:state-channels
文件:CassandraUtil.java
public static boolean untilApplied(Session session, BatchStatement.Type type, Consumer<BatchStatement> transaction) {
for (int i = 1; i <= MAX_RETRY; i ++) {
BatchStatement batchStatement = new BatchStatement(type);
transaction.accept(batchStatement);
if (batchStatement.size() == 0) return false;
boolean applied;
if (batchStatement.size() > 1) {
applied = session.execute(batchStatement).wasApplied();
} else {
Statement statement = Iterables.getOnlyElement(batchStatement.getStatements());
applied = session.execute(statement).wasApplied();
}
if (applied) return true;
log.warn("Attempt {}/{} failed executing {}", i, MAX_RETRY, batchStatement);
try {
Thread.sleep(100 * i);
} catch (InterruptedException e) {
throw new AttemptsFailedException(e);
}
}
throw new AttemptsFailedException();
}
项目:Lagerta
文件:CassandraSessionImpl.java
/**
* Tunes CQL statement execution options (consistency level, fetch option and etc.).
*
* @param statement Statement.
* @return Modified statement.
*/
private Statement tuneStatementExecutionOptions(Statement statement) {
String qry = "";
if (statement instanceof BoundStatement) {
qry = ((BoundStatement)statement).preparedStatement().getQueryString().trim().toLowerCase();
}
else if (statement instanceof PreparedStatement) {
qry = ((PreparedStatement)statement).getQueryString().trim().toLowerCase();
}
boolean readStatement = qry.startsWith("select");
boolean writeStatement = statement instanceof Batch || statement instanceof BatchStatement ||
qry.startsWith("insert") || qry.startsWith("delete") || qry.startsWith("update");
if (readStatement && readConsistency != null) {
statement.setConsistencyLevel(readConsistency);
}
if (writeStatement && writeConsistency != null) {
statement.setConsistencyLevel(writeConsistency);
}
if (fetchSize != null) {
statement.setFetchSize(fetchSize);
}
return statement;
}
项目:cassandra-java-driver-examples
文件:BatchStatementExample.java
public static void main(String[] args) {
Session session = Connection.connect();
BatchStatement batchStatement = new BatchStatement();
PreparedStatement preparedStatement = session.prepare("insert into user (id, name) values (?, ?)");
int i = 0;
while(i < 10) {
batchStatement.add(preparedStatement.bind(UUIDs.timeBased(), "user-" + i));
++i;
}
try {
ResultSet rs = session.execute(batchStatement);
System.out.println(rs);
} catch (Exception ex) {
ex.printStackTrace();
}
Connection.close();
}
项目:bdglue
文件:CassandraPublisher.java
public CassandraPublisher() {
super();
PropertyManagement properties = PropertyManagement.getProperties();
cassandraNode =
properties.getProperty(CassandraPublisherPropertyValues.CASSANDRA_CONNECT_NODE,
CassandraPublisherPropertyValues.CASSANDRA_CONNECT_NODE_DEFAULT);
batchSize =
properties.asInt(CassandraPublisherPropertyValues.CASSANDRA_BATCH_SIZE,
CassandraPublisherPropertyValues.CASSANDRA_BATCH_SIZE_DEFAULT);
flushFreq =
properties.asInt(CassandraPublisherPropertyValues.CASSANDRA_FLUSH_FREQ,
CassandraPublisherPropertyValues.CASSANDRA_FLUSH_FREQ_DEFAULT);
insertOnly =
properties.asBoolean(CassandraPublisherPropertyValues.CASSANDRA_INSERT_ONLY,
CassandraPublisherPropertyValues.CASSANDRA_INSERT_ONLY_DEFAULT);
batch = new BatchStatement(BatchStatement.Type.LOGGED);
map = new HashMap<>();
timer = new Timer();
// reinitialize things
publishEvents();
}
项目:dmaap-framework
文件:CassandraConfigDb.java
@Override
public void store(ConfigPath key, String data) throws ConfigDbException {
final BatchStatement batchStat = new BatchStatement();
batchStat.add(getStatement(StatementName.PUT_SETTING).bind(key.toString(), "", data));
ConfigPath parent;
ConfigPath child = key;
while ((parent = child.getParent()) != null) {
batchStat.add(getStatement(StatementName.PUT_SETTING).bind(parent.toString(), child.toString(), data));
child = parent;
}
session.execute(batchStat);
}
项目:ibm-performance-monitor
文件:ProfilingUtilities.java
/**
* Get the arguments of a statement in an ordered key-value array.
*
* @param arg0
* The statement.
* @return The key-value array.
*/
public static String[] getStatementArguments( Statement arg0 ) {
String[] returnValue = EMTPY_STRING_ARRAY;
if ( arg0 instanceof ProfiledBoundStatement ) {
returnValue = ( (ProfiledBoundStatement) arg0 ).getArgumentList();
} else if ( arg0 instanceof BatchStatement ) {
List<String> argumentList = new ArrayList<String>();
Collection<Statement> statements = ( (BatchStatement) arg0 ).getStatements();
for ( Statement statement : statements ) {
String[] statementArguments = getStatementArguments( statement );
Collections.addAll( argumentList, statementArguments );
}
returnValue = argumentList.toArray( new String[argumentList.size()] );
}
return returnValue;
}
项目:ibm-performance-monitor
文件:ProfilingUtilities.java
/**
* Get the name of a statement.
*
* @param arg0 The statement.
* @return The name used for logging.
*/
public static String getStatementName( Statement arg0 ) {
String returnValue = "unknown";
if ( arg0 instanceof RegularStatement ) {
returnValue = ( (RegularStatement) arg0 ).getQueryString();
} else if ( arg0 instanceof BoundStatement ) {
PreparedStatement preparedStatement = ( (BoundStatement) arg0 ).preparedStatement();
returnValue = preparedStatement.getQueryString();
} else if ( arg0 instanceof BatchStatement ) {
StringBuilder value = new StringBuilder( "Batch : " );
Collection<Statement> statements = ( (BatchStatement) arg0 ).getStatements();
boolean first = true;
for ( Statement statement : statements ) {
if ( first ) {
first = false;
} else {
value.append( ", " );
}
String statementName = getStatementName( statement );
value.append( statementName );
}
returnValue = value.toString();
}
return returnValue;
}
项目:AbacusUtil
文件:CassandraExecutor.java
public ResultSet batchInsert(final Class<?> targetClass, final Collection<? extends Map<String, Object>> propsList, final BatchStatement.Type type) {
N.checkArgument(N.notNullOrEmpty(propsList), "'propsList' can't be null or empty.");
final BatchStatement batchStatement = new BatchStatement(type == null ? BatchStatement.Type.LOGGED : type);
if (settings != null) {
batchStatement.setConsistencyLevel(settings.getConsistency());
batchStatement.setSerialConsistencyLevel(settings.getSerialConsistency());
batchStatement.setRetryPolicy(settings.getRetryPolicy());
if (settings.traceQuery) {
batchStatement.enableTracing();
} else {
batchStatement.disableTracing();
}
}
CP pair = null;
for (Map<String, Object> props : propsList) {
pair = prepareAdd(targetClass, props);
batchStatement.add(prepareStatement(pair.cql, pair.parameters.toArray()));
}
return session.execute(batchStatement);
}
项目:Docussandra
文件:DocumentRepositoryImpl.java
@Override
public Document update(Document entity)
{
Document old = read(entity.getId()); //will throw exception of doc is not found
entity.setCreatedAt(old.getCreatedAt());//copy over the original create date
Table table = entity.getTable();
PreparedStatement updateStmt = PreparedStatementFactory.getPreparedStatement(String.format(CREATE_CQL, table.toDbTable(), Columns.ID), getSession());
BoundStatement bs = new BoundStatement(updateStmt);
bindCreate(bs, entity);
BatchStatement batch = new BatchStatement(BatchStatement.Type.LOGGED);
batch.add(bs);//the actual update
try
{
List<BoundStatement> indexStatements = IndexMaintainerHelper.generateDocumentUpdateIndexEntriesStatements(getSession(), entity, bucketLocator);
for (BoundStatement boundIndexStatement : indexStatements)
{
batch.add(boundIndexStatement);//the index updates
}
getSession().execute(batch);
return entity;
} catch (IndexParseException e)
{
throw new RuntimeException(e);
}
}
项目:incubator-zeppelin-druid
文件:InterpreterLogicTest.java
@Test
public void should_generate_batch_statement() throws Exception {
//Given
Statement st1 = new SimpleStatement("SELECT * FROM users LIMIT 10;");
Statement st2 = new SimpleStatement("INSERT INTO users(id) VALUES(10);");
Statement st3 = new SimpleStatement("UPDATE users SET name = 'John DOE' WHERE id=10;");
CassandraQueryOptions options = new CassandraQueryOptions(Option.apply(QUORUM),
Option.<ConsistencyLevel>empty(),
Option.empty(),
Option.<RetryPolicy>empty(),
Option.empty());
//When
BatchStatement actual = helper.generateBatchStatement(UNLOGGED, options, toScalaList(asList(st1, st2, st3)));
//Then
assertThat(actual).isNotNull();
final List<Statement> statements = new ArrayList<>(actual.getStatements());
assertThat(statements).hasSize(3);
assertThat(statements.get(0)).isSameAs(st1);
assertThat(statements.get(1)).isSameAs(st2);
assertThat(statements.get(2)).isSameAs(st3);
assertThat(actual.getConsistencyLevel()).isSameAs(QUORUM);
}
项目:cassandra-kmean
文件:BatchTests.java
public void sendBatch(BatchStatement.Type type, boolean addCounter, boolean addNonCounter)
{
assert addCounter || addNonCounter;
BatchStatement b = new BatchStatement(type);
for (int i = 0; i < 10; i++)
{
if (addNonCounter)
b.add(noncounter.bind(i, "foo"));
if (addCounter)
b.add(counter.bind((long)i, i));
}
session.execute(b);
}
项目:camunda-engine-cassandra
文件:BulkDeleteProcessDefinitionByDeploymentId.java
public void perform(CassandraPersistenceSession session, Object parameter, BatchStatement flush) {
String deploymentId = (String) parameter;
Session s = session.getSession();
List<Row> processDefinitionsToDelete = s.execute(QueryBuilder.select("id", "key", "version").from(ProcessDefinitionTableHandler.TABLE_NAME).where(eq("deployment_id", deploymentId))).all();
List<String> ids = new ArrayList<String>();
for (Row processDefinitionToDelete : processDefinitionsToDelete) {
ids.add(processDefinitionToDelete.getString("id"));
flush.add(QueryBuilder.delete().all().from(ProcessDefinitionTableHandler.TABLE_NAME_IDX_VERSION)
.where(eq("key", processDefinitionToDelete.getString("key")))
.and(eq("version", processDefinitionToDelete.getInt("version"))));
}
flush.add(QueryBuilder.delete().all().from(ProcessDefinitionTableHandler.TABLE_NAME).where(in("id", ids)));
}
项目:zeppelin
文件:InterpreterLogicTest.java
@Test
public void should_generate_batch_statement() throws Exception {
//Given
Statement st1 = new SimpleStatement("SELECT * FROM users LIMIT 10;");
Statement st2 = new SimpleStatement("INSERT INTO users(id) VALUES(10);");
Statement st3 = new SimpleStatement("UPDATE users SET name = 'John DOE' WHERE id=10;");
CassandraQueryOptions options = new CassandraQueryOptions(Option.apply(QUORUM),
Option.<ConsistencyLevel>empty(),
Option.empty(),
Option.<RetryPolicy>empty(),
Option.empty(),
Option.empty());
//When
BatchStatement actual = helper.generateBatchStatement(UNLOGGED, options, toScalaList(asList(st1, st2, st3)));
//Then
assertThat(actual).isNotNull();
final List<Statement> statements = new ArrayList<>(actual.getStatements());
assertThat(statements).hasSize(3);
assertThat(statements.get(0)).isSameAs(st1);
assertThat(statements.get(1)).isSameAs(st2);
assertThat(statements.get(2)).isSameAs(st3);
assertThat(actual.getConsistencyLevel()).isSameAs(QUORUM);
}
项目:tempto
文件:CassandraBatchLoader.java
public void load(Iterator<List<Object>> rows)
{
PreparedStatement statement = session.prepare(insertQuery);
BatchStatement batch = createBatchStatement();
while (rows.hasNext()) {
if (batch.size() >= batchRowsCount) {
session.execute(batch);
batch = createBatchStatement();
}
List<Object> row = rows.next();
checkState(row.size() == columnsCount, "values count in a row is expected to be %d, but found: %d", columnsCount, row.size());
batch.add(statement.bind(row.toArray()));
}
if (batch.size() > 0) {
session.execute(batch);
}
}
项目:ignite
文件:CassandraSessionImpl.java
/**
* Tunes CQL statement execution options (consistency level, fetch option and etc.).
*
* @param statement Statement.
* @return Modified statement.
*/
private Statement tuneStatementExecutionOptions(Statement statement) {
String qry = "";
if (statement instanceof BoundStatement)
qry = ((BoundStatement)statement).preparedStatement().getQueryString().trim().toLowerCase();
else if (statement instanceof PreparedStatement)
qry = ((PreparedStatement)statement).getQueryString().trim().toLowerCase();
boolean readStatement = qry.startsWith("select");
boolean writeStatement = statement instanceof Batch || statement instanceof BatchStatement ||
qry.startsWith("insert") || qry.startsWith("delete") || qry.startsWith("update");
if (readStatement && readConsistency != null)
statement.setConsistencyLevel(readConsistency);
if (writeStatement && writeConsistency != null)
statement.setConsistencyLevel(writeConsistency);
if (fetchSize != null)
statement.setFetchSize(fetchSize);
return statement;
}
项目:cumulusrdf
文件:Cassandra2xDefaultMapDAO.java
@SuppressWarnings("unchecked")
@Override
public void delete(final K... keys) {
if (keys == null || keys.length == 0) {
return;
}
BatchStatement batchStatement = new BatchStatement();
for (K key : keys) {
if (key != null) {
ByteBuffer serializedKey = _keySerializer.serialize(key);
BoundStatement deleteStatement = _deleteStatement.bind(serializedKey);
batchStatement.add(deleteStatement);
}
}
_session.execute(batchStatement);
}
项目:cumulusrdf
文件:Cassandra2xDefaultMapDAO.java
@Override
public void setAll(final Map<K, V> pairs) {
if (pairs.size() == 0) {
return;
}
BatchStatement batchStatement = new BatchStatement();
for (Map.Entry<K, V> entry : pairs.entrySet()) {
batchStatement.add(getInsertStatement(entry.getKey(), entry.getValue()));
}
try {
_session.execute(batchStatement);
} catch (Exception e) {
_log.error("failed to insert batch of " + pairs.size() + " dictionary entries", e);
}
}
项目:scylla-tools-java
文件:BatchTests.java
public void sendBatch(BatchStatement.Type type, boolean addCounter, boolean addNonCounter)
{
assert addCounter || addNonCounter;
BatchStatement b = new BatchStatement(type);
for (int i = 0; i < 10; i++)
{
if (addNonCounter)
b.add(noncounter.bind(i, "foo"));
if (addCounter)
b.add(counter.bind((long)i, i));
}
session.execute(b);
}
项目:monasca-persister
文件:CassandraRepo.java
private void retryQuery(String id, Statement query, final long startTime, int retryCount,
DriverException e) throws DriverException {
if (retryCount >= maxWriteRetries) {
logger.error("[{}]: Query aborted after {} retry: ", id, retryCount, e.getMessage());
metricFailed.inc(((BatchStatement) query).size());
commitTimer.update(System.nanoTime() - startTime, TimeUnit.NANOSECONDS);
throw e;
} else {
logger.warn("[{}]: Query failed, retrying {} of {}: {} ", id, retryCount, maxWriteRetries,
e.getMessage());
try {
Thread.sleep(1000 * (1 << retryCount));
} catch (InterruptedException ie) {
logger.debug("[{}]: Interrupted: {}", id, ie);
}
_executeQuery(id, query, startTime, retryCount++);
}
}
项目:monasca-persister
文件:CassandraRepo.java
public int handleFlush_batch(String id) {
Statement query;
int flushedCount = 0;
BatchStatement batch = new BatchStatement(Type.UNLOGGED);
while ((query = queue.poll()) != null) {
flushedCount++;
batch.add(query);
}
executeQuery(id, batch, System.nanoTime());
metricCompleted.inc(flushedCount);
return flushedCount;
}
项目:monasca-persister
文件:CassandraMetricBatch.java
private void logTokenBatchMap(String name, Map<Token, Deque<BatchStatement>> map) {
if (logger.isDebugEnabled()) {
StringBuilder sb = new StringBuilder(name);
sb.append(": Size: ").append(map.size());
sb.append("; Tokens: |");
for (Entry<Token, Deque<BatchStatement>> entry : map.entrySet()) {
sb.append(entry.getKey().toString()).append(":");
for (BatchStatement bs : entry.getValue()) {
sb.append(bs.size()).append(",");
}
sb.append("|.");
}
logger.debug(sb.toString());
}
}
项目:monasca-persister
文件:CassandraMetricBatch.java
private void logReplicaBatchMap(String name, Map<Set<Host>, Deque<BatchStatement>> map) {
if (logger.isDebugEnabled()) {
StringBuilder sb = new StringBuilder(name);
sb.append(": Size: ").append(map.size());
sb.append(". Replicas: |");
for (Entry<Set<Host>, Deque<BatchStatement>> entry : map.entrySet()) {
for (Host host : entry.getKey()) {
sb.append(host.getAddress().toString()).append(",");
}
sb.append(":");
for (BatchStatement bs : entry.getValue()) {
sb.append(bs.size()).append(",");
}
sb.append("|");
}
logger.debug(sb.toString());
}
}
项目:GraphTrek
文件:BatchTests.java
public void sendBatch(BatchStatement.Type type, boolean addCounter, boolean addNonCounter)
{
assert addCounter || addNonCounter;
BatchStatement b = new BatchStatement(type);
for (int i = 0; i < 10; i++)
{
if (addNonCounter)
b.add(noncounter.bind(i, "foo"));
if (addCounter)
b.add(counter.bind((long)i, i));
}
session.execute(b);
}
项目:jena-nosql
文件:Cassandra2xMapDAO.java
@SuppressWarnings("unchecked")
@Override
public void delete(final K... keys) {
if (keys == null || keys.length == 0) {
return;
}
final BatchStatement batchStatement = new BatchStatement();
for (K key : keys) {
if (key != null) {
batchStatement.add(deleteStatement.bind(keySerializer.serialize(key)));
}
}
session.execute(batchStatement);
}
项目:bifroest
文件:PersistentCassandraDrain.java
@Override
public void output( Collection<Metric> metrics ) {
if( metrics.size() == 0 ) {
return;
}
Map<RetentionTable, BatchStatement> stms = LazyMap.<RetentionTable, BatchStatement>lazyMap( new HashMap<>(), () -> new BatchStatement() );
for ( Metric metric : metrics ) {
insertMetricIntoBatch( metric, stms );
}
KeyspaceMetadata metadata = cluster.getMetadata().getKeyspace( keyspace );
for (RetentionTable table : stms.keySet()) {
createTableIfNecessary( table, metadata );
}
for ( BatchStatement batch : stms.values() ) {
try {
session.execute( batch );
} catch ( WriteTimeoutException e ) {
log.info( "WriteTimeoutException while sending Metrics to cassandra." );
log.info( e.getMessage() );
log.info( "According to http://www.datastax.com/dev/blog/how-cassandra-deals-with-replica-failure, this is harmless" );
}
}
EventBusManager.fire( new DrainMetricOutputEvent( ( new PersistentCassandraDrainFactory<>().handledType() ), metrics.size() ) );
}
项目:bifroest
文件:CassandraAccessLayer.java
public void insertMetrics( RetentionTable table, Collection<Metric> metrics ) {
if ( dryRun ) {
log.debug( "Inserting " + metrics.toString() + " into " + table );
return;
}
if ( session == null ) {
open();
}
BatchStatement batch = new BatchStatement();
for ( Metric metric : metrics ) {
String[] columns = { COL_NAME, COL_TIME, COL_VALUE };
Object[] values = { metric.name(), metric.timestamp(), metric.value() };
Statement stm = QueryBuilder.insertInto( table.tableName() ).values( columns, values );
batch.add( stm );
}
session.execute( batch );
}
项目:Troilus
文件:MutationQuery.java
private void handle(final BatchStatement batchStmt, final UnmodifiableIterator<T> batchablesIt, final Function<T, ListenableFuture<Statement>> statementFetcher) {
if (batchablesIt.hasNext()) {
final ListenableFuture<Statement> statementFuture = statementFetcher.apply(batchablesIt.next());
Runnable resultHandler = new Runnable() {
@Override
public void run() {
try {
batchStmt.add(statementFuture.get());
handle(batchStmt, batchablesIt, statementFetcher);
} catch (InterruptedException | ExecutionException | RuntimeException e) {
setException(ListenableFutures.unwrapIfNecessary(e));
}
}
};
statementFuture.addListener(resultHandler, MoreExecutors.directExecutor());
} else {
set(batchStmt);
}
}
项目:glowroot
文件:CassandraAsyncIT.java
@Override
public void transactionMarker() throws Exception {
BatchStatement batchStatement = new BatchStatement();
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (100, 'f100', 'l100')"));
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (101, 'f101', 'l101')"));
PreparedStatement preparedStatement =
session.prepare("INSERT INTO test.users (id, fname, lname) VALUES (?, ?, ?)");
for (int i = 200; i < 210; i++) {
BoundStatement boundStatement = new BoundStatement(preparedStatement);
boundStatement.bind(i, "f" + i, "l" + i);
batchStatement.add(boundStatement);
}
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (300, 'f300', 'l300')"));
session.executeAsync(batchStatement).get();
}
项目:glowroot
文件:CassandraSyncIT.java
@Override
public void transactionMarker() throws Exception {
BatchStatement batchStatement = new BatchStatement();
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (100, 'f100', 'l100')"));
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (101, 'f101', 'l101')"));
PreparedStatement preparedStatement =
session.prepare("INSERT INTO test.users (id, fname, lname) VALUES (?, ?, ?)");
for (int i = 200; i < 210; i++) {
BoundStatement boundStatement = new BoundStatement(preparedStatement);
boundStatement.bind(i, "f" + i, "l" + i);
batchStatement.add(boundStatement);
}
batchStatement.add(new SimpleStatement(
"INSERT INTO test.users (id, fname, lname) VALUES (300, 'f300', 'l300')"));
session.execute(batchStatement);
}
项目:hawkular-metrics
文件:AvailabilityITest.java
private void addAvailabilityDataInThePast(Metric<AvailabilityType> metric, final Duration duration)
throws Exception {
try {
metricsService.setDataAccess(new DelegatingDataAccess(dataAccess) {
// @Override
public Observable<Integer> insertAvailabilityData(Metric<AvailabilityType> m, int ttl) {
int actualTTL = ttl - duration.toStandardSeconds().getSeconds();
long writeTime = now().minus(duration).getMillis() * 1000;
BatchStatement batchStatement = new BatchStatement(BatchStatement.Type.UNLOGGED);
for (DataPoint<AvailabilityType> a : m.getDataPoints()) {
batchStatement.add(insertAvailabilityDateWithTimestamp.bind(m.getMetricId().getTenantId(),
AVAILABILITY.getCode(), m.getMetricId().getName(), DPART,
getTimeUUID(a.getTimestamp()),
getBytes(a), actualTTL, writeTime));
}
return rxSession.execute(batchStatement).map(resultSet -> batchStatement.size());
}
});
metricsService.addDataPoints(AVAILABILITY, Observable.just(metric));
} finally {
metricsService.setDataAccess(dataAccess);
}
}
项目:deep-spark
文件:DeepCqlRecordWriter.java
/**
* Executes cql batch statements in Cassandra
*/
@Override
public void run() {
LOG.debug("[" + this + "] Executing batch write to cassandra");
try {
final PreparedStatement preparedStatement = sessionWithHost.prepare(cql);
final BatchStatement batchStatement = new BatchStatement(BatchStatement.Type.UNLOGGED);
for (final List<Object> record : records) {
batchStatement.add(preparedStatement.bind(record.toArray(new Object[record.size()])));
}
sessionWithHost.execute(batchStatement);
} catch (Exception e) {
LOG.error("[" + this + "] Exception occurred while trying to execute batch in cassandra: " +
e.getMessage());
}
}
项目:stratio-cassandra
文件:BatchTests.java
public void sendBatch(BatchStatement.Type type, boolean addCounter, boolean addNonCounter)
{
assert addCounter || addNonCounter;
BatchStatement b = new BatchStatement(type);
for (int i = 0; i < 10; i++)
{
if (addNonCounter)
b.add(noncounter.bind(i, "foo"));
if (addCounter)
b.add(counter.bind((long)i, i));
}
session.execute(b);
}
项目:pinpoint
文件:CassandraStatementExecuteQueryInterceptor.java
private String retrieveSql(Object args0) {
String sql;
if (args0 instanceof BoundStatement) {
sql = ((BoundStatement) args0).preparedStatement().getQueryString();
} else if (args0 instanceof RegularStatement) {
sql = ((RegularStatement) args0).getQueryString();
} else if (args0 instanceof StatementWrapper) {
// method to get wrapped statement is package-private, skip.
sql = null;
} else if (args0 instanceof BatchStatement) {
// we could unroll all the batched statements and append ; between them if need be but it could be too long.
sql = null;
} else if (args0 instanceof String) {
sql = (String) args0;
} else {
sql = null;
}
return sql;
}
项目:Decision
文件:FunctionsTestIT.java
@Test
public void testSaveToCassandra() throws Exception {
LOGGER.debug("Connecting to Cassandra Quorum: " + conf.getStringList("cassandra.hosts").toString());
SaveToCassandraActionExecutionFunction func = new SaveToCassandraActionExecutionFunction(
getHostsStringFromList(conf.getStringList("cassandra.hosts")), ProtocolOptions.DEFAULT_PORT, 50, BatchStatement.Type.UNLOGGED);
List<StratioStreamingMessage> list = new ArrayList<StratioStreamingMessage>();
message.setColumns(StreamsHelper.COLUMNS3);
list.add(message);
Exception ex = null;
try {
func.process(list);
} catch (Exception e) {
ex = e;
ex.printStackTrace();
}
assertNull("Expected null value", ex);
}
项目:atlas-deer
文件:CassandraEquivalenceGraphStore.java
@Override
protected void doStore(ImmutableSet<EquivalenceGraph> graphs) {
BatchStatement updateBatch = new BatchStatement();
updateBatch.setConsistencyLevel(write);
for (EquivalenceGraph graph : graphs) {
Long graphId = lowestId(graph);
ByteBuffer serializedGraph = serializer.serialize(graph);
updateBatch.add(graphInsert(graphId, serializedGraph));
for (Entry<Id, Adjacents> adjacency : graph.getAdjacencyList().entrySet()) {
updateBatch.add(indexInsert(adjacency.getKey().longValue(), graphId));
}
}
session.execute(updateBatch);
}
项目:atlas-deer
文件:DatastaxCassandraOrganisationStore.java
@Override
public Organisation write(Organisation organisation) {
metricRegistry.meter(writeMetricPrefix + METER_CALLED).mark();
try {
Id id = organisation.getId();
ByteBuffer serializedOrganisation = ByteBuffer.wrap(serializer.serialize(organisation)
.toByteArray());
BatchStatement batchStatement = new BatchStatement();
Statement writeOrganisation = rowUpdate.bind()
.setLong(ORGANISATION_ID, id.longValue())
.setBytes(DATA, serializedOrganisation);
Statement writeUri = organisationUriStore.prepareWritingStatement(organisation);
batchStatement.add(writeOrganisation);
batchStatement.add(writeUri);
session.execute(batchStatement);
return organisation;
} catch (RuntimeException e) {
metricRegistry.meter(writeMetricPrefix + METER_FAILURE).mark();
throw Throwables.propagate(e);
}
}
项目:logging-log4j2
文件:CassandraManager.java
private FactoryData(final SocketAddress[] contactPoints, final ColumnMapping[] columns, final boolean useTls,
final String clusterName, final String keyspace, final String table, final String username,
final String password, final boolean useClockForTimestampGenerator, final int bufferSize,
final boolean batched, final BatchStatement.Type batchType) {
super(bufferSize, null);
this.contactPoints = convertAndAddDefaultPorts(contactPoints);
this.columns = columns;
this.useTls = useTls;
this.clusterName = clusterName;
this.keyspace = keyspace;
this.table = table;
this.username = username;
this.password = password;
this.useClockForTimestampGenerator = useClockForTimestampGenerator;
this.batched = batched;
this.batchType = batchType;
}
项目:simulacron
文件:HttpPrimeBatchIntegrationTest.java
@Test
public void testBatchPrimeSimple() throws Exception {
String query = "INSERT INTO a.b(c, d) VALUES( (?, ?)";
Map<String, String> param_types = new HashMap<String, String>();
param_types.put("column1", "ascii");
param_types.put("column2", "int");
Map<String, Object> params = new HashMap<String, Object>();
params.put("column1", "column1");
params.put("column2", "2");
RequestPrime prime = HttpTestUtil.createSimpleParameterizedBatch(query, param_types, params);
HttpTestResponse response = server.prime(prime);
assertNotNull(response);
RequestPrime responseQuery = om.readValue(response.body, RequestPrime.class);
assertThat(responseQuery).isEqualTo(prime);
String contactPoint = HttpTestUtil.getContactPointString(server.getCluster(), 0);
BatchStatement statement =
HttpTestUtil.makeNativeBatchStatement(
Arrays.asList(query), Arrays.asList(Arrays.asList("column1", 2)));
ResultSet set = HttpTestUtil.executeQueryWithFreshSession(statement, contactPoint);
assertResult(set);
}
项目:simulacron
文件:HttpTestUtil.java
public static BatchStatement makeNativeBatchStatement(List<String> queries, List<List> values) {
BatchStatement statement = new BatchStatement();
Iterator<List> valuesIterator = values.iterator();
for (String query : queries) {
List value = valuesIterator.next();
statement.add(new SimpleStatement(query, value.toArray(new Object[value.size()])));
}
return statement;
}
项目:ts-benchmark
文件:CassandraDB.java
@Override
public Status insertMulti(List<TsPoint> points) {
long costTime = 0L;
if (points != null) {
Cluster cluster = null;
try {
// cluster = Cluster.builder().addContactPoint(CASSADRA_URL).build();
// Session session = cluster.connect(KEY_SPACE_NAME);
Session session = SessionManager.getSession();
BatchStatement batch = new BatchStatement();
PreparedStatement ps = session.prepare(
"INSERT INTO " + TABLE_NAME + "(timestamp,device_code,sensor_code,value) VALUES(?,?,?,?)");
for (TsPoint point : points) {
BoundStatement bs = ps.bind(new Date(point.getTimestamp()), point.getDeviceCode(),
point.getSensorCode(), Double.parseDouble(point.getValue().toString()));
batch.add(bs);
}
long startTime = System.nanoTime();
session.execute(batch);
long endTime = System.nanoTime();
costTime = endTime - startTime;
batch.clear();
// session.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cluster != null)
cluster.close();
}
}
// System.out.println("costTime=" + costTime);
return Status.OK(costTime);
}