public CubeColumn getColumnByName(String column) { CubeColumn cubeCol = super.getExpressionByName(column); if (cubeCol == null) { cubeCol = getAttributeByName(column); } return cubeCol; }
public CubeColumn getColumnByName(String column) { CubeColumn cubeCol = super.getExpressionByName(column); if (cubeCol == null) { cubeCol = getAttributeByName(column); } return cubeCol; }
/** * Remove the dimension with name specified * * @param attrName */ public void removeAttribute(String attrName) { if (attributeMap.containsKey(attrName.toLowerCase())) { log.info("Removing attribute {}", getAttributeByName(attrName)); attributes.remove(getAttributeByName(attrName)); attributeMap.remove(attrName.toLowerCase()); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); } }
/** * Remove the dimension with name specified * * @param attrName */ public void removeAttribute(String attrName) { if (attributeMap.containsKey(attrName.toLowerCase())) { log.info("Removing attribute {}", getAttributeByName(attrName)); attributes.remove(getAttributeByName(attrName)); attributeMap.remove(attrName.toLowerCase()); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); } }
/** * Alters the attribute if already existing or just adds if it is new attribute * * @param attribute */ public void alterAttribute(@NonNull CubeDimAttribute attribute) { // Replace dimension if already existing if (attributeMap.containsKey(attribute.getName().toLowerCase())) { attributes.remove(getAttributeByName(attribute.getName())); log.info("Replacing attribute {} with {}", getAttributeByName(attribute.getName()), attribute); } attributes.add(attribute); attributeMap.put(attribute.getName().toLowerCase(), attribute); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); attribute.addProperties(getProperties()); }
/** * Alters the attribute if already existing or just adds if it is new attribute * * @param attribute */ public void alterAttribute(@NonNull CubeDimAttribute attribute) { // Replace dimension if already existing if (attributeMap.containsKey(attribute.getName().toLowerCase())) { attributes.remove(getAttributeByName(attribute.getName())); log.info("Replacing attribute {} with {}", getAttributeByName(attribute.getName()), attribute); } attributes.add(attribute); attributeMap.put(attribute.getName().toLowerCase(), attribute); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); attribute.addProperties(getProperties()); }
private void validateDim(Dimension udim, Set<CubeDimAttribute> attrs, String basedim, String referdim) throws HiveException, LensException { assertTrue(client.tableExists(udim.getName())); Table dimTbl = client.getHiveTable(udim.getName()); assertTrue(client.isDimension(dimTbl)); Dimension dim = new Dimension(dimTbl); assertTrue(udim.equals(dim), "Equals failed for " + dim.getName()); assertTrue(udim.equals(client.getDimension(udim.getName()))); assertEquals(dim.getAttributes().size(), attrs.size()); assertNotNull(dim.getAttributeByName(basedim)); assertTrue(dim.getAttributeByName(basedim) instanceof BaseDimAttribute); if (referdim != null) { assertNotNull(dim.getAttributeByName(referdim)); assertTrue(dim.getAttributeByName(referdim) instanceof ReferencedDimAttribute); } assertEquals(udim.getAttributeNames().size() + udim.getExpressionNames().size(), dim.getAllFieldNames().size()); }
assertNotNull(dim.getAttributeByName("col1")); assertEquals(dim.getAttributeByName("col1").getDescription(), "first column"); assertEquals(dim.getAttributeByName("col1").getDisplayString(), "Column1"); assertNotNull(dim.getAttributeByName("col2")); assertEquals(dim.getAttributeByName("col2").getDescription(), "second column"); assertEquals(dim.getAttributeByName("col2").getDisplayString(), "Column2"); assertNotNull(dim.getExpressionByName("dimexpr")); assertEquals(dim.getExpressionByName("dimexpr").getDescription(), "dimension expression"); assertEquals(dim.getExpressionByName("dimexpr").getDisplayString(), "Dim Expression"); assertNotNull(dim.getAttributeByName("col3")); BaseDimAttribute col3 = (BaseDimAttribute) dim.getAttributeByName("col3"); assertEquals(col3.getDescription(), "inline column"); assertEquals(col3.getDisplayString(), "Column3"); assertEquals(col3.getValues().get().get(2), "Val3"); assertEquals(col3.getNumOfDistinctValues().get(), (Long) 3L); assertNotNull(dim.getAttributeByName("col4")); HierarchicalDimAttribute col4 = (HierarchicalDimAttribute) dim.getAttributeByName("col4"); assertEquals(col4.getDescription(), "hierarchical column"); BaseDimAttribute col4h1 = (BaseDimAttribute) col4.getHierarchy().get(0); assertEquals(col4h3.getChainRefColumns().get(0).getRefColumn(), "col2"); assertEquals(col4h3.getNumOfDistinctValues().get(), (Long) 1000L); assertNotNull(dim.getAttributeByName("col5")); ReferencedDimAttribute col5 = (ReferencedDimAttribute) dim.getAttributeByName("col5"); assertEquals(col5.getDescription(), "ref column"); assertEquals(col5.getDisplayString(), "Column5"); assertNotNull(dim.getAttributeByName("col3Added"));
assertNotNull(altered.getAttributeByName("newZipDim")); assertNotNull(altered.getAttributeByName("newRefDim")); assertNotNull(altered.getAttributeByName("f2")); assertNotNull(altered.getAttributeByName("stateid")); assertNull(altered.getAttributeByName("f1")); assertEquals(1, altered.getExpressions().size()); assertNotNull(altered.getExpressionByName("formattedcode")); assertEquals(altered.getExpressionByName("formattedcode").getExpr(), "format_number(code, \"#,###,###\")"); CubeDimAttribute newzipdim = altered.getAttributeByName("newZipDim"); assertTrue(newzipdim instanceof BaseDimAttribute); assertEquals(((BaseDimAttribute) newzipdim).getType(), "int"); assertEquals((((BaseDimAttribute) newzipdim).getNumOfDistinctValues().get()), Long.valueOf(1000)); CubeDimAttribute newrefdim = altered.getAttributeByName("newRefDim"); assertTrue(newrefdim instanceof ReferencedDimAttribute); assertEquals(((ReferencedDimAttribute) newrefdim).getChainRefColumns().size(), 1); assertEquals(((ReferencedDimAttribute) newrefdim).getChainRefColumns().get(0).getRefColumn(), "name"); CubeDimAttribute f2 = altered.getAttributeByName("f2"); assertTrue(f2 instanceof BaseDimAttribute); assertEquals(((BaseDimAttribute) f2).getType(), "varchar"); CubeDimAttribute stateid = altered.getAttributeByName("stateid"); assertTrue(stateid instanceof BaseDimAttribute); assertEquals(stateid.getDisplayString(), "State refer altered");