use of uk.gov.gchq.gaffer.mapstore.MapStoreProperties in project Gaffer by gchq.
the class GetAllElementsHandlerTest method getGraphNoIndices.
static Graph getGraphNoIndices() {
final MapStoreProperties storeProperties = new MapStoreProperties();
storeProperties.setCreateIndex(false);
return new Graph.Builder().config(new GraphConfig.Builder().graphId("graphWithNoIndices").build()).addSchema(getSchema()).storeProperties(storeProperties).build();
}
use of uk.gov.gchq.gaffer.mapstore.MapStoreProperties in project Gaffer by gchq.
the class MapImplTest method shouldNotCreateIndexesIfNotRequired.
@Test
public void shouldNotCreateIndexesIfNotRequired() throws StoreException {
// Given
final Schema schema = mock(Schema.class);
final MapStoreProperties properties = mock(MapStoreProperties.class);
final Map aggElements = mock(Map.class);
final Map nonAggElements = mock(Map.class);
given(schema.getGroups()).willReturn(Sets.newHashSet(TestGroups.EDGE));
given(properties.getMapFactory()).willReturn(TestMapFactory.class.getName());
given(properties.getCreateIndex()).willReturn(false);
given(mockMapFactory.getMap(TestGroups.EDGE + "|" + MapImpl.AGG_ELEMENTS, Element.class, GroupedProperties.class)).willReturn(aggElements);
given(mockMapFactory.getMap(TestGroups.EDGE + "|" + MapImpl.NON_AGG_ELEMENTS, Element.class, Integer.class)).willReturn(nonAggElements);
// When
new MapImpl(schema, properties);
// Then
verify(mockMapFactory).getMap(TestGroups.EDGE + "|" + MapImpl.AGG_ELEMENTS, Element.class, GroupedProperties.class);
verify(mockMapFactory).getMap(TestGroups.EDGE + "|" + MapImpl.NON_AGG_ELEMENTS, Element.class, Long.class);
verify(mockMapFactory, never()).getMultiMap(MapImpl.ENTITY_ID_TO_ELEMENTS, EntityId.class, Element.class);
verify(mockMapFactory, never()).getMultiMap(MapImpl.EDGE_ID_TO_ELEMENTS, EdgeId.class, Element.class);
}
use of uk.gov.gchq.gaffer.mapstore.MapStoreProperties in project gaffer-doc by gchq.
the class TheBasics method run.
@Override
public CloseableIterable<? extends Element> run() throws OperationException, IOException {
// [generate] Create some edges from the simple data file using our Road Use generator class
// ---------------------------------------------------------
final List<Element> elements = new ArrayList<>();
final RoadUseElementGenerator dataGenerator = new RoadUseElementGenerator();
for (final String line : IOUtils.readLines(StreamUtil.openStream(getClass(), dataPath))) {
elements.add(dataGenerator._apply(line));
}
// ---------------------------------------------------------
print("Elements generated from the data file.");
for (final Element element : elements) {
print("GENERATED_EDGES", element.toString());
}
print("");
Graph graph;
// [graph from files] Create a graph using config, schema and store properties files
// ---------------------------------------------------------
graph = new Graph.Builder().config(StreamUtil.openStream(getClass(), graphConfigPath)).addSchemas(StreamUtil.openStreams(getClass(), schemaPath)).storeProperties(StreamUtil.openStream(getClass(), storePropertiesPath)).build();
// ---------------------------------------------------------
// [graph] Create a graph using config, schema and store properties from java
// ---------------------------------------------------------
final GraphConfig config = new GraphConfig.Builder().graphId(getClass().getSimpleName()).build();
final Schema schema = new Schema.Builder().edge("RoadUse", new SchemaEdgeDefinition.Builder().description("A directed edge representing vehicles moving from junction A to junction B.").source("junction").destination("junction").directed("true").property("count", "count.long").build()).type("junction", new TypeDefinition.Builder().description("A road junction represented by a String.").clazz(String.class).build()).type("count.long", new TypeDefinition.Builder().description("A long count that must be greater than or equal to 0.").clazz(Long.class).validateFunctions(new IsMoreThan(0L, true)).aggregateFunction(new Sum()).build()).type("true", new TypeDefinition.Builder().description("A simple boolean that must always be true.").clazz(Boolean.class).validateFunctions(new IsTrue()).build()).build();
final MapStoreProperties properties = new MapStoreProperties();
properties.setStoreClass(SingleUseMapStore.class);
graph = new Graph.Builder().config(config).addSchema(schema).storeProperties(properties).build();
// ---------------------------------------------------------
// [user] Create a user
// ---------------------------------------------------------
final User user = new User("user01");
// ---------------------------------------------------------
// [add] Add the edges to the graph
// ---------------------------------------------------------
final AddElements addElements = new AddElements.Builder().input(elements).build();
graph.execute(addElements, user);
// ---------------------------------------------------------
print("The elements have been added.");
// [get] Get all the edges that contain the vertex "10"
// ---------------------------------------------------------
final GetElements query = new GetElements.Builder().input(new EntitySeed("10")).view(new View.Builder().edge("RoadUse").build()).build();
final CloseableIterable<? extends Element> results = graph.execute(query, user);
// ---------------------------------------------------------
print("\nAll edges containing the vertex 10. The counts have been aggregated.");
for (final Element e : results) {
print("GET_ELEMENTS_RESULT", e.toString());
}
return results;
}
use of uk.gov.gchq.gaffer.mapstore.MapStoreProperties in project gaffer-doc by gchq.
the class ExportToOtherGraphExample method exportToNewGraphBasedOnConfigFromGraphLibrary.
public void exportToNewGraphBasedOnConfigFromGraphLibrary() {
// ---------------------------------------------------------
// Setup the graphLibrary with a schema and store properties for exporting
final GraphLibrary graphLibrary = new FileGraphLibrary("target/graphLibrary");
final AccumuloProperties exportStoreProperties = new AccumuloProperties();
// set other store property config here.
graphLibrary.addProperties("exportStorePropertiesId", exportStoreProperties);
final Schema exportSchema = new Schema.Builder().edge("edge", new SchemaEdgeDefinition.Builder().source("int").destination("int").directed("true").property("count", "int").aggregate(false).build()).type("int", Integer.class).type("true", new TypeDefinition.Builder().clazz(Boolean.class).validateFunctions(new IsTrue()).build()).build();
graphLibrary.addSchema("exportSchemaId", exportSchema);
final Graph graph = new Graph.Builder().config(StreamUtil.openStream(getClass(), "graphConfigWithLibrary.json")).addSchemas(StreamUtil.openStreams(getClass(), "operations/schema")).storeProperties(new MapStoreProperties()).build();
final OperationChain<Iterable<? extends Element>> opChain = new OperationChain.Builder().first(new GetAllElements.Builder().view(new View.Builder().edge("edge").build()).build()).then(new ExportToOtherGraph.Builder().graphId("newGraphId").parentSchemaIds("exportSchemaId").parentStorePropertiesId("exportStorePropertiesId").build()).build();
// ---------------------------------------------------------
showExample(opChain, "Similar to the previous example, this example will export all Edges with group 'edge' to another graph using a GraphLibrary. " + "But in this example we show that you can export to a new graph with id newGraphId by choosing any combination of schema and store properties registered in the GraphLibrary. " + "This is useful as a system administrator could register various different store properties, of different Accumulo/HBase clusters and a user could them just select which one to use by referring to the relevant store properties ID.");
}
use of uk.gov.gchq.gaffer.mapstore.MapStoreProperties in project gaffer-doc by gchq.
the class ExportToOtherGraphExample method simpleExportUsingGraphFromGraphLibrary.
public void simpleExportUsingGraphFromGraphLibrary() {
// ---------------------------------------------------------
// Setup the graphLibrary with an export graph
final GraphLibrary graphLibrary = new FileGraphLibrary("target/graphLibrary");
final AccumuloProperties exportStoreProperties = new AccumuloProperties();
// set other store property config here.
final Schema exportSchema = new Schema.Builder().edge("edge", new SchemaEdgeDefinition.Builder().source("int").destination("int").directed("true").property("count", "int").aggregate(false).build()).type("int", Integer.class).type("true", new TypeDefinition.Builder().clazz(Boolean.class).validateFunctions(new IsTrue()).build()).build();
graphLibrary.addOrUpdate("exportGraphId", exportSchema, exportStoreProperties);
final Graph graph = new Graph.Builder().config(StreamUtil.openStream(getClass(), "graphConfigWithLibrary.json")).addSchemas(StreamUtil.openStreams(getClass(), "operations/schema")).storeProperties(new MapStoreProperties()).build();
final OperationChain<Iterable<? extends Element>> opChain = new OperationChain.Builder().first(new GetAllElements.Builder().view(new View.Builder().edge("edge").build()).build()).then(new ExportToOtherGraph.Builder().graphId("exportGraphId").build()).build();
// ---------------------------------------------------------
showExample(opChain, "This example will export all Edges with group 'edge' to another existing graph 'exportGraphId' using a GraphLibrary." + "We demonstrate here that if we use a GraphLibrary, we can register a graph ID and reference it from the export operation. " + "This means the user does not have to proxy all the schema and store properties when they configure the export operation, they can just provide the ID.");
}
Aggregations