use of com.datastax.oss.driver.api.core.cql.Row in project rocketmq-externals by apache.
the class Schema method load.
public void load() throws Exception {
dbMap = new HashMap<>();
Select selectFrom = QueryBuilder.selectFrom(SCHEMA_SYSTEM_SCHEMA, TABLE_KEYSPACES).column(COLUMN_KEYSPACE_NAME);
SimpleStatement stmt;
boolean finishUpdate = false;
LOGGER.info("trying to execute sql query,{}", selectFrom.asCql());
ResultSet result = null;
try {
while (!cqlSession.isClosed() && !finishUpdate) {
stmt = selectFrom.build();
result = cqlSession.execute(stmt);
if (result.wasApplied()) {
LOGGER.info("update table success, executed cql query {}", selectFrom.asCql());
}
finishUpdate = true;
}
for (Row row : result) {
String dbName = row.getString(COLUMN_KEYSPACE_NAME);
if (!IGNORED_DATABASES.contains(dbName) && dbTableMap.keySet().contains(dbName)) {
Database database = new Database(dbName, cqlSession, dbTableMap.get(dbName), tableFilterMap);
dbMap.put(dbName, database);
}
}
} catch (Exception e) {
LOGGER.error("init cassandra Schema failure,{}", e);
}
for (Database db : dbMap.values()) {
db.init();
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project rocketmq-externals by apache.
the class Database method init.
public void init() {
Select selectFrom = QueryBuilder.selectFrom(SCHEMA_SYSTEM_SCHEMA, TABLE_COLUMNS).all().whereColumn(COLUMN_KEYSPACE_NAME).isEqualTo(QueryBuilder.literal(name));
SimpleStatement stmt;
boolean finishUpdate = false;
LOGGER.info("trying to execute sql query,{}", selectFrom.asCql());
ResultSet result = null;
try {
while (!cqlSession.isClosed() && !finishUpdate) {
stmt = selectFrom.build();
result = cqlSession.execute(stmt);
if (result.wasApplied()) {
LOGGER.info("query columns success, executed cql query {}", selectFrom.asCql());
}
finishUpdate = true;
}
for (Row row : result) {
String tableName = row.getString(COLUMN_TABLE_NAME);
String columnName = row.getString(COLUMN_COLUMN_NAME);
String columnType = row.getString(COLUMN_TYPE);
ColumnParser columnParser = ColumnParser.getColumnParser(columnType, columnType, GENERAL_CHARSET);
if (!tableWhiteList.contains(tableName)) {
continue;
}
if (!tableMap.containsKey(tableName)) {
addTable(tableName);
}
Table table = tableMap.get(tableName);
table.addCol(columnName);
table.addParser(columnParser);
table.addRawDataType(columnType);
table.setFilterMap(tableFilterMap.get(tableName));
}
} catch (Exception e) {
LOGGER.error("init cassandra Schema failure,{}", e);
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project janusgraph by JanusGraph.
the class CQLResultSetKeyIteratorTest method testEmpty.
@Test
public void testEmpty() throws IOException {
final Array<Row> rows = Array.empty();
final ResultSet resultSet = mock(ResultSet.class);
when(resultSet.iterator()).thenReturn(rows.iterator());
final CQLColValGetter getter = new CQLColValGetter(new EntryMetaData[0]);
try (final CQLResultSetKeyIterator resultSetKeyIterator = new CQLResultSetKeyIterator(ALL_COLUMNS, getter, resultSet)) {
assertFalse(resultSetKeyIterator.hasNext());
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project janusgraph by JanusGraph.
the class CQLResultSetKeyIteratorTest method generateMockedResultSet.
private ResultSet generateMockedResultSet(Array<Tuple2<ByteBuffer, Array<Tuple2<ByteBuffer, ByteBuffer>>>> keysMap) {
final Seq<Row> rows = keysMap.flatMap(tuple -> tuple._2.map(columnAndValue -> {
final Row row = mock(Row.class);
when(row.getByteBuffer("key")).thenReturn(tuple._1);
when(row.getByteBuffer("column1")).thenReturn(columnAndValue._1);
when(row.getByteBuffer("value")).thenReturn(columnAndValue._2);
return row;
}));
final ResultSet resultSet = mock(ResultSet.class);
when(resultSet.iterator()).thenReturn(rows.iterator());
return resultSet;
}
use of com.datastax.oss.driver.api.core.cql.Row in project thingsboard by thingsboard.
the class CassandraToSqlTable method migrateToSql.
public void migrateToSql(GuavaSession session, Connection conn) throws SQLException {
log.info("[{}] Migrating data from cassandra '{}' Column Family to '{}' SQL table...", this.sqlTableName, this.cassandraCf, this.sqlTableName);
DatabaseMetaData metadata = conn.getMetaData();
java.sql.ResultSet resultSet = metadata.getColumns(null, null, this.sqlTableName, null);
while (resultSet.next()) {
String name = resultSet.getString("COLUMN_NAME");
int sqlType = resultSet.getInt("DATA_TYPE");
int size = resultSet.getInt("COLUMN_SIZE");
CassandraToSqlColumn column = this.getColumn(name);
column.setSize(size);
column.setSqlType(sqlType);
}
this.sqlInsertStatement = createSqlInsertStatement(conn);
Statement cassandraSelectStatement = createCassandraSelectStatement();
cassandraSelectStatement.setPageSize(100);
ResultSet rs = session.execute(cassandraSelectStatement);
Iterator<Row> iter = rs.iterator();
int rowCounter = 0;
List<CassandraToSqlColumnData[]> batchData;
boolean hasNext;
do {
batchData = this.extractBatchData(iter);
hasNext = batchData.size() == this.batchSize;
this.batchInsert(batchData, conn);
rowCounter += batchData.size();
log.info("[{}] {} records migrated so far...", this.sqlTableName, rowCounter);
} while (hasNext);
this.sqlInsertStatement.close();
log.info("[{}] {} total records migrated.", this.sqlTableName, rowCounter);
log.info("[{}] Finished migration data from cassandra '{}' Column Family to '{}' SQL table.", this.sqlTableName, this.cassandraCf, this.sqlTableName);
}
Aggregations