Search in sources :

Example 16 with Column

use of org.apache.fluo.api.data.Column in project incubator-rya by apache.

the class PeriodicQueryUpdater method updatePeriodicBinResults.

/**
 * Uses the {@link PeriodicQueryMetadata} to create a collection of binned BindingSets
 * that are added to Fluo.  Each binned BindingSet is the original BindingSet with an additional
 * Binding that contains the periodic bin id of the BindingSet.
 * @param tx - Fluo Transaction
 * @param bs - VisibilityBindingSet that will be binned
 * @param metadata - PeriodicQueryMetadata used to bin BindingSets
 * @throws Exception
 */
public void updatePeriodicBinResults(TransactionBase tx, VisibilityBindingSet bs, PeriodicQueryMetadata metadata) throws Exception {
    Set<Long> binIds = getBinEndTimes(metadata, bs);
    for (Long id : binIds) {
        // create binding set value bytes
        QueryBindingSet binnedBs = new QueryBindingSet(bs);
        binnedBs.addBinding(IncrementalUpdateConstants.PERIODIC_BIN_ID, vf.createLiteral(id));
        VisibilityBindingSet visibilityBindingSet = new VisibilityBindingSet(binnedBs, bs.getVisibility());
        Bytes periodicBsBytes = BS_SERDE.serialize(visibilityBindingSet);
        // create row
        final Bytes resultRow = makeRowKey(metadata.getNodeId(), metadata.getVariableOrder(), visibilityBindingSet);
        Column col = FluoQueryColumns.PERIODIC_QUERY_BINDING_SET;
        tx.set(resultRow, col, periodicBsBytes);
    }
}
Also used : Bytes(org.apache.fluo.api.data.Bytes) VisibilityBindingSet(org.apache.rya.api.model.VisibilityBindingSet) Column(org.apache.fluo.api.data.Column) QueryBindingSet(org.openrdf.query.algebra.evaluation.QueryBindingSet)

Example 17 with Column

use of org.apache.fluo.api.data.Column in project incubator-rya by apache.

the class FluoQueryMetadataDAO method readPeriodicQueryMetadataBuilder.

private PeriodicQueryMetadata.Builder readPeriodicQueryMetadataBuilder(final SnapshotBase sx, final String nodeId) {
    requireNonNull(sx);
    requireNonNull(nodeId);
    // Fetch the values from the Fluo table.
    final String rowId = nodeId;
    final Map<Column, String> values = sx.gets(rowId, FluoQueryColumns.PERIODIC_QUERY_VARIABLE_ORDER, FluoQueryColumns.PERIODIC_QUERY_PARENT_NODE_ID, FluoQueryColumns.PERIODIC_QUERY_CHILD_NODE_ID, FluoQueryColumns.PERIODIC_QUERY_PERIOD, FluoQueryColumns.PERIODIC_QUERY_WINDOWSIZE, FluoQueryColumns.PERIODIC_QUERY_TIMEUNIT, FluoQueryColumns.PERIODIC_QUERY_TEMPORAL_VARIABLE);
    // Return an object holding them.
    final String varOrderString = values.get(FluoQueryColumns.PERIODIC_QUERY_VARIABLE_ORDER);
    final VariableOrder varOrder = new VariableOrder(varOrderString);
    final String parentNodeId = values.get(FluoQueryColumns.PERIODIC_QUERY_PARENT_NODE_ID);
    final String childNodeId = values.get(FluoQueryColumns.PERIODIC_QUERY_CHILD_NODE_ID);
    final String temporalVariable = values.get(FluoQueryColumns.PERIODIC_QUERY_TEMPORAL_VARIABLE);
    final String period = values.get(FluoQueryColumns.PERIODIC_QUERY_PERIOD);
    final String window = values.get(FluoQueryColumns.PERIODIC_QUERY_WINDOWSIZE);
    final String timeUnit = values.get(FluoQueryColumns.PERIODIC_QUERY_TIMEUNIT);
    return PeriodicQueryMetadata.builder().setNodeId(nodeId).setVarOrder(varOrder).setParentNodeId(parentNodeId).setChildNodeId(childNodeId).setWindowSize(Long.parseLong(window)).setPeriod(Long.parseLong(period)).setTemporalVariable(temporalVariable).setUnit(TimeUnit.valueOf(timeUnit));
}
Also used : Column(org.apache.fluo.api.data.Column) VariableOrder(org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder)

Example 18 with Column

use of org.apache.fluo.api.data.Column in project incubator-rya by apache.

the class FluoQueryMetadataDAO method readJoinMetadataBuilder.

private JoinMetadata.Builder readJoinMetadataBuilder(final SnapshotBase sx, final String nodeId) {
    requireNonNull(sx);
    requireNonNull(nodeId);
    // Fetch the values from the Fluo table.
    final String rowId = nodeId;
    final Map<Column, String> values = sx.gets(rowId, FluoQueryColumns.JOIN_VARIABLE_ORDER, FluoQueryColumns.JOIN_TYPE, FluoQueryColumns.JOIN_PARENT_NODE_ID, FluoQueryColumns.JOIN_LEFT_CHILD_NODE_ID, FluoQueryColumns.JOIN_BATCH_SIZE, FluoQueryColumns.JOIN_RIGHT_CHILD_NODE_ID);
    // Return an object holding them.
    final String varOrderString = values.get(FluoQueryColumns.JOIN_VARIABLE_ORDER);
    final VariableOrder varOrder = new VariableOrder(varOrderString);
    final String joinTypeString = values.get(FluoQueryColumns.JOIN_TYPE);
    final JoinType joinType = JoinType.valueOf(joinTypeString);
    final String parentNodeId = values.get(FluoQueryColumns.JOIN_PARENT_NODE_ID);
    final String leftChildNodeId = values.get(FluoQueryColumns.JOIN_LEFT_CHILD_NODE_ID);
    final int joinBatchSize = Integer.parseInt(values.get(FluoQueryColumns.JOIN_BATCH_SIZE));
    final String rightChildNodeId = values.get(FluoQueryColumns.JOIN_RIGHT_CHILD_NODE_ID);
    return JoinMetadata.builder(nodeId).setVarOrder(varOrder).setJoinType(joinType).setParentNodeId(parentNodeId).setJoinBatchSize(joinBatchSize).setLeftChildNodeId(leftChildNodeId).setRightChildNodeId(rightChildNodeId);
}
Also used : Column(org.apache.fluo.api.data.Column) VariableOrder(org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder) JoinType(org.apache.rya.indexing.pcj.fluo.app.query.JoinMetadata.JoinType)

