You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ya...@apache.org on 2022/03/28 11:09:15 UTC

[kylin] 02/02: MDX query demo

This is an automated email from the ASF dual-hosted git repository.

yaqian pushed a commit to branch mdx-query-demo
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit c97d174517ed1c7aef8299f867927e5552527a65
Author: yaqian.zhang <59...@qq.com>
AuthorDate: Mon Mar 28 19:06:30 2022 +0800

    MDX query demo
---
 .../mdxquerydemo/MdxQueryDemoApplication.java      | 47 ++++++++++++++++------
 1 file changed, 34 insertions(+), 13 deletions(-)

diff --git a/src/main/java/io/kyligence/mdxquerydemo/MdxQueryDemoApplication.java b/src/main/java/io/kyligence/mdxquerydemo/MdxQueryDemoApplication.java
index a3c0eb2..96f0142 100644
--- a/src/main/java/io/kyligence/mdxquerydemo/MdxQueryDemoApplication.java
+++ b/src/main/java/io/kyligence/mdxquerydemo/MdxQueryDemoApplication.java
@@ -9,27 +9,48 @@ import java.sql.DriverManager;
 public class MdxQueryDemoApplication {
 
     public static void main(String[] args) throws Exception {
+        String mdx_ip = args.length != 0 ? args[0] : "localhost";
         Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver");
         Connection connection =
                 DriverManager.getConnection(
-                        "jdbc:xmla:Server=http://localhost:7080/mdx/xmla/learn_kylin?username=ADMIN&password=KYLIN");
+                        "jdbc:xmla:Server=http://" + mdx_ip + ":7080/mdx/xmla/test_covid_project?username=ADMIN&password=KYLIN");
         OlapConnection olapConnection = connection.unwrap(OlapConnection.class);
         OlapStatement statement = olapConnection.createStatement();
-        String mdx = "SELECT NON EMPTY Hierarchize(AddCalculatedMembers({DrilldownLevel({[KYLIN_COUNTRY].[NAME].[All]})})) " +
-                "DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS  FROM [test001] WHERE ([Measures].[SUM_PRICE]) " +
-                "CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS";
+        String mdx = "SELECT\n" +
+                "{[Measures].DefaultMember} DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_ORDINAL],[MEMBER_CAPTION] ON COLUMNS,\n" +
+                "NON EMPTY CROSSJOIN(\n" +
+                "  [DROPOFF_NEWYORK_ZONE].[BOROUGH].[BOROUGH].AllMembers,\n" +
+                "  [PICKUP_NEWYORK_ZONE].[BOROUGH].[BOROUGH].AllMembers) DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_ORDINAL],[MEMBER_CAPTION] ON ROWS\n" +
+                "FROM [nyc_taxi_coivd_dataset]";
         CellSet cellSet =
                 statement.executeOlapQuery(mdx);
-        for (Position column : cellSet.getAxes().get(0)) {
-            for (Member member : column.getMembers()) {
-                System.out.println(member.getUniqueName());
+
+        boolean flag = false;
+        for (Position row : cellSet.getAxes().get(1)) {
+            for (Position column : cellSet.getAxes().get(0)) {
+                if (!flag) {
+                    flag = true;
+                    for (Member member : row.getMembers()) {
+                        String name = member.getUniqueName();
+                        String[] s = name.split("\\.");
+                        if (s.length > 1) {
+                            name = s[0].concat(s[1]);
+                        }
+                        System.out.print(name);
+                        System.out.print("  ");
+                    }
+                    for (Member member : column.getMembers()) {
+                        System.out.println(member.getUniqueName());
+                        System.out.println("-------------------------------------------------------------------------");
+                    }
+                }
+                for (Member member : row.getMembers()) {
+                    System.out.print(member.getCaption());
+                    System.out.print("        ");
+                }
+                final Cell cell = cellSet.getCell(column, row);
+                System.out.println(cell.getFormattedValue());
             }
-            final Cell cell = cellSet.getCell(column);
-            System.out.println(cell.getValue());
-            System.out.println();
         }
     }
-
-
-
 }