@Override public List<KeyRange> getSplits() { return delegate.getSplits(); }
@Override public List<InputSplit> getSplits(JobContext context) throws IOException, InterruptedException { final Configuration configuration = context.getConfiguration(); final QueryPlan queryPlan = getQueryPlan(context,configuration); final List<KeyRange> allSplits = queryPlan.getSplits(); final List<InputSplit> splits = generateSplits(queryPlan, allSplits, configuration); return splits; }
public UnionResultIterators(List<QueryPlan> plans, StatementContext parentStmtCtx) throws SQLException { this.parentStmtCtx = parentStmtCtx; int nPlans = plans.size(); iterators = Lists.newArrayListWithExpectedSize(nPlans); splits = Lists.newArrayListWithExpectedSize(nPlans * 30); scans = Lists.newArrayListWithExpectedSize(nPlans * 10); readMetricsList = Lists.newArrayListWithCapacity(nPlans); overAllQueryMetricsList = Lists.newArrayListWithCapacity(nPlans); for (QueryPlan plan : plans) { readMetricsList.add(plan.getContext().getReadMetricsQueue()); overAllQueryMetricsList.add(plan.getContext().getOverallQueryMetrics()); iterators.add(LookAheadResultIterator.wrap(plan.iterator())); splits.addAll(plan.getSplits()); scans.addAll(plan.getScans()); } }
final List<KeyRange> allSplits = queryPlan.getSplits(); final List<InputSplit> splits = generateSplits(jobConf, queryPlan, allSplits, query);
@Test public void testStartKeyStopKey() throws SQLException { Properties props = new Properties(); Connection conn = DriverManager.getConnection(getUrl(), props); String tableName = generateUniqueName(); conn.createStatement().execute("CREATE TABLE " + tableName + " (pk char(2) not null primary key) SPLIT ON ('EA','EZ')"); conn.close(); String query = "select count(*) from " + tableName + " where pk >= 'EA' and pk < 'EZ'"; conn = DriverManager.getConnection(getUrl(), props); Statement statement = conn.createStatement(); statement.execute(query); PhoenixStatement pstatement = statement.unwrap(PhoenixStatement.class); List<KeyRange> splits = pstatement.getQueryPlan().getSplits(); assertTrue(splits.size() > 0); }
List<KeyRange> allSplits = queryPlan.getSplits();
public static List<KeyRange> getSplits(Connection conn, String tableName, String pkCol, byte[] lowerRange, byte[] upperRange, String whereClauseSuffix, String selectClause) throws SQLException { String whereClauseStart = (lowerRange == null && upperRange == null ? "" : " WHERE " + ((lowerRange != null ? (pkCol + " >= ? " + (upperRange != null ? " AND " : "")) : "") + (upperRange != null ? (pkCol + " < ?") : "" ))); String whereClause = whereClauseSuffix == null ? whereClauseStart : whereClauseStart.length() == 0 ? (" WHERE " + whereClauseSuffix) : (" AND " + whereClauseSuffix); String query = "SELECT /*+ NO_INDEX */ "+selectClause+" FROM " + tableName + whereClause; PhoenixPreparedStatement pstmt = conn.prepareStatement(query).unwrap(PhoenixPreparedStatement.class); if (lowerRange != null) { pstmt.setBytes(1, lowerRange); } if (upperRange != null) { pstmt.setBytes(lowerRange != null ? 2 : 1, upperRange); } pstmt.execute(); List<KeyRange> keyRanges = pstmt.getQueryPlan().getSplits(); return keyRanges; }
parallelIteratorFactory.setTable(table); PhoenixStatement pstmt = stmt.unwrap(PhoenixStatement.class); int numIterators = pstmt.getQueryPlan().getSplits().size(); assertTrue(numIterators > 1); int numFetches = 2 * numIterators;
ResultSet rs = pstmt.executeQuery("SELECT count(*) FROM " + tableName); assertTrue(pstmt.getQueryPlan().getSplits().size() > 1000); rs.next(); fail("Total time of query was " + (System.currentTimeMillis() - startTime) + " ms, but expected to be greater than 1000");
@Override public List<KeyRange> getSplits() { return delegate.getSplits(); }
stmt.executeQuery(); QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan(); assertEquals(4, plan.getSplits().size());
@Override public List<KeyRange> getSplits() { return delegate.getSplits(); }
parallelIteratorFactory.setTable(table); PhoenixStatement pstmt = stmt.unwrap(PhoenixStatement.class); int numIterators = pstmt.getQueryPlan().getSplits().size(); assertEquals(8, numIterators); int numFetches = 2 * numIterators;
plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan(); assertEquals(fullIndexName, plan.getTableRef().getTable().getName().getString()); assertEquals(6, plan.getSplits().size());
@Override public List<InputSplit> getSplits(JobContext context) throws IOException, InterruptedException { final Configuration configuration = context.getConfiguration(); final QueryPlan queryPlan = getQueryPlan(context,configuration); final List<KeyRange> allSplits = queryPlan.getSplits(); final List<InputSplit> splits = generateSplits(queryPlan, allSplits, configuration); return splits; }
@Override public List<InputSplit> getSplits(JobContext context) throws IOException, InterruptedException { final Configuration configuration = context.getConfiguration(); final QueryPlan queryPlan = getQueryPlan(context,configuration); final List<KeyRange> allSplits = queryPlan.getSplits(); final List<InputSplit> splits = generateSplits(queryPlan, allSplits, configuration); return splits; }
@Override public List<InputSplit> getSplits(JobContext context) throws IOException, InterruptedException { final Configuration configuration = context.getConfiguration(); final QueryPlan queryPlan = getQueryPlan(context, configuration); final List<KeyRange> allSplits = queryPlan.getSplits(); final List<InputSplit> splits = generateSplits(queryPlan, allSplits); return splits; }
public UnionResultIterators(List<QueryPlan> plans, StatementContext parentStmtCtx) throws SQLException { this.parentStmtCtx = parentStmtCtx; int nPlans = plans.size(); iterators = Lists.newArrayListWithExpectedSize(nPlans); splits = Lists.newArrayListWithExpectedSize(nPlans * 30); scans = Lists.newArrayListWithExpectedSize(nPlans * 10); readMetricsList = Lists.newArrayListWithCapacity(nPlans); overAllQueryMetricsList = Lists.newArrayListWithCapacity(nPlans); for (QueryPlan plan : plans) { readMetricsList.add(plan.getContext().getReadMetricsQueue()); overAllQueryMetricsList.add(plan.getContext().getOverallQueryMetrics()); iterators.add(LookAheadResultIterator.wrap(plan.iterator())); splits.addAll(plan.getSplits()); scans.addAll(plan.getScans()); } }
public UnionResultIterators(List<QueryPlan> plans, StatementContext parentStmtCtx) throws SQLException { this.parentStmtCtx = parentStmtCtx; int nPlans = plans.size(); iterators = Lists.newArrayListWithExpectedSize(nPlans); splits = Lists.newArrayListWithExpectedSize(nPlans * 30); scans = Lists.newArrayListWithExpectedSize(nPlans * 10); readMetricsList = Lists.newArrayListWithCapacity(nPlans); overAllQueryMetricsList = Lists.newArrayListWithCapacity(nPlans); for (QueryPlan plan : plans) { readMetricsList.add(plan.getContext().getReadMetricsQueue()); overAllQueryMetricsList.add(plan.getContext().getOverallQueryMetrics()); iterators.add(LookAheadResultIterator.wrap(plan.iterator())); splits.addAll(plan.getSplits()); scans.addAll(plan.getScans()); } }