Example 19 with Column

use of org.apache.fluo.api.data.Column in project incubator-rya by apache.

the class FluoQueryMetadataDAO method readConstructQueryMetadataBuilder.

private ConstructQueryMetadata.Builder readConstructQueryMetadataBuilder(final SnapshotBase sx, final String nodeId) {
    requireNonNull(sx);
    requireNonNull(nodeId);
    // Fetch the values from the Fluo table.
    final String rowId = nodeId;
    final Map<Column, String> values = sx.gets(rowId, FluoQueryColumns.CONSTRUCT_GRAPH, FluoQueryColumns.CONSTRUCT_CHILD_NODE_ID, FluoQueryColumns.CONSTRUCT_PARENT_NODE_ID, FluoQueryColumns.CONSTRUCT_VARIABLE_ORDER);
    final String graphString = values.get(FluoQueryColumns.CONSTRUCT_GRAPH);
    final ConstructGraph graph = ConstructGraphSerializer.toConstructGraph(graphString);
    final String childNodeId = values.get(FluoQueryColumns.CONSTRUCT_CHILD_NODE_ID);
    final String parentNodeId = values.get(FluoQueryColumns.CONSTRUCT_PARENT_NODE_ID);
    final String varOrderString = values.get(FluoQueryColumns.CONSTRUCT_VARIABLE_ORDER);
    return ConstructQueryMetadata.builder().setNodeId(nodeId).setParentNodeId(parentNodeId).setConstructGraph(graph).setVarOrder(new VariableOrder(varOrderString)).setChildNodeId(childNodeId);
}
Also used : Column(org.apache.fluo.api.data.Column) ConstructGraph(org.apache.rya.indexing.pcj.fluo.app.ConstructGraph) VariableOrder(org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder)

Example 20 with Column

use of org.apache.fluo.api.data.Column in project incubator-rya by apache.

the class FluoQueryMetadataDAO method readStatementPatternMetadataBuilder.

private StatementPatternMetadata.Builder readStatementPatternMetadataBuilder(final SnapshotBase sx, final String nodeId) {
    requireNonNull(sx);
    requireNonNull(nodeId);
    // Fetch the values from the Fluo table.
    final String rowId = nodeId;
    final Map<Column, String> values = sx.gets(rowId, FluoQueryColumns.STATEMENT_PATTERN_VARIABLE_ORDER, FluoQueryColumns.STATEMENT_PATTERN_PATTERN, FluoQueryColumns.STATEMENT_PATTERN_PARENT_NODE_ID);
    // Return an object holding them.
    final String varOrderString = values.get(FluoQueryColumns.STATEMENT_PATTERN_VARIABLE_ORDER);
    final VariableOrder varOrder = new VariableOrder(varOrderString);
    final String pattern = values.get(FluoQueryColumns.STATEMENT_PATTERN_PATTERN);
    final String parentNodeId = values.get(FluoQueryColumns.STATEMENT_PATTERN_PARENT_NODE_ID);
    return StatementPatternMetadata.builder(nodeId).setVarOrder(varOrder).setStatementPattern(pattern).setParentNodeId(parentNodeId);
}
Also used : Column(org.apache.fluo.api.data.Column) VariableOrder(org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder)

Aggregations

Column (org.apache.fluo.api.data.Column)22 VariableOrder (org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder)13 Bytes (org.apache.fluo.api.data.Bytes)9 RowColumn (org.apache.fluo.api.data.RowColumn)9 Span (org.apache.fluo.api.data.Span)8 JsonObject (com.google.gson.JsonObject)4 VisibilityBindingSet (org.apache.rya.api.model.VisibilityBindingSet)4 HashSet (java.util.HashSet)3 Task (org.apache.rya.indexing.pcj.fluo.app.batch.BatchInformation.Task)3 JsonPrimitive (com.google.gson.JsonPrimitive)2 Transaction (org.apache.fluo.api.client.Transaction)2 IterativeJoin (org.apache.rya.api.function.join.IterativeJoin)2 Side (org.apache.rya.api.function.join.LazyJoiningIterator.Side)2 LeftOuterJoin (org.apache.rya.api.function.join.LeftOuterJoin)2 NaturalJoin (org.apache.rya.api.function.join.NaturalJoin)2 NodeType (org.apache.rya.indexing.pcj.fluo.app.NodeType)2 SpanBatchDeleteInformation (org.apache.rya.indexing.pcj.fluo.app.batch.SpanBatchDeleteInformation)2 JoinType (org.apache.rya.indexing.pcj.fluo.app.query.JoinMetadata.JoinType)2 IOException (java.io.IOException)1 InvalidClassException (java.io.InvalidClassException)1