Search in sources :

Example 1 with FluoQueryMetadataDAO

use of org.apache.rya.indexing.pcj.fluo.app.query.FluoQueryMetadataDAO in project incubator-rya by apache.

the class CreateFluoPcj method writeFluoQuery.

private void writeFluoQuery(FluoClient fluo, FluoQuery fluoQuery, String pcjId) {
    try (Transaction tx = fluo.newTransaction()) {
        // Write the query's structure to Fluo.
        new FluoQueryMetadataDAO().write(tx, fluoQuery);
        // Flush the changes to Fluo.
        tx.commit();
    }
}
Also used : Transaction(org.apache.fluo.api.client.Transaction) FluoQueryMetadataDAO(org.apache.rya.indexing.pcj.fluo.app.query.FluoQueryMetadataDAO)

Example 2 with FluoQueryMetadataDAO

use of org.apache.rya.indexing.pcj.fluo.app.query.FluoQueryMetadataDAO in project incubator-rya by apache.

the class ListFluoQueriesIT method queryMetadataTest.

@Test
public void queryMetadataTest() throws Exception {
    final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
    String sparql1 = "select ?x ?y ?z where {?x <uri:p1> ?y; <uri:p2> 'literal1'. ?y <uri:p3> ?z }";
    String sparql2 = "select ?x ?y ?z where {{select ?x ?y ?z {?x <uri:p1> ?y; <uri:p2> ?z. ?y <uri:p3> ?z }}}";
    // Create the object that will be serialized.
    String queryId1 = NodeType.generateNewFluoIdForType(NodeType.QUERY);
    final QueryMetadata.Builder builder = QueryMetadata.builder(queryId1);
    builder.setQueryType(QueryType.PROJECTION);
    builder.setVarOrder(new VariableOrder("y;s;d"));
    builder.setSparql(sparql1);
    builder.setChildNodeId("childNodeId");
    builder.setExportStrategies(new HashSet<>(Arrays.asList(ExportStrategy.KAFKA)));
    final QueryMetadata meta1 = builder.build();
    String queryId2 = NodeType.generateNewFluoIdForType(NodeType.QUERY);
    final QueryMetadata.Builder builder2 = QueryMetadata.builder(queryId2);
    builder2.setQueryType(QueryType.PROJECTION);
    builder2.setVarOrder(new VariableOrder("y;s;d"));
    builder2.setSparql(sparql2);
    builder2.setChildNodeId("childNodeId");
    builder2.setExportStrategies(new HashSet<>(Arrays.asList(ExportStrategy.RYA)));
    final QueryMetadata meta2 = builder2.build();
    try (FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
        // Write it to the Fluo table.
        try (Transaction tx = fluoClient.newTransaction()) {
            dao.write(tx, meta1);
            dao.write(tx, meta2);
            tx.commit();
        }
        ListFluoQueries listFluoQueries = new ListFluoQueries();
        List<String> queries = listFluoQueries.listFluoQueries(fluoClient);
        FluoQueryStringBuilder queryBuilder1 = new FluoQueryStringBuilder();
        String expected1 = queryBuilder1.setQueryId(queryId1).setQueryType(QueryType.PROJECTION).setQuery(sparql1).setExportStrategies(Sets.newHashSet(ExportStrategy.KAFKA)).build();
        FluoQueryStringBuilder queryBuilder2 = new FluoQueryStringBuilder();
        String expected2 = queryBuilder2.setQueryId(queryId2).setQueryType(QueryType.PROJECTION).setQuery(sparql2).setExportStrategies(Sets.newHashSet(ExportStrategy.RYA)).build();
        Set<String> expected = new HashSet<>();
        expected.add(expected1);
        expected.add(expected2);
        Assert.assertEquals(expected, Sets.newHashSet(queries));
    }
}
Also used : QueryMetadata(org.apache.rya.indexing.pcj.fluo.app.query.QueryMetadata) FluoClient(org.apache.fluo.api.client.FluoClient) VariableOrder(org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder) FluoQueryMetadataDAO(org.apache.rya.indexing.pcj.fluo.app.query.FluoQueryMetadataDAO) Transaction(org.apache.fluo.api.client.Transaction) FluoQueryStringBuilder(org.apache.rya.indexing.pcj.fluo.api.ListFluoQueries.FluoQueryStringBuilder) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

Transaction (org.apache.fluo.api.client.Transaction)2 FluoQueryMetadataDAO (org.apache.rya.indexing.pcj.fluo.app.query.FluoQueryMetadataDAO)2 HashSet (java.util.HashSet)1 FluoClient (org.apache.fluo.api.client.FluoClient)1 FluoQueryStringBuilder (org.apache.rya.indexing.pcj.fluo.api.ListFluoQueries.FluoQueryStringBuilder)1 QueryMetadata (org.apache.rya.indexing.pcj.fluo.app.query.QueryMetadata)1 VariableOrder (org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder)1 Test (org.junit.Test)1