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);
}
}
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));
}
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);
}
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);
}
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);
}
Aggregations