@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((getType() == null) ? 0 : getType().toLowerCase().hashCode()); result = prime * result + ((unit == null) ? 0 : unit.toLowerCase().hashCode()); result = prime * result + ((aggregate == null) ? 0 : aggregate.toLowerCase().hashCode()); result = prime * result + ((formatString == null) ? 0 : formatString.toLowerCase().hashCode()); return result; }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((getType() == null) ? 0 : getType().toLowerCase().hashCode()); result = prime * result + ((unit == null) ? 0 : unit.toLowerCase().hashCode()); result = prime * result + ((aggregate == null) ? 0 : aggregate.toLowerCase().hashCode()); result = prime * result + ((formatString == null) ? 0 : formatString.toLowerCase().hashCode()); return result; }
@Override public String toString() { String str = super.toString() + ":" + getType(); if (unit != null) { str += ",unit:" + unit; } if (aggregate != null) { str += ",aggregate:" + aggregate; } if (formatString != null) { str += ",formatString:" + formatString; } return str; }
@Override public String toString() { String str = super.toString() + ":" + getType(); if (unit != null) { str += ",unit:" + unit; } if (aggregate != null) { str += ",aggregate:" + aggregate; } if (formatString != null) { str += ",formatString:" + formatString; } return str; }
@Override public void addProperties(Map<String, String> props) { super.addProperties(props); props.put(MetastoreUtil.getMeasureClassPropertyKey(getName()), getClass().getName()); props.put(MetastoreUtil.getMeasureTypePropertyKey(getName()), getType()); if (unit != null) { props.put(MetastoreUtil.getMeasureUnitPropertyKey(getName()), unit); } if (getFormatString() != null) { props.put(MetastoreUtil.getMeasureFormatPropertyKey(getName()), formatString); } if (aggregate != null) { props.put(MetastoreUtil.getMeasureAggrPropertyKey(getName()), aggregate); } if (min != null) { props.put(MetastoreUtil.getMeasureMinPropertyKey(getName()), min.toString()); } if (max != null) { props.put(MetastoreUtil.getMeasureMaxPropertyKey(getName()), max.toString()); } } }
@Override public void addProperties(Map<String, String> props) { super.addProperties(props); props.put(MetastoreUtil.getMeasureClassPropertyKey(getName()), getClass().getName()); props.put(MetastoreUtil.getMeasureTypePropertyKey(getName()), getType()); if (unit != null) { props.put(MetastoreUtil.getMeasureUnitPropertyKey(getName()), unit); } if (getFormatString() != null) { props.put(MetastoreUtil.getMeasureFormatPropertyKey(getName()), formatString); } if (aggregate != null) { props.put(MetastoreUtil.getMeasureAggrPropertyKey(getName()), aggregate); } if (min != null) { props.put(MetastoreUtil.getMeasureMinPropertyKey(getName()), min.toString()); } if (max != null) { props.put(MetastoreUtil.getMeasureMaxPropertyKey(getName()), max.toString()); } } }
@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)); }
assertNotNull(altered.getMeasureByName("testAddMsr1")); CubeMeasure addedMsr = altered.getMeasureByName("testAddMsr1"); assertEquals(addedMsr.getType(), "int"); assertNotNull(altered.getDimAttributeByName("testAddDim1")); BaseDimAttribute addedDim = (BaseDimAttribute) altered.getDimAttributeByName("testAddDim1"); addedMsr = altered.getMeasureByName("testaddmsr1"); assertNotNull(addedMsr); assertEquals(addedMsr.getType(), "double"); assertTrue(client.getAllFacts(altered).isEmpty());
/** * Create XMeasure from hive ql cube measure */ public static XMeasure xMeasureFromHiveMeasure(CubeMeasure cm) { if (cm == null) { return null; } XMeasure xm = XCF.createXMeasure(); xm.setName(cm.getName()); xm.setDescription(cm.getDescription()); xm.setDisplayString(cm.getDisplayString()); xm.setDefaultAggr(cm.getAggregate()); xm.setFormatString(cm.getFormatString()); xm.setType(XMeasureType.valueOf(cm.getType().toUpperCase())); xm.setUnit(cm.getUnit()); xm.setStartTime(getXMLGregorianCalendar(cm.getStartTime())); xm.setEndTime(getXMLGregorianCalendar(cm.getEndTime())); xm.setMin(cm.getMin()); xm.setMax(cm.getMax()); xm.setTags(getXProperties(xPropertiesFromMap(cm.getTags()))); return xm; }
/** * Create XMeasure from hive ql cube measure */ public static XMeasure xMeasureFromHiveMeasure(CubeMeasure cm) { if (cm == null) { return null; } XMeasure xm = XCF.createXMeasure(); xm.setName(cm.getName()); xm.setDescription(cm.getDescription()); xm.setDisplayString(cm.getDisplayString()); xm.setDefaultAggr(cm.getAggregate()); xm.setFormatString(cm.getFormatString()); xm.setType(XMeasureType.valueOf(cm.getType().toUpperCase())); xm.setUnit(cm.getUnit()); xm.setStartTime(getXMLGregorianCalendar(cm.getStartTime())); xm.setEndTime(getXMLGregorianCalendar(cm.getEndTime())); xm.setMin(cm.getMin()); xm.setMax(cm.getMax()); xm.setTags(getXProperties(xPropertiesFromMap(cm.getTags()))); return xm; }