You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2017/11/05 11:12:34 UTC
kylin git commit: KYLIN-3009 API to get Cube join SQL
Repository: kylin
Updated Branches:
refs/heads/master b3552c977 -> 4917c6581
KYLIN-3009 API to get Cube join SQL
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/4917c658
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/4917c658
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/4917c658
Branch: refs/heads/master
Commit: 4917c658104af65abe48c2caffd0ceb532c5b3c4
Parents: b3552c9
Author: shaofengshi <sh...@apache.org>
Authored: Sun Nov 5 19:10:26 2017 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Sun Nov 5 19:10:26 2017 +0800
----------------------------------------------------------------------
.../kylin/rest/controller/CubeController.java | 40 ++++++++++++++++++--
1 file changed, 36 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/4917c658/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
index b6ec0e2..ad00706 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
@@ -21,7 +21,6 @@ package org.apache.kylin.rest.controller;
import static org.apache.kylin.rest.service.CubeService.VALID_CUBENAME;
import java.io.IOException;
-import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -154,12 +153,37 @@ public class CubeController extends BasicController {
return cube;
}
+
+ /**
+ * Get SQL of a Cube
+ *
+ * @param cubeName Cube Name
+ * @return
+ * @throws IOException
+ */
+ @RequestMapping(value = "/{cubeName}/sql", method = { RequestMethod.GET }, produces = {
+ "application/json" })
+ @ResponseBody
+ public GeneralResponse getSql(@PathVariable String cubeName) {
+ CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
+ if (cube == null) {
+ throw new InternalErrorException("Cannot find cube " + cubeName);
+ }
+ IJoinedFlatTableDesc flatTableDesc = EngineFactory.getJoinedFlatTableDesc(cube.getDescriptor());
+ String sql = JoinedFlatTable.generateSelectDataStatement(flatTableDesc);
+
+ GeneralResponse response = new GeneralResponse();
+ response.setProperty("sql", sql);
+
+ return response;
+ }
+
/**
- * Get hive SQL of the cube
+ * Get SQL of a Cube segment
*
* @param cubeName Cube Name
+ * @param segmentName Segment Name
* @return
- * @throws UnknownHostException
* @throws IOException
*/
@RequestMapping(value = "/{cubeName}/segs/{segmentName}/sql", method = { RequestMethod.GET }, produces = {
@@ -167,7 +191,15 @@ public class CubeController extends BasicController {
@ResponseBody
public GeneralResponse getSql(@PathVariable String cubeName, @PathVariable String segmentName) {
CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
- IJoinedFlatTableDesc flatTableDesc = EngineFactory.getJoinedFlatTableDesc(cube.getDescriptor());
+ if (cube == null) {
+ throw new InternalErrorException("Cannot find cube " + cubeName);
+ }
+
+ CubeSegment segment = cube.getSegment(segmentName, null);
+ if (segment == null) {
+ throw new InternalErrorException("Cannot find segment " + segmentName);
+ }
+ IJoinedFlatTableDesc flatTableDesc = EngineFactory.getJoinedFlatTableDesc(segment);
String sql = JoinedFlatTable.generateSelectDataStatement(flatTableDesc);
GeneralResponse response = new GeneralResponse();