Search in sources :

Example 6 with AccumuloRyaQueryEngine

use of org.apache.rya.accumulo.query.AccumuloRyaQueryEngine in project incubator-rya by apache.

the class AccumuloRyaDAOTest method testQueryCollectionRegex.

@Test
public void testQueryCollectionRegex() throws Exception {
    RyaURI cpu = new RyaURI(litdupsNS + "cpu");
    RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
    RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
    RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
    RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
    RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
    RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
    RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
    dao.add(new RyaStatement(cpu, loadPerc, uri1));
    dao.add(new RyaStatement(cpu, loadPerc, uri2));
    dao.add(new RyaStatement(cpu, loadPerc, uri3));
    dao.add(new RyaStatement(cpu, loadPerc, uri4));
    dao.add(new RyaStatement(cpu, loadPerc, uri5));
    dao.add(new RyaStatement(cpu, loadPerc, uri6));
    AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
    Collection<RyaStatement> coll = new ArrayList();
    coll.add(new RyaStatement(null, loadPerc, uri1));
    coll.add(new RyaStatement(null, loadPerc, uri2));
    conf.setRegexPredicate(loadPerc.getData());
    CloseableIteration<RyaStatement, RyaDAOException> iter = queryEngine.batchQuery(coll, conf);
    int count = 0;
    while (iter.hasNext()) {
        count++;
        iter.next();
    }
    iter.close();
    assertEquals(2, count);
    conf.setRegexPredicate("notLoadPerc");
    iter = queryEngine.batchQuery(coll, conf);
    count = 0;
    while (iter.hasNext()) {
        count++;
        iter.next();
    }
    iter.close();
    assertEquals(0, count);
}
Also used : RyaURI(org.apache.rya.api.domain.RyaURI) ArrayList(java.util.ArrayList) RyaStatement(org.apache.rya.api.domain.RyaStatement) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) RyaDAOException(org.apache.rya.api.persist.RyaDAOException) Test(org.junit.Test)

Example 7 with AccumuloRyaQueryEngine

use of org.apache.rya.accumulo.query.AccumuloRyaQueryEngine in project incubator-rya by apache.

the class AccumuloRyaDAOTest method testQuery.

// TOOD: Add test for set of queries
@Test
public void testQuery() throws Exception {
    RyaURI cpu = new RyaURI(litdupsNS + "cpu");
    RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
    RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
    RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
    RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
    RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
    RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
    RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
    dao.add(new RyaStatement(cpu, loadPerc, uri1));
    dao.add(new RyaStatement(cpu, loadPerc, uri2));
    dao.add(new RyaStatement(cpu, loadPerc, uri3));
    dao.add(new RyaStatement(cpu, loadPerc, uri4));
    dao.add(new RyaStatement(cpu, loadPerc, uri5));
    dao.add(new RyaStatement(cpu, loadPerc, uri6));
    AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
    Collection<RyaStatement> coll = new ArrayList();
    coll.add(new RyaStatement(null, loadPerc, uri1));
    coll.add(new RyaStatement(null, loadPerc, uri2));
    CloseableIteration<RyaStatement, RyaDAOException> iter = queryEngine.batchQuery(coll, conf);
    int count = 0;
    while (iter.hasNext()) {
        count++;
        iter.next();
    }
    iter.close();
    assertEquals(2, count);
    // now use batchscanner
    AccumuloRdfConfiguration queryConf = new AccumuloRdfConfiguration(conf);
    queryConf.setMaxRangesForScanner(2);
    coll = new ArrayList();
    coll.add(new RyaStatement(null, loadPerc, uri1));
    coll.add(new RyaStatement(null, loadPerc, uri2));
    coll.add(new RyaStatement(null, loadPerc, uri3));
    coll.add(new RyaStatement(null, loadPerc, uri4));
    iter = queryEngine.batchQuery(coll, queryConf);
    // old code had a weird behaviour that could not perform hasNext consecutively
    assertTrue(iter.hasNext());
    assertTrue(iter.hasNext());
    assertTrue(iter.hasNext());
    count = 0;
    while (iter.hasNext()) {
        count++;
        assertTrue(iter.hasNext());
        iter.next();
    }
    iter.close();
    assertEquals(4, count);
}
Also used : RyaURI(org.apache.rya.api.domain.RyaURI) ArrayList(java.util.ArrayList) RyaStatement(org.apache.rya.api.domain.RyaStatement) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) RyaDAOException(org.apache.rya.api.persist.RyaDAOException) Test(org.junit.Test)

