/** * Common interface to Query, Insert , Delete, Drop(but not coordinator commands). * @param sqlOrJsonQuery * @param namedParams * @param reqHeaders * @param printToConsole * @param queryMode * @return */ public Either<String, Either<Joiner4All, Mapper4All>> query(String sqlOrJsonQuery, NamedParameters namedParams, Map<String, String> reqHeaders, boolean printToConsole, String queryMode) { return query(sqlOrJsonQuery, namedParams, reqHeaders, printToConsole, queryMode, false); }
/** * Query and return the Json response. * * @param sqlQuery * @param reqHeaders * @return */ public Either<String, Either<Joiner4All, Mapper4All>> query(String sqlQuery, Map<String, String> reqHeaders) { return query(sqlQuery, null, reqHeaders, false, "sql"); }
/** * Common interface to Query, Insert , Delete, Drop(but not coordinator commands). * @param sqlOrJsonQuery * @param namedParams * @param reqHeaders * @param printToConsole * @param queryMode * @return */ public Either<String, Either<Joiner4All, Mapper4All>> query(String sqlOrJsonQuery, NamedParameters namedParams, Map<String, String> reqHeaders, boolean printToConsole, String queryMode) { return query(sqlOrJsonQuery, namedParams, reqHeaders, printToConsole, queryMode, false); }
/** * Query and return the Json response. * * @param sqlQuery * @param reqHeaders * @return */ public Either<String, Either<Joiner4All, Mapper4All>> query(String sqlQuery, Map<String, String> reqHeaders) { return query(sqlQuery, null, reqHeaders, false, "sql"); }
public static void main(String[] args) { String q = "SELECT timestamp, LONG_SUM(count) AS edit_count, DOUBLE_SUM(added) AS chars_added FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z BREAK BY 'minute' HINT('timeseries');"; String q1 = "SELECT timestamp, page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01 AND 2020-01-01 AND country='United States' BREAK BY 'all' GROUP BY page ORDER BY edit_count DESC LIMIT 10;"; String q2 = "SELECT page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z AND country='United States' BREAK BY 'minute' GROUP BY page LIMIT 10;"; DDataSource driver = new DDataSource("localhost", 4080, "localhost", 8082, null, 3128); Either<String, Either<Joiner4All, Mapper4All>> result = driver.query(q, null, null, true, "sql"); System.out.println(result.right().get().right().get()); } }
public static void main(String[] args) { String q = "SELECT timestamp, LONG_SUM(count) AS edit_count, DOUBLE_SUM(added) AS chars_added FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z BREAK BY 'minute' HINT('timeseries');"; String q1 = "SELECT timestamp, page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01 AND 2020-01-01 AND country='United States' BREAK BY 'all' GROUP BY page ORDER BY edit_count DESC LIMIT 10;"; String q2 = "SELECT page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z AND country='United States' BREAK BY 'minute' GROUP BY page LIMIT 10;"; DDataSource driver = new DDataSource("localhost", 4080, "localhost", 8082, null, 3128); Either<String, Either<Joiner4All, Mapper4All>> result = driver.query(q, null, null, true, "sql"); System.out.println(result.right().get().right().get()); } }
Either<String, Either<Joiner4All, Mapper4All>> result = dDriver.query(frozenCommand, null, httpHeaders, trace, queryMode); long queryTime = System.currentTimeMillis() - start; if (result.isLeft()) {
/** * Run the jobs which are eligible to run. */ private void executeWork() { StatusTrail st = null; if ((st = newWorkQueue.removeFirst()) != null) { log.info("New task {}", st); DataSource ds = db().getDataSource(st.getDataSourceId());//TODO: Cache the DataSource table. String frozenSql = materializeTemplate(ds.getTemplateSql(), st.getNominalTime(), st.getNominalTime(), st.getNominalTime() + JobFreq.valueOf(ds.getFrequency()).inMillis()); log.info("Sql is {}", frozenSql); Either<String, Either<Joiner4All, Mapper4All>> result = druidDriver.query(frozenSql, null, null, false, "sql", true); if (result.isLeft()) { String taskId = result.left().get();// Because we forced async mode we will get back taskId. log.info("Submitted task {} to overlord ", taskId); st.setTaskId(taskId); st.setStatus(JobStatus.in_progress); db().updateStatusTrail(st); // Quite possible st may exist in Q- when an item is removed and executed // during which time if work generator generates the same st and // updates Q because it still found the ST as not_done. if (newWorkQueue.contains(st)) { newWorkQueue.remove(st); log.warn("newWorkQueue had one more entry for st {} which was just set to in_progress", st); } } else {// Something wrong. Insert always returns left. log.error("Got weird result (expected to run insert) {}", result.right().get()); } } }