private void update(HybridInstance hybridInstance, List<RealizationEntry> realizationEntries, String projectName, String owner, boolean checkCubeSize) throws IOException { if (checkCubeSize) checkSegmentOffset(realizationEntries); hybridInstance.setRealizationEntries(realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); hybridManager.reloadHybridInstance(hybridInstance.getName()); logger.info("HybridInstance was updated at: " + hybridInstance.getResourcePath()); }
private void delete(HybridInstance hybridInstance) throws IOException { ProjectManager.getInstance(kylinConfig).removeRealizationsFromProjects(RealizationType.HYBRID, hybridInstance.getName()); store.deleteResource(hybridInstance.getResourcePath()); hybridManager.reloadAllHybridInstance(); logger.info("HybridInstance was deleted at: " + hybridInstance.getResourcePath()); }
IRealization realization = registry.getRealization(realizationEntries.get(i).getType(), realizationEntries.get(i).getRealization()); if (realization == null) { logger.error("Realization '" + realizationEntries.get(i) + " is not found, remove from Hybrid '" + this.getName() + "'"); continue; logger.error("Realization '" + realization.getName() + " is disabled, remove from Hybrid '" + this.getName() + "'"); continue;
private HybridInstance create(String hybridName, List<RealizationEntry> realizationEntries, String projectName, String owner) throws IOException { checkSegmentOffset(realizationEntries); HybridInstance hybridInstance = HybridInstance.create(kylinConfig, hybridName, realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); hybridManager.reloadHybridInstance(hybridName); logger.info("HybridInstance was created at: " + hybridInstance.getResourcePath()); return hybridInstance; }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { if ("hybrid".equals(entity)) { String hybridName = cacheKey; try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) hybridMap.removeLocal(hybridName); else crud.reloadQuietly(hybridName); } for (ProjectInstance prj : ProjectManager.getInstance(config).findProjects(RealizationType.HYBRID, hybridName)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } else if ("cube".equals(entity)) { String cubeName = cacheKey; try (AutoLock l = lock.lockForWrite()) { for (HybridInstance hybrid : getHybridInstancesByChild(RealizationType.CUBE, cubeName)) { crud.reloadQuietly(hybrid.getName()); } } } } }
cubeNames[i] = cubeRealizationEntries.get(i).getRealization(); hybridService.updateHybridCubeNoCheck(instance.getName(), projectInstance.getName(), cube.getModel().getName(), cubeNames);
HybridInstance hybridInstance = HybridInstance.create(kylinConfig, renameHybrid(cubeInstance.getName()), realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); logger.info("HybridInstance was saved at: " + hybridInstance.getResourcePath());
addRequired(HybridInstance.concatResourcePath(hybridInstance.getName())); for (IRealization iRealization : hybridInstance.getRealizations()) { if (iRealization.getType() != RealizationType.CUBE) {
HybridInstance hybridInstance = HybridInstance.create(kylinConfig, renameHybrid(cubeInstance.getName()), realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); logger.info("HybridInstance was saved at: " + hybridInstance.getResourcePath());
@Test public void test2Update() throws IOException { HybridManager hybridManager = HybridManager.getInstance(KylinConfig.getInstanceFromEnv()); Assert.assertNull(hybridManager.getHybridInstance("ssb_hybrid")); HybridCubeCLI.main(new String[] { "-name", "ssb_hybrid", "-project", "default", "-model", "ssb", "-cubes", "ssb_cube1,ssb_cube2", "-action", "create" }); HybridInstance hybridInstance = hybridManager.getHybridInstance("ssb_hybrid"); Assert.assertNotNull(hybridManager.getHybridInstance("ssb_hybrid")); Assert.assertEquals("ssb_hybrid", hybridInstance.getName()); Assert.assertEquals(2, hybridInstance.getRealizationEntries().size()); HybridCubeCLI.main(new String[] { "-name", "ssb_hybrid", "-project", "default", "-model", "ssb", "-cubes", "ssb_cube1,ssb_cube2,ssb_cube3", "-action", "update" }); hybridInstance = hybridManager.getHybridInstance("ssb_hybrid"); Assert.assertNotNull(hybridInstance); Assert.assertEquals("ssb_hybrid", hybridInstance.getName()); Assert.assertEquals(3, hybridInstance.getRealizationEntries().size()); }
@Test public void test1Create() throws IOException { HybridManager hybridManager = HybridManager.getInstance(KylinConfig.getInstanceFromEnv()); Assert.assertNull(hybridManager.getHybridInstance("ssb_hybrid")); HybridCubeCLI.main(new String[] { "-name", "ssb_hybrid", "-project", "default", "-model", "ssb", "-cubes", "ssb_cube1,ssb_cube2", "-action", "create" }); HybridInstance hybridInstance = hybridManager.getHybridInstance("ssb_hybrid"); Assert.assertNotNull(hybridInstance); Assert.assertEquals("ssb_hybrid", hybridInstance.getName()); Assert.assertEquals(2, hybridInstance.getRealizationEntries().size()); }
IRealization realization = registry.getRealization(realizationEntries.get(i).getType(), realizationEntries.get(i).getRealization()); if (realization == null) { logger.error("Realization '" + realizationEntries.get(i) + " is not found, remove from Hybrid '" + this.getName() + "'"); continue; logger.error("Realization '" + realization.getName() + " is disabled, remove from Hybrid '" + this.getName() + "'"); continue;
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { if ("hybrid".equals(entity)) { String hybridName = cacheKey; try (AutoLock l = lock.lockForWrite()) { if (event == Event.DROP) hybridMap.removeLocal(hybridName); else crud.reloadQuietly(hybridName); } for (ProjectInstance prj : ProjectManager.getInstance(config).findProjects(RealizationType.HYBRID, hybridName)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } else if ("cube".equals(entity)) { String cubeName = cacheKey; try (AutoLock l = lock.lockForWrite()) { for (HybridInstance hybrid : getHybridInstancesByChild(RealizationType.CUBE, cubeName)) { crud.reloadQuietly(hybrid.getName()); } } } } }
addRequired(HybridInstance.concatResourcePath(hybridInstance.getName())); for (IRealization iRealization : hybridInstance.getRealizations()) { if (iRealization.getType() != RealizationType.CUBE) {
HybridInstance hybridInstance = HybridInstance.create(kylinConfig, renameHybrid(cubeInstance.getName()), realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); logger.info("HybridInstance was saved at: " + hybridInstance.getResourcePath());
HybridInstance hybridInstance = HybridInstance.create(kylinConfig, renameHybrid(cubeInstance.getName()), realizationEntries); store.checkAndPutResource(hybridInstance.getResourcePath(), hybridInstance, HybridManager.HYBRID_SERIALIZER); ProjectManager.getInstance(kylinConfig).moveRealizationToProject(RealizationType.HYBRID, hybridInstance.getName(), projectName, owner); logger.info("HybridInstance was saved at: " + hybridInstance.getResourcePath());