本文整理汇总了Java中org.apache.kylin.dict.DictionaryManager.getInstance方法的典型用法代码示例。如果您正苦于以下问题:Java DictionaryManager.getInstance方法的具体用法?Java DictionaryManager.getInstance怎么用?Java DictionaryManager.getInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.kylin.dict.DictionaryManager
的用法示例。
在下文中一共展示了DictionaryManager.getInstance方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: makeDictForNewSegment
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
/**
* For the new segment, we need to create new dimension dictionaries by merging underlying
* dictionaries. (https://issues.apache.org/jira/browse/KYLIN-2457, https://issues.apache.org/jira/browse/KYLIN-2800)
* @param cube
* @param newSeg
* @throws IOException
*/
private void makeDictForNewSegment(KylinConfig conf, CubeInstance cube, CubeSegment newSeg, List<CubeSegment> mergingSegments) throws IOException {
DictionaryManager dictMgr = DictionaryManager.getInstance(conf);
CubeDesc cubeDesc = cube.getDescriptor();
for (TblColRef col : cubeDesc.getAllColumnsNeedDictionaryBuilt()) {
logger.info("Merging fact table dictionary on : " + col);
List<DictionaryInfo> dictInfos = new ArrayList<DictionaryInfo>();
for (CubeSegment segment : mergingSegments) {
logger.info("Including fact table dictionary of segment : " + segment);
if (segment.getDictResPath(col) != null) {
DictionaryInfo dictInfo = dictMgr.getDictionaryInfo(segment.getDictResPath(col));
if (dictInfo != null && !dictInfos.contains(dictInfo)) {
dictInfos.add(dictInfo);
} else {
logger.warn("Failed to load DictionaryInfo from " + segment.getDictResPath(col));
}
}
}
mergeDictionaries(dictMgr, newSeg, dictInfos, col);
}
}
示例2: writeDictionary
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
public static Map<TblColRef, Dictionary<String>> writeDictionary(CubeSegment cubeSegment, Map<TblColRef, Dictionary<String>> dictionaryMap, long startOffset, long endOffset) {
Map<TblColRef, Dictionary<String>> realDictMap = Maps.newHashMap();
for (Map.Entry<TblColRef, Dictionary<String>> entry : dictionaryMap.entrySet()) {
final TblColRef tblColRef = entry.getKey();
final Dictionary<String> dictionary = entry.getValue();
IReadableTable.TableSignature signature = new IReadableTable.TableSignature();
signature.setLastModifiedTime(System.currentTimeMillis());
signature.setPath(String.format("streaming_%s_%s", startOffset, endOffset));
signature.setSize(endOffset - startOffset);
DictionaryInfo dictInfo = new DictionaryInfo(tblColRef.getColumnDesc(), tblColRef.getDatatype(), signature);
logger.info("writing dictionary for TblColRef:" + tblColRef.toString());
DictionaryManager dictionaryManager = DictionaryManager.getInstance(cubeSegment.getCubeDesc().getConfig());
try {
DictionaryInfo realDict = dictionaryManager.trySaveNewDict(dictionary, dictInfo);
cubeSegment.putDictResPath(tblColRef, realDict.getResourcePath());
realDictMap.put(tblColRef, (Dictionary<String>) realDict.getDictionaryObject());
} catch (IOException e) {
throw new RuntimeException("error save dictionary for column:" + tblColRef, e);
}
}
return realDictMap;
}
示例3: basic
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
@Test
public void basic() throws Exception {
dictMgr = DictionaryManager.getInstance(getTestConfig());
CubeDesc cubeDesc = CubeDescManager.getInstance(getTestConfig()).getCubeDesc("test_kylin_cube_without_slr_desc");
TblColRef col = cubeDesc.findColumnRef("DEFAULT.TEST_KYLIN_FACT", "LSTG_FORMAT_NAME");
MockDistinctColumnValuesProvider mockupData = new MockDistinctColumnValuesProvider("A", "B", "C");
DictionaryInfo info1 = dictMgr.buildDictionary(col, mockupData.getDistinctValuesFor(col));
System.out.println(JsonUtil.writeValueAsIndentString(info1));
DictionaryInfo info2 = dictMgr.buildDictionary(col, mockupData.getDistinctValuesFor(col));
System.out.println(JsonUtil.writeValueAsIndentString(info2));
// test check duplicate
assertTrue(info1.getUuid() == info2.getUuid());
assertTrue(info1 == dictMgr.getDictionaryInfo(info1.getResourcePath()));
assertTrue(info2 == dictMgr.getDictionaryInfo(info2.getResourcePath()));
assertTrue(info1.getDictionaryObject() == info2.getDictionaryObject());
// verify dictionary entries
@SuppressWarnings("unchecked")
Dictionary<String> dict = (Dictionary<String>) info1.getDictionaryObject();
int id = 0;
for (String v : mockupData.set) {
assertEquals(id, dict.getIdFromValue(v, 0));
assertEquals(v, dict.getValueFromId(id));
id++;
}
// test empty dictionary
MockDistinctColumnValuesProvider mockupEmpty = new MockDistinctColumnValuesProvider();
DictionaryInfo info3 = dictMgr.buildDictionary(col, mockupEmpty.getDistinctValuesFor(col));
System.out.println(JsonUtil.writeValueAsIndentString(info3));
assertEquals(0, info3.getCardinality());
assertEquals(0, info3.getDictionaryObject().getSize());
System.out.println(info3.getDictionaryObject().getMaxId());
System.out.println(info3.getDictionaryObject().getMinId());
System.out.println(info3.getDictionaryObject().getSizeOfId());
}
示例4: setup
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
@Override
protected void setup(Context context) throws IOException {
super.publishConfiguration(context.getConfiguration());
Configuration conf = context.getConfiguration();
KylinConfig config = AbstractHadoopJob.loadKylinPropsAndMetadata(conf);
cubeName = conf.get(BatchConstants.CFG_CUBE_NAME);
cube = CubeManager.getInstance(config).getCube(cubeName);
cubeDesc = cube.getDescriptor();
intermediateTableDesc = new CubeJoinedFlatTableDesc(cubeDesc, null);
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findById(cubeDesc, baseCuboidId);
List<TblColRef> columns = baseCuboid.getColumns();
ArrayList<Integer> factDictCols = new ArrayList<Integer>();
RowKeyDesc rowkey = cubeDesc.getRowkey();
DictionaryManager dictMgr = DictionaryManager.getInstance(config);
for (int i = 0; i < columns.size(); i++) {
TblColRef col = columns.get(i);
if (rowkey.isUseDictionary(col) == false)
continue;
String scanTable = (String) dictMgr.decideSourceData(cubeDesc.getModel(), cubeDesc.getRowkey().getDictionary(col), col, null)[0];
if (cubeDesc.getModel().isFactTable(scanTable)) {
factDictCols.add(i);
}
}
this.factDictCols = new int[factDictCols.size()];
for (int i = 0; i < factDictCols.size(); i++)
this.factDictCols[i] = factDictCols.get(i);
schema = HCatInputFormat.getTableSchema(context.getConfiguration());
}
示例5: TableRecordInfo
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
public TableRecordInfo(IISegment iiSegment) {
seg = iiSegment;
desc = seg.getIIInstance().getDescriptor();
allColumns = desc.listAllColumns();
nColumns = allColumns.size();
dictionaries = new Dictionary<?>[nColumns];
measureSerializers = new FixedLenMeasureCodec<?>[nColumns];
DictionaryManager dictMgr = DictionaryManager.getInstance(desc.getConfig());
int index = 0;
for (TblColRef tblColRef : desc.listAllColumns()) {
ColumnDesc col = tblColRef.getColumn();
if (desc.isMetricsCol(index)) {
measureSerializers[index] = FixedLenMeasureCodec.get(col.getType());
} else {
String dictPath = seg.getDictResPath(tblColRef);
try {
dictionaries[index] = dictMgr.getDictionary(dictPath);
} catch (IOException e) {
throw new RuntimeException("dictionary " + dictPath + " does not exist ", e);
}
}
index++;
}
digest = createDigest();
}
示例6: getDictionaryManager
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
private DictionaryManager getDictionaryManager() {
return DictionaryManager.getInstance(config);
}
示例7: setUp
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
@Before
public void setUp() throws Exception {
createTestMetadata();
logger.info("The metadataUrl is : " + getTestConfig());
MetadataManager.clearCache();
CubeManager.clearCache();
ProjectManager.clearCache();
DictionaryManager.clearCache();
// hack for distributed cache
// CubeManager.removeInstance(KylinConfig.createInstanceFromUri("../job/meta"));//to
// make sure the following mapper could get latest CubeManger
FileUtils.deleteDirectory(new File("../job/meta"));
MergeCuboidMapper mapper = new MergeCuboidMapper();
mapDriver = MapDriver.newMapDriver(mapper);
cubeManager = CubeManager.getInstance(getTestConfig());
cube = cubeManager.getCube("test_kylin_cube_without_slr_left_join_ready_2_segments");
dictionaryManager = DictionaryManager.getInstance(getTestConfig());
lfn = cube.getDescriptor().findColumnRef("DEFAULT.TEST_KYLIN_FACT", "LSTG_FORMAT_NAME");
lsi = cube.getDescriptor().findColumnRef("DEFAULT.TEST_KYLIN_FACT", "CAL_DT");
ssc = cube.getDescriptor().findColumnRef("DEFAULT.TEST_CATEGORY_GROUPINGS", "META_CATEG_NAME");
DictionaryInfo sharedDict = makeSharedDict();
boolean isFirstSegment = true;
for (CubeSegment segment : cube.getSegments()) {
TableSignature signature = new TableSignature();
signature.setSize(100);
signature.setLastModifiedTime(System.currentTimeMillis());
signature.setPath("fake_dict_for" + lfn.getName() + segment.getName());
DictionaryInfo newDictInfo = new DictionaryInfo(lfn.getTable(), lfn.getColumn().getName(), lfn.getColumn().getZeroBasedIndex(), "string", signature, "");
List<byte[]> values = new ArrayList<byte[]>();
values.add(new byte[] { 97, 97, 97 });
if (isFirstSegment)
values.add(new byte[] { 99, 99, 99 });
else
values.add(new byte[] { 98, 98, 98 });
Dictionary<?> dict = DictionaryGenerator.buildDictionaryFromValueList(newDictInfo, values);
dictionaryManager.trySaveNewDict(dict, newDictInfo);
((TrieDictionary) dict).dump(System.out);
segment.putDictResPath(lfn, newDictInfo.getResourcePath());
segment.putDictResPath(lsi, sharedDict.getResourcePath());
segment.putDictResPath(ssc, sharedDict.getResourcePath());
// cubeManager.saveResource(segment.getCubeInstance());
// cubeManager.afterCubeUpdated(segment.getCubeInstance());
cubeManager.updateCube(cube);
isFirstSegment = false;
}
}
示例8: setup
import org.apache.kylin.dict.DictionaryManager; //导入方法依赖的package包/类
@Before
public void setup() throws Exception {
createTestMetadata();
dictMgr = DictionaryManager.getInstance(getTestConfig());
}