use of com.yahoo.bullet.query.aggregations.Raw in project bullet-core by yahoo.
the class QuerierTest method testRestarting.
@Test
public void testRestarting() throws Exception {
BulletConfig config = new BulletConfig();
config.set(BulletConfig.RESULT_METADATA_ENABLE, true);
config.validate();
Query query = new Query(new Projection(), null, new Raw(null), null, WindowUtils.makeTumblingWindow(1), null);
query.configure(config);
Querier querier = new Querier(Querier.Mode.ALL, makeRunningQuery("", query), config);
querier.consume(RecordBox.get().getRecord());
Assert.assertEquals(querier.getRecords().size(), 1);
long timeNow = System.currentTimeMillis();
Meta meta = querier.getMetadata();
Map<String, String> mapping = BulletConfigTest.allMetadataAsMap();
Map<String, Object> queryMeta = (Map<String, Object>) meta.asMap().get(mapping.get(Meta.Concept.QUERY_METADATA.getName()));
Map<String, Object> windowMeta = (Map<String, Object>) meta.asMap().get(mapping.get(Meta.Concept.WINDOW_METADATA.getName()));
Assert.assertEquals(windowMeta.get(mapping.get(Meta.Concept.WINDOW_NUMBER.getName())), 1L);
long startTime = (Long) queryMeta.get(mapping.get(Meta.Concept.QUERY_RECEIVE_TIME.getName()));
long windowEmitTime = (Long) windowMeta.get(mapping.get(Meta.Concept.WINDOW_EMIT_TIME.getName()));
Assert.assertTrue(startTime <= timeNow);
Assert.assertTrue(windowEmitTime >= timeNow);
Thread.sleep(1);
querier.restart();
Assert.assertEquals(querier.getRecords().size(), 1);
meta = querier.getMetadata();
queryMeta = (Map<String, Object>) meta.asMap().get(mapping.get(Meta.Concept.QUERY_METADATA.getName()));
Assert.assertEquals(windowMeta.get(mapping.get(Meta.Concept.WINDOW_NUMBER.getName())), 1L);
long newStartTime = (Long) queryMeta.get(mapping.get(Meta.Concept.QUERY_RECEIVE_TIME.getName()));
// Querier#restart() no longer updates the query's start time
Assert.assertEquals(newStartTime, startTime);
querier.reset();
meta = querier.getMetadata();
windowMeta = (Map<String, Object>) meta.asMap().get(mapping.get(Meta.Concept.WINDOW_METADATA.getName()));
long newEmitTime = (Long) windowMeta.get(mapping.get(Meta.Concept.WINDOW_EMIT_TIME.getName()));
Assert.assertEquals(windowMeta.get(mapping.get(Meta.Concept.WINDOW_NUMBER.getName())), 2L);
Assert.assertTrue(newEmitTime > windowEmitTime);
}
use of com.yahoo.bullet.query.aggregations.Raw in project bullet-core by yahoo.
the class RunningQueryTest method testCreatingWithQuery.
@Test
public void testCreatingWithQuery() {
BulletConfig config = new BulletConfig();
Query query = new Query(new Projection(), null, new Raw(null), null, new Window(), null);
query.configure(config);
RunningQuery runningQuery = new RunningQuery("foo", query, new Metadata(null, "bar"));
Assert.assertEquals(runningQuery.getId(), "foo");
Assert.assertNotNull(runningQuery.getQuery());
Assert.assertEquals(runningQuery.getQueryString(), "bar");
Assert.assertEquals(runningQuery.toString(), query.toString());
}
use of com.yahoo.bullet.query.aggregations.Raw in project bullet-core by yahoo.
the class RunningQueryTest method testTimingOut.
@Test
public void testTimingOut() throws Exception {
BulletConfig config = new BulletConfig();
Query query = new Query(new Projection(), null, new Raw(null), null, new Window(), 1L);
query.configure(config);
RunningQuery runningQuery = new RunningQuery("foo", query, new Metadata(null, null));
// Sleep to make sure it's 1 ms
Thread.sleep(1);
Assert.assertTrue(runningQuery.isTimedOut());
}
use of com.yahoo.bullet.query.aggregations.Raw in project bullet-core by yahoo.
the class QueryManagerTest method getQuery.
@SafeVarargs
private static Query getQuery(Pair<String, Serializable>... equalities) {
BinaryExpression expression = null;
if (equalities != null && equalities.length > 0) {
if (equalities.length == 1) {
expression = new BinaryExpression(new FieldExpression(equalities[0].getLeft()), new ValueExpression(equalities[0].getRight()), Operation.EQUALS);
expression.setType(Type.BOOLEAN);
expression.getLeft().setType(expression.getRight().getType());
} else {
expression = Arrays.stream(equalities).reduce(null, (a, b) -> {
BinaryExpression equals = new BinaryExpression(new FieldExpression(b.getLeft()), new ValueExpression(b.getRight()), Operation.EQUALS);
equals.setType(Type.BOOLEAN);
equals.getLeft().setType(equals.getRight().getType());
if (a == null) {
return equals;
}
BinaryExpression and = new BinaryExpression(a, equals, Operation.AND);
and.setType(Type.BOOLEAN);
return and;
}, (left, right) -> {
BinaryExpression and = new BinaryExpression(left, right, Operation.AND);
and.setType(Type.BOOLEAN);
return and;
});
}
}
Query query = new Query(new Projection(), expression, new Raw(null), null, new Window(), null);
query.configure(new BulletConfig());
return query;
}
use of com.yahoo.bullet.query.aggregations.Raw in project bullet-core by yahoo.
the class QueryUtils method makeFilterQuery.
public static Query makeFilterQuery(Expression filter, Integer size) {
Query query = new Query(new Projection(), filter, new Raw(size), null, new Window(), null);
query.configure(new BulletConfig());
return query;
}
Aggregations