Example 8 with AccumuloRyaQueryEngine

use of org.apache.rya.accumulo.query.AccumuloRyaQueryEngine in project incubator-rya by apache.

the class AccumuloRyaDAOTest method testQueryCollectionRegexWBatchScanner.

@Test
public void testQueryCollectionRegexWBatchScanner() throws Exception {
    RyaURI cpu = new RyaURI(litdupsNS + "cpu");
    RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
    RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
    RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
    RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
    RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
    RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
    RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
    dao.add(new RyaStatement(cpu, loadPerc, uri1));
    dao.add(new RyaStatement(cpu, loadPerc, uri2));
    dao.add(new RyaStatement(cpu, loadPerc, uri3));
    dao.add(new RyaStatement(cpu, loadPerc, uri4));
    dao.add(new RyaStatement(cpu, loadPerc, uri5));
    dao.add(new RyaStatement(cpu, loadPerc, uri6));
    AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
    AccumuloRdfConfiguration queryConf = new AccumuloRdfConfiguration(conf);
    queryConf.setMaxRangesForScanner(1);
    Collection<RyaStatement> coll = new ArrayList();
    coll.add(new RyaStatement(null, loadPerc, uri1));
    coll.add(new RyaStatement(null, loadPerc, uri2));
    conf.setRegexPredicate(loadPerc.getData());
    CloseableIteration<RyaStatement, RyaDAOException> iter = queryEngine.batchQuery(coll, queryConf);
    int count = 0;
    while (iter.hasNext()) {
        count++;
        iter.next();
    }
    iter.close();
    assertEquals(2, count);
    queryConf.setRegexPredicate("notLoadPerc");
    iter = queryEngine.batchQuery(coll, queryConf);
    count = 0;
    while (iter.hasNext()) {
        count++;
        iter.next();
    }
    iter.close();
    assertEquals(0, count);
}
Also used : RyaURI(org.apache.rya.api.domain.RyaURI) ArrayList(java.util.ArrayList) RyaStatement(org.apache.rya.api.domain.RyaStatement) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) RyaDAOException(org.apache.rya.api.persist.RyaDAOException) Test(org.junit.Test)

Example 9 with AccumuloRyaQueryEngine

use of org.apache.rya.accumulo.query.AccumuloRyaQueryEngine in project incubator-rya by apache.

the class AccumuloRyaDAOTest method testMaxResults.

@Test
public void testMaxResults() throws Exception {
    RyaURI cpu = new RyaURI(litdupsNS + "cpu");
    RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
    dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + "uri1")));
    dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + "uri2")));
    dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + "uri3")));
    dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + "uri4")));
    dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + "uri5")));
    AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
    AccumuloRdfConfiguration queryConf = new AccumuloRdfConfiguration(conf);
    long limit = 3l;
    queryConf.setLimit(limit);
    CloseableIteration<RyaStatement, RyaDAOException> iter = queryEngine.query(new RyaStatement(cpu, loadPerc, null), queryConf);
    int count = 0;
    while (iter.hasNext()) {
        iter.next().getObject();
        count++;
    }
    iter.close();
    assertEquals(limit, count);
}
Also used : RyaURI(org.apache.rya.api.domain.RyaURI) RyaStatement(org.apache.rya.api.domain.RyaStatement) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) RyaDAOException(org.apache.rya.api.persist.RyaDAOException) Test(org.junit.Test)

Example 10 with AccumuloRyaQueryEngine

use of org.apache.rya.accumulo.query.AccumuloRyaQueryEngine in project incubator-rya by apache.

the class RyaQueryEngineFactory method getQueryEngine.

