public Map<String, Set<?>> getAllPartitions(AbstractQueryContext queryContext, LensDriver driver) { if (queryContext.getDriverRewriterPlan(driver) != null) { return queryContext.getDriverRewriterPlan(driver).getPartitions(); } return Maps.newHashMap(); } }
public Map<String, Set<?>> getAllPartitions(AbstractQueryContext queryContext, LensDriver driver) { if (queryContext.getDriverRewriterPlan(driver) != null) { return queryContext.getDriverRewriterPlan(driver).getPartitions(); } return Maps.newHashMap(); } }
@Test public void testDimensionCost() throws Exception { AbstractQueryContext queryContext2 = mock(AbstractQueryContext.class); HashMap<String, Set<?>> partitions = new HashMap<>(); partitions.put("st1", Sets.newHashSet(latest)); partitions.put("st2", Sets.newHashSet(latest)); DriverQueryPlan plan = mock(DriverQueryPlan.class); when(queryContext2.getDriverRewriterPlan(driver)).thenReturn(plan); when(plan.getPartitions()).thenReturn(partitions); when(calculator.getAllPartitions(queryContext2, driver)).thenReturn(partitions); QueryCost cost = calculator.calculateCost(queryContext2, driver); assertTrue(cost.getEstimatedResourceUsage() == 2.0, "Estimated resource usage:" + cost.getEstimatedResourceUsage()); } }
System.out.println("@@ partitions" + plan.getPartitions()); Assert.assertEquals(plan.getPartitions().size(), 2); Assert.assertTrue(plan.getPartitions().containsKey(dbName + ".table_1")); Assert.assertEquals(plan.getPartitions().get(dbName + ".table_1").size(), 5); Assert.assertTrue(plan.getPartitions().containsKey(dbName + ".table_2")); Assert.assertEquals(plan.getPartitions().get(dbName + ".table_2").size(), 1);
/** * Test explain partitioned table * * @throws Exception the exception */ @Test public void testExplainPartitionedTable() throws Exception { int handleSize = getHandleSize(); createPartitionedTable("test_part_table"); // acquire SessionState.setCurrentSessionState(ss); DriverQueryPlan plan = driver.explain(createExplainContext("SELECT ID FROM test_part_table", queryConf)); assertHandleSize(handleSize); assertTrue(plan instanceof HiveQueryPlan); assertNotNull(plan.getTablesQueried()); assertEquals(plan.getTablesQueried().size(), 1); System.out.println("Tables:" + plan.getTablesQueried()); assertEquals(plan.getTableWeight(dataBase + ".test_part_table"), 500.0); System.out.println("Parts:" + plan.getPartitions()); assertFalse(plan.getPartitions().isEmpty()); assertEquals(plan.getPartitions().size(), 1); assertTrue(((String) plan.getPartitions().get(dataBase + ".test_part_table").iterator().next()).contains("today")); assertTrue(((String) plan.getPartitions().get(dataBase + ".test_part_table").iterator().next()).contains("dt")); }
@BeforeTest public void setUp() { driver = mock(LensDriver.class); when(driver.getConf()).thenReturn(new Configuration()); queryContext = mock(AbstractQueryContext.class); calculator.init(driver); ImmutableMap<String, Double> tableWeights = new ImmutableMap.Builder<String, Double>().build(); FactPartition fp1 = mockFactPartition(DAILY, tableWeights, 0.7); FactPartition fp2 = mockFactPartition(HOURLY, tableWeights, 0.8); FactPartition fp3 = mockFactPartition(SECONDLY, tableWeights, 0.4); FactPartition fp4 = mockFactPartition(MONTHLY, tableWeights, 0); when(queryContext.getTableWeights(driver)).thenReturn(tableWeights); HashMap<String, Set<?>> partitions = new HashMap<>(); partitions.put("st1", Sets.newHashSet(fp1, fp2)); partitions.put("st2", Sets.newHashSet(fp3, fp4)); partitions.put("st3", Sets.newHashSet(latest)); DriverQueryPlan plan = mock(DriverQueryPlan.class); when(queryContext.getDriverRewriterPlan(driver)).thenReturn(plan); when(plan.getPartitions()).thenReturn(partitions); when(calculator.getAllPartitions(queryContext, driver)).thenReturn(partitions); }
ctx.getDriverContext().getDriverRewriterPlan(driver).getPartitions().putAll( new HashMap<String, Set<FactPartition>>() {
ctx.getDriverContext().getDriverRewriterPlan(driver).getPartitions().putAll( new HashMap<String, Set<String>>() {