public <T extends Equals & HashCode & ToString> void updateEntity(String name, T entity) throws LensException, HiveException { if (entity instanceof XStorage) { alterStorage((XStorage) entity); } else if (entity instanceof XCube) { alterCube((XCube)entity); } else if (entity instanceof XDimension) { alterDimension((XDimension) entity); } else if (entity instanceof XFact) { alterCubeFactTable((XFact) entity); } else if (entity instanceof XDimensionTable) { alterCubeDimensionTable((XDimensionTable) entity); } else if (entity instanceof XSegmentation) { alterSegmentation((XSegmentation) entity); } else { throw new LensException("Unable to alter entity " + entity + " as it's unrecognizable: " + entity.getClass()); } }
/** * Update cube * * @param cube JAXB Cube object * @throws LensException */ @Override public void updateCube(LensSessionHandle sessionid, XCube cube) throws LensException { try (SessionContext ignored = new SessionContext(sessionid)){ getClient(sessionid).alterCube(cube); log.info("Cube updated " + cube.getName()); } catch (HiveException e) { throw new LensException(e); } }
public <T extends Equals & HashCode & ToString> void updateEntity(String name, T entity) throws LensException, HiveException { if (entity instanceof XStorage) { alterStorage((XStorage) entity); } else if (entity instanceof XCube) { alterCube((XCube)entity); } else if (entity instanceof XDimension) { alterDimension((XDimension) entity); } else if (entity instanceof XFact) { alterCubeFactTable((XFact) entity); } else if (entity instanceof XDimensionTable) { alterCubeDimensionTable((XDimensionTable) entity); } else if (entity instanceof XSegmentation) { alterSegmentation((XSegmentation) entity); } else { throw new LensException("Unable to alter entity " + entity + " as it's unrecognizable: " + entity.getClass()); } }
public void alterCube(XCube cube) throws HiveException, LensException { Cube parent = cube instanceof XDerivedCube ? (Cube) getCube( ((XDerivedCube) cube).getParent()) : null; alterCube(cube.getName(), JAXBUtils.hiveCubeFromXCube(cube, parent)); } /**
public void alterCube(XCube cube) throws HiveException, LensException { Cube parent = cube instanceof XDerivedCube ? (Cube) getCube( ((XDerivedCube) cube).getParent()) : null; alterCube(cube.getName(), JAXBUtils.hiveCubeFromXCube(cube, parent)); }
@Test(priority = 2) public void testAlterDerivedCube() throws Exception { String name = "alter_derived_cube"; client.createDerivedCube(CUBE_NAME, name, measures, dimensions, emptyHashMap, 0L); // Test alter cube Table cubeTbl = client.getHiveTable(name); DerivedCube toAlter = new DerivedCube(cubeTbl, (Cube) client.getCube(CUBE_NAME)); toAlter.addMeasure("msr4"); toAlter.removeMeasure("msr3"); toAlter.addDimension("dim1StartTime"); toAlter.removeDimension("dim1"); assertNotNull(toAlter.getMeasureByName("msr4")); assertNotNull(toAlter.getMeasureByName("msr2")); assertNull(toAlter.getMeasureByName("msr3")); assertNotNull(toAlter.getDimAttributeByName("dim1StartTime")); assertNotNull(toAlter.getDimAttributeByName("dim2")); assertNull(toAlter.getDimAttributeByName("dim1")); client.alterCube(name, toAlter); DerivedCube altered = (DerivedCube) client.getCube(name); assertEquals(toAlter, altered); assertNotNull(altered.getMeasureByName("msr4")); CubeMeasure addedMsr = altered.getMeasureByName("msr4"); assertEquals(addedMsr.getType(), "bigint"); assertNotNull(altered.getDimAttributeByName("dim1StartTime")); BaseDimAttribute addedDim = (BaseDimAttribute) altered.getDimAttributeByName("dim1StartTime"); assertEquals(addedDim.getType(), "string"); assertNotNull(addedDim.getStartTime()); client.dropCube(name); assertFalse(client.tableExists(name)); }