use of org.apache.fluo.api.client.Snapshot in project incubator-rya by apache.
the class PeriodicQueryPruner method pruneBindingSetBin.
/**
* Prunes BindingSet bins from the Rya Fluo Application in addition to the BindingSet
* bins created in the PCJ tables associated with the give query id.
* @param id - QueryResult Id for the Rya Fluo application
* @param bin - bin id for bins to be deleted
*/
@Override
public void pruneBindingSetBin(final NodeBin nodeBin) {
final String pcjId = nodeBin.getNodeId();
final long bin = nodeBin.getBin();
try (Snapshot sx = client.newSnapshot()) {
final String queryId = NodeType.generateNewIdForType(NodeType.QUERY, pcjId);
final Set<String> fluoIds = getNodeIdsFromResultId(sx, queryId);
accPruner.pruneBindingSetBin(nodeBin);
for (final String fluoId : fluoIds) {
fluoPruner.pruneBindingSetBin(new NodeBin(fluoId, bin));
}
} catch (final Exception e) {
log.warn("Could not successfully initialize PeriodicQueryBinPruner.", e);
}
}
use of org.apache.fluo.api.client.Snapshot in project incubator-rya by apache.
the class FluoQueryMetadataDAOIT method periodicQueryMetadataTest.
@Test
public void periodicQueryMetadataTest() {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
final PeriodicQueryMetadata originalMetadata = PeriodicQueryMetadata.builder().setNodeId("nodeId").setParentNodeId("parentNodeId").setVarOrder(new VariableOrder("a", "b", "c")).setChildNodeId("childNodeId").setPeriod(10).setWindowSize(20).setUnit(TimeUnit.DAYS).setTemporalVariable("a").build();
try (FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
try (Transaction tx = fluoClient.newTransaction()) {
dao.write(tx, originalMetadata);
tx.commit();
}
// Read it from the Fluo table.
PeriodicQueryMetadata storedMetadata = null;
try (Snapshot sx = fluoClient.newSnapshot()) {
storedMetadata = dao.readPeriodicQueryMetadata(sx, "nodeId");
}
// Ensure the deserialized object is the same as the serialized one.
assertEquals(originalMetadata, storedMetadata);
}
}
use of org.apache.fluo.api.client.Snapshot in project incubator-rya by apache.
the class FluoQueryMetadataDAOIT method fluoNestedQueryTest.
@Test
public void fluoNestedQueryTest() throws MalformedQueryException, UnsupportedQueryException {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
final String sparql = "SELECT ?id ?type ?location ?averagePrice ?vendor {" + "FILTER(?averagePrice > 4) " + "?type <urn:purchasedFrom> ?vendor ." + "{SELECT ?type ?location (avg(?price) as ?averagePrice) {" + "?id <urn:type> ?type . " + "?id <urn:location> ?location ." + "?id <urn:price> ?price ." + "} " + "GROUP BY ?type ?location }}";
final SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
builder.setSparql(sparql);
builder.setFluoQueryId(NodeType.generateNewFluoIdForType(NodeType.QUERY));
final FluoQuery originalQuery = builder.build();
assertEquals(QueryType.PROJECTION, originalQuery.getQueryType());
try (FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
try (Transaction tx = fluoClient.newTransaction()) {
dao.write(tx, originalQuery);
tx.commit();
}
// Read it from the Fluo table.
FluoQuery storedQuery = null;
try (Snapshot sx = fluoClient.newSnapshot()) {
storedQuery = dao.readFluoQuery(sx, originalQuery.getQueryMetadata().getNodeId());
}
// Ensure the deserialized object is the same as the serialized one.
assertEquals(originalQuery, storedQuery);
}
}
use of org.apache.fluo.api.client.Snapshot in project incubator-rya by apache.
the class FluoQueryMetadataDAOIT method aggregationMetadataTest_withGroupByVarOrders.
@Test
public void aggregationMetadataTest_withGroupByVarOrders() {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
final AggregationMetadata originalMetadata = AggregationMetadata.builder("nodeId").setVarOrder(new VariableOrder("totalCount")).setParentNodeId("parentNodeId").setChildNodeId("childNodeId").setGroupByVariableOrder(new VariableOrder("a", "b", "c")).addAggregation(new AggregationElement(AggregationType.COUNT, "count", "totalCount")).addAggregation(new AggregationElement(AggregationType.AVERAGE, "privae", "avgPrice")).build();
try (FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
try (Transaction tx = fluoClient.newTransaction()) {
dao.write(tx, originalMetadata);
tx.commit();
}
// Read it from the Fluo table.
AggregationMetadata storedMetadata = null;
try (Snapshot sx = fluoClient.newSnapshot()) {
storedMetadata = dao.readAggregationMetadata(sx, "nodeId");
}
}
}
use of org.apache.fluo.api.client.Snapshot in project incubator-rya by apache.
the class FluoQueryMetadataDAOIT method statementPatternMetadataTest.
@Test
public void statementPatternMetadataTest() throws RepositoryException {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
final StatementPatternMetadata.Builder builder = StatementPatternMetadata.builder("nodeId");
builder.setVarOrder(new VariableOrder("a;b;c"));
builder.setStatementPattern("statementPattern");
builder.setParentNodeId("parentNodeId");
final StatementPatternMetadata originalMetadata = builder.build();
try (FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
try (Transaction tx = fluoClient.newTransaction()) {
dao.write(tx, originalMetadata);
tx.commit();
}
// Read it from the Fluo table.
StatementPatternMetadata storedMetadata = null;
try (Snapshot sx = fluoClient.newSnapshot()) {
storedMetadata = dao.readStatementPatternMetadata(sx, "nodeId");
}
// Ensure the deserialized object is the same as the serialized one.
assertEquals(originalMetadata, storedMetadata);
}
}
Aggregations