Search in sources :

Example 6 with Row

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();
    }
}
Also used : SimpleStatement(com.datastax.oss.driver.api.core.cql.SimpleStatement) Select(com.datastax.oss.driver.api.querybuilder.select.Select) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Row(com.datastax.oss.driver.api.core.cql.Row)

Example 7 with Row

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);
    }
}
Also used : ColumnParser(org.apache.rocketmq.connect.cassandra.schema.column.ColumnParser) SimpleStatement(com.datastax.oss.driver.api.core.cql.SimpleStatement) Select(com.datastax.oss.driver.api.querybuilder.select.Select) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Row(com.datastax.oss.driver.api.core.cql.Row)

Example 8 with Row

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());
    }
}
Also used : ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Row(com.datastax.oss.driver.api.core.cql.Row) Test(org.junit.jupiter.api.Test)

Example 9 with Row

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;
}
Also used : Tuple(io.vavr.Tuple) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) EntryMetaData(org.janusgraph.diskstorage.EntryMetaData) SliceQuery(org.janusgraph.diskstorage.keycolumnvalue.SliceQuery) Array(io.vavr.collection.Array) IOException(java.io.IOException) Random(java.util.Random) Mockito.when(org.mockito.Mockito.when) Function1(io.vavr.Function1) RecordIterator(org.janusgraph.diskstorage.util.RecordIterator) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.jupiter.api.Test) Tuple2(io.vavr.Tuple2) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) Entry(org.janusgraph.diskstorage.Entry) StaticBuffer(org.janusgraph.diskstorage.StaticBuffer) BufferUtil(org.janusgraph.diskstorage.util.BufferUtil) Iterator(io.vavr.collection.Iterator) Seq(io.vavr.collection.Seq) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Row(com.datastax.oss.driver.api.core.cql.Row) Mockito.mock(org.mockito.Mockito.mock) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Row(com.datastax.oss.driver.api.core.cql.Row)

Example 10 with Row

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);
}
Also used : SimpleStatement(com.datastax.oss.driver.api.core.cql.SimpleStatement) PreparedStatement(java.sql.PreparedStatement) Statement(com.datastax.oss.driver.api.core.cql.Statement) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Row(com.datastax.oss.driver.api.core.cql.Row) DatabaseMetaData(java.sql.DatabaseMetaData)

Aggregations

Row (com.datastax.oss.driver.api.core.cql.Row)11 ResultSet (com.datastax.oss.driver.api.core.cql.ResultSet)8 SimpleStatement (com.datastax.oss.driver.api.core.cql.SimpleStatement)5 Select (com.datastax.oss.driver.api.querybuilder.select.Select)3 Test (org.junit.jupiter.api.Test)3 PreparedStatement (com.datastax.oss.driver.api.core.cql.PreparedStatement)2 Statement (com.datastax.oss.driver.api.core.cql.Statement)2 ArrayList (java.util.ArrayList)2 ColumnParser (org.apache.rocketmq.connect.cassandra.schema.column.ColumnParser)2 Entry (org.janusgraph.diskstorage.Entry)2 StaticBuffer (org.janusgraph.diskstorage.StaticBuffer)2 BoundStatement (com.datastax.oss.driver.api.core.cql.BoundStatement)1 BoundStatementBuilder (com.datastax.oss.driver.api.core.cql.BoundStatementBuilder)1 FutureCallback (com.google.common.util.concurrent.FutureCallback)1 Function1 (io.vavr.Function1)1 Tuple (io.vavr.Tuple)1 Tuple2 (io.vavr.Tuple2)1 Array (io.vavr.collection.Array)1 Iterator (io.vavr.collection.Iterator)1 Seq (io.vavr.collection.Seq)1