@SuppressWarnings("unchecked")
public static <C extends RdfCloudTripleStoreConfiguration> RyaQueryEngine<C> getQueryEngine(RdfCloudTripleStoreConfiguration conf) {
    if (conf instanceof AccumuloRdfConfiguration) {
        AccumuloRdfConfiguration aConf = (AccumuloRdfConfiguration) conf;
        Instance instance;
        String instanceName = aConf.get("sc.cloudbase.instancename");
        String user = aConf.get("sc.cloudbase.username");
        String password = aConf.get("sc.cloudbase.password");
        if (aConf.getBoolean(".useMockInstance", false)) {
            instance = new MockInstance(instanceName);
        } else {
            String zookeepers = aConf.get("sc.cloudbase.zookeepers");
            instance = new ZooKeeperInstance(instanceName, zookeepers);
        }
        Connector conn;
        try {
            conn = instance.getConnector(user, new PasswordToken(password));
        } catch (AccumuloException | AccumuloSecurityException e) {
            throw new RuntimeException(e);
        }
        return (RyaQueryEngine<C>) new AccumuloRyaQueryEngine(conn, aConf);
    } else if (conf instanceof StatefulMongoDBRdfConfiguration && ConfigUtils.getUseMongo(conf)) {
        StatefulMongoDBRdfConfiguration mongoConf = (StatefulMongoDBRdfConfiguration) conf;
        MongoDBQueryEngine mongoQueryEngine = new MongoDBQueryEngine();
        mongoQueryEngine.setConf(mongoConf);
        return (RyaQueryEngine<C>) mongoQueryEngine;
    } else {
        throw new IllegalArgumentException("Invalid configuration type.");
    }
}
Also used : Connector(org.apache.accumulo.core.client.Connector) AccumuloException(org.apache.accumulo.core.client.AccumuloException) StatefulMongoDBRdfConfiguration(org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration) MockInstance(org.apache.accumulo.core.client.mock.MockInstance) Instance(org.apache.accumulo.core.client.Instance) ZooKeeperInstance(org.apache.accumulo.core.client.ZooKeeperInstance) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) AccumuloRdfConfiguration(org.apache.rya.accumulo.AccumuloRdfConfiguration) ZooKeeperInstance(org.apache.accumulo.core.client.ZooKeeperInstance) PasswordToken(org.apache.accumulo.core.client.security.tokens.PasswordToken) MockInstance(org.apache.accumulo.core.client.mock.MockInstance) AccumuloSecurityException(org.apache.accumulo.core.client.AccumuloSecurityException) AccumuloRyaQueryEngine(org.apache.rya.accumulo.query.AccumuloRyaQueryEngine) RyaQueryEngine(org.apache.rya.api.persist.query.RyaQueryEngine) MongoDBQueryEngine(org.apache.rya.mongodb.MongoDBQueryEngine)

Aggregations

AccumuloRyaQueryEngine (org.apache.rya.accumulo.query.AccumuloRyaQueryEngine)16 RyaStatement (org.apache.rya.api.domain.RyaStatement)14 RyaURI (org.apache.rya.api.domain.RyaURI)12 RyaDAOException (org.apache.rya.api.persist.RyaDAOException)12 Test (org.junit.Test)11 ArrayList (java.util.ArrayList)5 RyaType (org.apache.rya.api.domain.RyaType)4 AccumuloRdfConfiguration (org.apache.rya.accumulo.AccumuloRdfConfiguration)3 IOException (java.io.IOException)2 AccumuloException (org.apache.accumulo.core.client.AccumuloException)2 AccumuloSecurityException (org.apache.accumulo.core.client.AccumuloSecurityException)2 AccumuloRyaDAO (org.apache.rya.accumulo.AccumuloRyaDAO)2 HashSet (java.util.HashSet)1 BatchWriterConfig (org.apache.accumulo.core.client.BatchWriterConfig)1 Connector (org.apache.accumulo.core.client.Connector)1 Instance (org.apache.accumulo.core.client.Instance)1 IteratorSetting (org.apache.accumulo.core.client.IteratorSetting)1 MutationsRejectedException (org.apache.accumulo.core.client.MutationsRejectedException)1 TableNotFoundException (org.apache.accumulo.core.client.TableNotFoundException)1 ZooKeeperInstance (org.apache.accumulo.core.client.ZooKeeperInstance)1