Repository: kylin Updated Branches: refs/heads/document 6616266d0 -> 59913167a
http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/create_cube.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/create_cube.md b/website/_docs16/tutorial/create_cube.md new file mode 100644 index 0000000..25b304f --- /dev/null +++ b/website/_docs16/tutorial/create_cube.md @@ -0,0 +1,198 @@ +--- +layout: docs16 +title: Kylin Cube Creation +categories: tutorial +permalink: /docs16/tutorial/create_cube.html +--- + +This tutorial will guide you to create a cube. It need you have at least 1 sample table in Hive. If you don't have, you can follow this to create some data. + +### I. Create a Project +1. Go to `Query` page in top menu bar, then click `Manage Projects`. + +  + +2. Click the `+ Project` button to add a new project. + +  + +3. Enter a project name, e.g, "Tutorial", with a description (optional), then click `submit` button to send the request. + +  + +4. After success, the project will show in the table. + +  + +### II. Sync up Hive Table +1. Click `Model` in top bar and then click `Data Source` tab in the left part, it lists all the tables loaded into Kylin; click `Load Hive Table` button. + +  + +2. Enter the hive table names, separated with commad, and then click `Sync` to send the request. + +  + +3. [Optional] If you want to browser the hive database to pick tables, click the `Load Hive Table From Tree` button. + +  + +4. [Optional] Expand the database node, click to select the table to load, and then click `Sync`. + +  + +5. A success message will pop up. In the left `Tables` section, the newly loaded table is added. Click the table name will expand the columns. + +  + +6. In the background, Kylin will run a MapReduce job to calculate the approximate cardinality for the newly synced table. After the job be finished, refresh web page and then click the table name, the cardinality will be shown in the table info. + +  + + +### III. Create Data Model +Before create a cube, need define a data model. The data model defines the star schema. One data model can be reused in multiple cubes. + +1. Click `Model` in top bar, and then click `Models` tab. Click `+New` button, in the drop-down list select `New Model`. + +  + +2. Enter a name for the model, with an optional description. + +  + +3. In the `Fact Table` box, select the fact table of this data model. + +  + +4. [Optional] Click `Add Lookup Table` button to add a lookup table. Select the table name and join type (inner or left). + +  + +5. [Optional] Click `New Join Condition` button, select the FK column of fact table in the left, and select the PK column of lookup table in the right side. Repeat this if have more than one join columns. + +  + +6. Click "OK", repeat step 4 and 5 to add more lookup tables if any. After finished, click "Next". + +7. The "Dimensions" page allows to select the columns that will be used as dimension in the child cubes. Click the `Columns` cell of a table, in the drop-down list select the column to the list. + +  + +8. Click "Next" go to the "Measures" page, select the columns that will be used in measure/metrics. The measure column can only from fact table. + +  + +9. Click "Next" to the "Settings" page. If the data in fact table increases by day, select the corresponding date column in the `Partition Date Column`, and select the date format, otherwise leave it as blank. + +10. [Optional] Select `Cube Size`, which is an indicator on the scale of the cube, by default it is `MEDIUM`. + +11. [Optional] If some records want to excluded from the cube, like dirty data, you can input the condition in `Filter`. + + +  + +12. Click `Save` and then select `Yes` to save the data model. After created, the data model will be shown in the left `Models` list. + +  + +### IV. Create Cube +After the data model be created, you can start to create cube. + +Click `Model` in top bar, and then click `Models` tab. Click `+New` button, in the drop-down list select `New Cube`. +  + + +**Step 1. Cube Info** + +Select the data model, enter the cube name; Click `Next` to enter the next step. + +You can use letters, numbers and '_' to name your cube (blank space in name is not allowed). `Notification List` is a list of email addresses which be notified on cube job success/failure. +  + + +**Step 2. Dimensions** + +1. Click `Add Dimension`, it popups two option: "Normal" and "Derived": "Normal" is to add a normal independent dimension column, "Derived" is to add a derived dimension column. Read more in [How to optimize cubes](/docs15/howto/howto_optimize_cubes.html). + +2. Click "Normal" and then select a dimension column, give it a meaningful name. + +  + +3. [Optional] Click "Derived" and then pickup 1 more multiple columns on lookup table, give them a meaningful name. + +  + +4. Repeate 2 and 3 to add all dimension columns; you can do this in batch for "Normal" dimension with the button `Auto Generator`. + +  + +5. Click "Next" after select all dimensions. + +**Step 3. Measures** + +1. Click the `+Measure` to add a new measure. +  + +2. There are 6 types of measure according to its expression: `SUM`, `MAX`, `MIN`, `COUNT`, `COUNT_DISTINCT` and `TOP_N`. Properly select the return type for `COUNT_DISTINCT` and `TOP_N`, as it will impact on the cube size. + * SUM + +  + + * MIN + +  + + * MAX + +  + + * COUNT + +  + + * DISTINCT_COUNT + This measure has two implementations: + a) approximate implementation with HyperLogLog, select an acceptable error rate, lower error rate will take more storage. + b) precise implementation with bitmap (see limitation in https://issues.apache.org/jira/browse/KYLIN-1186). + +  + + Pleaste note: distinct count is a very heavy data type, it is slower to build and query comparing to other measures. + + * TOP_N + Approximate TopN measure pre-calculates the top records in each dimension combination, it will provide higher performance in query time than no pre-calculation; Need specify two parameters here: the first is the column will be used as metrics for Top records (aggregated with SUM and then sorted in descending order); the second is the literal ID, represents the record like seller_id; + + Properly select the return type, depends on how many top records to inspect: top 10, top 100 or top 1000. + +  + + +**Step 4. Refresh Setting** + +This step is designed for incremental cube build. + +`Auto Merge Time Ranges (days)`: merge the small segments into medium and large segment automatically. If you don't want to auto merge, remove the default two ranges. + +`Retention Range (days)`: only keep the segment whose data is in past given days in cube, the old segment will be automatically dropped from head; 0 means not enable this feature. + +`Partition Start Date`: the start date of this cube. + + + +**Step 5. Advanced Setting** + +`Aggregation Groups`: by default Kylin put all dimensions into one aggregation group; you can create multiple aggregation groups by knowing well about your query patterns. For the concepts of "Mandatory Dimensions", "Hierarchy Dimensions" and "Joint Dimensions", read this blog: [New Aggregation Group](/blog/2016/02/18/new-aggregation-group/) + +`Rowkeys`: the rowkeys are composed by the dimension encoded values. "Dictionary" is the default encoding method; If a dimension is not fit with dictionary (e.g., cardinality > 10 million), select "false" and then enter the fixed length for that dimension, usually that is the max. length of that column; if a value is longer than that size it will be truncated. Please note, without dictionary encoding, the cube size might be much bigger. + +You can drag & drop a dimension column to adjust its position in rowkey; Put the mandantory dimension at the begining, then followed the dimensions that heavily involved in filters (where condition). Put high cardinality dimensions ahead of low cardinality dimensions. + + +**Step 6. Overview & Save** + +You can overview your cube and go back to previous step to modify it. Click the `Save` button to complete the cube creation. + + + +Cheers! now the cube is created, you can go ahead to build and play it. http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/cube_build_job.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/cube_build_job.cn.md b/website/_docs16/tutorial/cube_build_job.cn.md new file mode 100644 index 0000000..8a8822c --- /dev/null +++ b/website/_docs16/tutorial/cube_build_job.cn.md @@ -0,0 +1,66 @@ +--- +layout: docs16-cn +title: Kylin Cube 建ç«åJobçæ§æç¨ +categories: æç¨ +permalink: /cn/docs16/tutorial/cube_build_job.html +version: v1.2 +since: v0.7.1 +--- + +### Cubeå»ºç« +é¦å ï¼ç¡®è®¤ä½ æ¥æä½ æ³è¦å»ºç«çcubeçæéã + +1. å¨`Cubes`页é¢ä¸ï¼ç¹å»cubeæ å³ä¾§ç`Action`䏿æé®å¹¶éæ©`Build`æä½ã + +  + +2. éæ©åä¼åºç°ä¸ä¸ªå¼¹åºçªå£ã + +  + +3. ç¹å»`END DATE`è¾å ¥æ¡éæ©å¢éæå»ºè¿ä¸ªcubeçç»ææ¥æã + +  + +4. ç¹å»`Submit`æäº¤è¯·æ±ã + +  + +  + + æäº¤è¯·æ±æååï¼ä½ å°ä¼çå°`Jobs`页颿°å»ºäºjobã + +  + +5. å¦è¦æ¾å¼è¿ä¸ªjobï¼ç¹å»`Discard`æé®ã + +  + +### Jobçæ§ +å¨`Jobs`页é¢ï¼ç¹å»jobè¯¦æ æé®æ¥çæ¾ç¤ºäºå³ä¾§ç详ç»ä¿¡æ¯ã + + + +job详ç»ä¿¡æ¯ä¸ºè·è¸ªä¸ä¸ªjobæä¾äºå®çæ¯ä¸æ¥è®°å½ãä½ å¯ä»¥å°å æ åæ¾å¨ä¸ä¸ªæ¥éª¤ç¶æå¾æ 䏿¥çåºæ¬ç¶æåä¿¡æ¯ã + + + +ç¹å»æ¯ä¸ªæ¥éª¤æ¾ç¤ºç徿 æé®æ¥ç详æ ï¼`Parameters`ã`Log`ã`MRJob`ã`EagleMonitoring`ã + +* Parameters + +  + +  + +* Log + +  + +  + +* MRJob(MapReduce Job) + +  + +  http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/cube_build_job.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/cube_build_job.md b/website/_docs16/tutorial/cube_build_job.md new file mode 100644 index 0000000..b19ef5a --- /dev/null +++ b/website/_docs16/tutorial/cube_build_job.md @@ -0,0 +1,67 @@ +--- +layout: docs16 +title: Kylin Cube Build and Job Monitoring +categories: tutorial +permalink: /docs16/tutorial/cube_build_job.html +--- + +### Cube Build +First of all, make sure that you have authority of the cube you want to build. + +1. In `Models` page, click the `Action` drop down button in the right of a cube column and select operation `Build`. + +  + +2. There is a pop-up window after the selection, click `END DATE` input box to select end date of this incremental cube build. + +  + +4. Click `Submit` to send the build request. After success, you will see the new job in the `Monitor` page. + +  + +5. The new job is in "pending" status; after a while, it will be started to run and you will see the progress by refresh the web page or click the refresh button. + +  + + +6. Wait the job to finish. In the between if you want to discard it, click `Actions` -> `Discard` button. + +  + +7. After the job is 100% finished, the cube's status becomes to "Ready", means it is ready to serve SQL queries. In the `Model` tab, find the cube, click cube name to expand the section, in the "HBase" tab, it will list the cube segments. Each segment has a start/end time; Its underlying HBase table information is also listed. + +  + +If you have more source data, repeate the steps above to build them into the cube. + +### Job Monitoring +In the `Monitor` page, click the job detail button to see detail information show in the right side. + + + +The detail information of a job provides a step-by-step record to trace a job. You can hover a step status icon to see the basic status and information. + + + +Click the icon buttons showing in each step to see the details: `Parameters`, `Log`, `MRJob`. + +* Parameters + +  + +  + +* Log + +  + +  + +* MRJob(MapReduce Job) + +  + +  + + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/cube_streaming.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/cube_streaming.md b/website/_docs16/tutorial/cube_streaming.md new file mode 100644 index 0000000..3202810 --- /dev/null +++ b/website/_docs16/tutorial/cube_streaming.md @@ -0,0 +1,225 @@ +--- +layout: docs16 +title: Scalable Cubing from Streaming (Kafka) +categories: tutorial +permalink: /docs16/tutorial/cube_streaming.html +--- +Kylin v1.6 releases the scalable streaming cubing function, it leverages Hadoop to consume the data from Kafka to build the cube, you can check [this blog](/blog/2016/10/18/new-nrt-streaming/) for the high level design. This doc is a step by step tutorial, illustrating how to create and build a sample cube; + +## Preparation +To finish this tutorial, you need a Hadoop environment which has kylin v1.6.0 or above installed, and also have a Kafka (v0.10.0 or above) running; Previous Kylin version has a couple issues so please upgrade your Kylin instance at first. + +In this tutorial, we will use Hortonworks HDP 2.2.4 Sandbox VM + Kafka v0.10.0(Scala 2.10) as the environment. + +## Install Kafka 0.10.0.0 and Kylin +Don't use HDP 2.2.4's build-in Kafka as it is too old, stop it first if it is running. +{% highlight Groff markup %} +curl -s http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz | tar -xz -C /usr/hdp/current/ + +cd /usr/hdp/current/kafka_2.10-0.10.0.0/ + +bin/kafka-server-start.sh config/server.properties & + +{% endhighlight %} + +Download the Kylin v1.6 from download page, expand the tar ball in /root/ folder. + +{% highlight Groff markup %} + + +{% endhighlight %} + + +## Create sample Kafka topic and populate data + +Create a sample topic "kylindemo", with 3 partitions: + +{% highlight Groff markup %} + +bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic kylindemo +Created topic "kylindemo". +{% endhighlight %} + +Put sample data to this topic; Kylin has an utility class which can do this; + +{% highlight Groff markup %} +export KAFKA_HOME=/usr/hdp/current/kafka_2.10-0.10.0.0 +export KYLIN_HOME=/root/apache-kylin-1.6.0-SNAPSHOT-bin + +cd $KYLIN_HOME +./bin/kylin.sh org.apache.kylin.source.kafka.util.KafkaSampleProducer --topic kylindemo --broker localhost:9092 +{% endhighlight %} + +This tool will send 100 records to Kafka every second. Please keep it running during this tutorial. You can check the sample message with kafka-console-consumer.sh now: + +{% highlight Groff markup %} +cd $KAFKA_HOME +bin/kafka-console-consumer.sh --zookeeper localhost:2181 --bootstrap-server localhost:9092 --topic kylindemo --from-beginning +{"amount":63.50375137330458,"category":"TOY","order_time":1477415932581,"device":"Other","qty":4,"user":{"id":"bf249f36-f593-4307-b156-240b3094a1c3","age":21,"gender":"Male"},"currency":"USD","country":"CHINA"} +{"amount":22.806058795736583,"category":"ELECTRONIC","order_time":1477415932591,"device":"Andriod","qty":1,"user":{"id":"00283efe-027e-4ec1-bbed-c2bbda873f1d","age":27,"gender":"Female"},"currency":"USD","country":"INDIA"} + + {% endhighlight %} + +## Define a table from streaming +Start Kylin server with "$KYLIN_HOME/bin/kylin.sh start", login Kylin Web GUI at http://sandbox:7070/kylin/, select an existing project or create a new project; Click "Model" -> "Data Source", then click the icon "Add Streaming Table"; + +  + +In the pop-up dialogue, enter a sample record which you got from the kafka-console-consumer, click the ">>" button, Kylin parses the JSON message and listS all the properties; + +You need give a logic table name for this streaming data source; The name will be used for SQL query later; here enter "STREAMING_SALES_TABLE" as an example in the "Table Name" field. + +You need select a timestamp field which will be used to identify the time of a message; Kylin can derive other time values like "year_start", "quarter_start" from this time column, which can give your more flexibility on building and querying the cube. Here check "order_time". You can deselect those properties which are not needed for cube. Here let's keep all fields. + +Notice that Kylin supports structured (or say "embedded") message from v1.6, it will convert them into a flat table structure. By default use "_" as the separator of the structed properties. + +  + + +Click "Next". On this page, provide the Kafka cluster information; Enter "kylindemo" as "Topic" name; The cluster has 1 broker, whose host name is "sandbox", port is "9092", click "Save". + +  + +In "Advanced setting" section, the "timeout" and "buffer size" are the configurations for connecting with Kafka, keep them. + +In "Parser Setting", by default Kylin assumes your message is JSON format, and each record's timestamp column (specified by "tsColName") is a bigint (epoch time) value; in this case, you just need set the "tsColumn" to "order_time"; + + + +In real case if the timestamp value is a string valued timestamp like "Jul 20, 2016 9:59:17 AM", you need specify the parser class with "tsParser" and the time pattern with "tsPattern" like this: + + + + +Click "Submit" to save the configurations. Now a "Streaming" table is created. + + + +## Define data model +With the table defined in previous step, now we can create the data model. The step is almost the same as you create a normal data model, but it has two requirement: + +* Streaming Cube doesn't support join with lookup tables; When define the data model, only select fact table, no lookup table; +* Streaming Cube must be partitioned; If you're going to build the Cube incrementally at minutes level, select "MINUTE_START" as the cube's partition date column. If at hours level, select "HOUR_START". + +Here we pick 13 dimension and 2 measure columns: + + + + +Save the data model. + +## Create Cube + +The streaming Cube is almost the same as a normal cube. a couple of points need get your attention: + +* The partition time column should be a dimension of the Cube. In Streaming OLAP the time is always a query condition, and Kylin will leverage this to narrow down the scanned partitions. +* Don't use "order\_time" as dimension as that is pretty fine-grained; suggest to use "mintue\_start", "hour\_start" or other, depends on how you will inspect the data. +* Define "year\_start", "quarter\_start", "month\_start", "day\_start", "hour\_start", "minute\_start" as a hierarchy to reduce the combinations to calculate. +* In the "refersh setting" step, create more merge ranges, like 0.5 hour, 4 hours, 1 day, and then 7 days; This will help to control the cube segment number. +* In the "rowkeys" section, drag&drop the "minute\_start" to the head position, as for streaming queries, the time condition is always appeared; putting it to head will help to narrow down the scan range. + +  + +  + +  + +  + +Save the cube. + +## Run a build + +You can trigger the build from web GUI, by clicking "Actions" -> "Build", or sending a request to Kylin RESTful API with 'curl' command: + +{% highlight Groff markup %} +curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, "sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/{your_cube_name}/build2 +{% endhighlight %} + +Please note the API endpoint is different from a normal cube (this URL end with "build2"). + +Here 0 means from the last position, and 9223372036854775807 (Long.MAX_VALUE) means to the end position on Kafka topic. If it is the first time to build (no previous segment), Kylin will seek to beginning of the topics as the start position. + +In the "Monitor" page, a new job is generated; Wait it 100% finished. + +## Click the "Insight" tab, compose a SQL to run, e.g: + + {% highlight Groff markup %} +select minute_start, count(*), sum(amount), sum(qty) from streaming_sales_table group by minute_start order by minute_start + {% endhighlight %} + +The result looks like below. + + + +## Automate the build + +Once the first build and query got successfully, you can schedule incremental builds at a certain frequency. Kylin will record the offsets of each build; when receive a build request, it will start from the last end position, and then seek the latest offsets from Kafka. With the REST API you can trigger it with any scheduler tools like Linux cron: + + {% highlight Groff markup %} +crontab -e +*/5 * * * * curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, "sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/{your_cube_name}/build2 + {% endhighlight %} + +Now you can site down and watch the cube be automatically built from streaming. And when the cube segments accumulate to bigger time range, Kylin will automatically merge them into a bigger segment. + +## Trouble shootings + + * You may encounter the following error when run "kylin.sh": +{% highlight Groff markup %} +Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Producer + at java.lang.Class.getDeclaredMethods0(Native Method) + at java.lang.Class.privateGetDeclaredMethods(Class.java:2615) + at java.lang.Class.getMethod0(Class.java:2856) + at java.lang.Class.getMethod(Class.java:1668) + at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) + at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) +Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.producer.Producer + at java.net.URLClassLoader$1.run(URLClassLoader.java:366) + at java.net.URLClassLoader$1.run(URLClassLoader.java:355) + at java.security.AccessController.doPrivileged(Native Method) + at java.net.URLClassLoader.findClass(URLClassLoader.java:354) + at java.lang.ClassLoader.loadClass(ClassLoader.java:425) + at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) + at java.lang.ClassLoader.loadClass(ClassLoader.java:358) + ... 6 more +{% endhighlight %} + +The reason is Kylin wasn't able to find the proper Kafka client jars; Make sure you have properly set "KAFKA_HOME" environment variable. + + * Get "killed by admin" error in the "Build Cube" step + + Within a Sandbox VM, YARN may not allocate the requested memory resource to MR job as the "inmem" cubing algorithm requests more memory. You can bypass this by requesting less memory: edit "conf/kylin_job_conf_inmem.xml", change the following two parameters like this: + + {% highlight Groff markup %} + <property> + <name>mapreduce.map.memory.mb</name> + <value>1072</value> + <description></description> + </property> + + <property> + <name>mapreduce.map.java.opts</name> + <value>-Xmx800m</value> + <description></description> + </property> + {% endhighlight %} + + * If there already be bunch of history messages in Kafka and you don't want to build from the very beginning, you can trigger a call to set the current end position as the start for the cube: + +{% highlight Groff markup %} +curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, "sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/{your_cube_name}/init_start_offsets +{% endhighlight %} + + * If some build job got error and you discard it, there will be a hole (or say gap) left in the Cube. Since each time Kylin will build from last position, you couldn't expect the hole be filled by normal builds. Kylin provides API to check and fill the holes + +Check holes: + {% highlight Groff markup %} +curl -X GET --user ADMINN:KYLIN -H "Content-Type: application/json;charset=utf-8" http://localhost:7070/kylin/api/cubes/{your_cube_name}/holes +{% endhighlight %} + +If the result is an empty arrary, means there is no hole; Otherwise, trigger Kylin to fill them: + {% highlight Groff markup %} +curl -X PUT --user ADMINN:KYLIN -H "Content-Type: application/json;charset=utf-8" http://localhost:7070/kylin/api/cubes/{your_cube_name}/holes +{% endhighlight %} + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/kylin_client_tool.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/kylin_client_tool.cn.md b/website/_docs16/tutorial/kylin_client_tool.cn.md new file mode 100644 index 0000000..f6df3e5 --- /dev/null +++ b/website/_docs16/tutorial/kylin_client_tool.cn.md @@ -0,0 +1,97 @@ +--- +layout: docs16-cn +title: Kylin Client Tool ä½¿ç¨æç¨ +categories: æç¨ +permalink: /cn/docs16/tutorial/kylin_client_tool.html +--- + +> Kylin-client-toolæ¯ä¸ä¸ªç¨pythonç¼åçï¼å®å ¨åºäºkylinçrest apiçå·¥å ·ãå¯ä»¥å®ç°kylinçcubeåå»ºï¼ææ¶build cubeï¼jobçæäº¤ãè°åº¦ãæ¥çã忶䏿¢å¤ã + +## å®è£ +1.确认è¿è¡ç¯å¢å®è£ äºpython2.6/2.7 + +2.æ¬å·¥å ·éå®è£ ç¬¬ä¸æ¹pythonå apschedulerårequestsï¼è¿è¡setup.shè¿è¡å®è£ ï¼macç¨æ·è¿è¡setup-mac.shè¿è¡å®è£ ãä¹å¯ç¨setuptoolsè¿è¡å®è£ + +## é ç½® +ä¿®æ¹å·¥å ·ç®å½ä¸çsettings/settings.pyæä»¶ï¼è¿è¡é ç½® + +`KYLIN_USER` Kylinç¨æ·å + +`KYLIN_PASSWORD` Kylinçå¯ç + +`KYLIN_REST_HOST` Kylinçå°å + +`KYLIN_REST_PORT` Kylinçç«¯å£ + +`KYLIN_JOB_MAX_COCURRENT` å è®¸åæ¶buildçjobæ°é + +`KYLIN_JOB_MAX_RETRY` cube buildåºç°erroråï¼å 许çéå¯jobæ¬¡æ° + +## å½ä»¤è¡çä½¿ç¨ +æ¬å·¥å ·ä½¿ç¨optparseéè¿å½ä»¤è¡æ¥æ§è¡æä½ï¼å ·ä½ç¨æ³å¯éè¿`python kylin_client_tool.py ï¼h`æ¥æ¥ç + +## cubeçå建 +æ¬å·¥å ·å®ä¹äºä¸ç§è¯»æåçææ¬ï¼æ¥å¿«écubeåå»ºçæ¹æ³ï¼æ ¼å¼å¦ä¸ + +`cubeå|fact tableå|维度1,维度1ç±»å;维度2,维度2ç±»å...|ææ 1,ææ 1表达å¼,ææ 1ç±»å...|设置项|filter|` + +è®¾ç½®é¡¹å æä»¥ä¸éé¡¹ï¼ + +`no_dictionary` 设置Rowkeysä¸ä¸çædictionaryç维度åå ¶é¿åº¦ + +`mandatory_dimension` 设置Rowkeysä¸mandatoryç维度 + +`aggregation_group` 设置aggregation group + +`partition_date_column` 设置partition date column + +`partition_date_start` 设置partition start date + +å ·ä½ä¾åå¯ä»¥æ¥çcube_def.csvæä»¶ï¼ç®å䏿¯æå«lookup tableçcubeå建 + +使ç¨`-c`å½ä»¤è¿è¡å建ï¼ç¨`-F`æå®cubeå®ä¹æä»¶ï¼ä¾å¦ + +`python kylin_client_tool.py -c -F cube_def.csv` + +## build cube +###使ç¨cubeå®ä¹æä»¶build +使ç¨`-b`å½ä»¤ï¼éè¦ç¨`-F`æå®cubeå®ä¹æä»¶ï¼å¦ææå®äºpartition date columnï¼éè¿`-T`æå®end date(year-month-dayæ ¼å¼)ï¼è¥ä¸æå®ï¼ä»¥å½åæ¶é´ä¸ºend dateï¼ä¾å¦ + +`python kylin_client_tool.py -b -F cube_def.csv -T 2016-03-01` + +###使ç¨cubeåæä»¶build +ç¨`-f`æå®cubeåæä»¶ï¼æä»¶æ¯è¡ä¸ä¸ªcubeå + +`python kylin_client_tool.py -b -f cube_names.csv -T 2016-03-01` + +###ç´æ¥å½ä»¤è¡åcubeåbuild +ç¨`-C`æå®cubeåï¼éè¿éå·è¿è¡åé + +`python kylin_client_tool.py -b -C client_tool_test1,client_tool_test2 -T 2016-03-01` + +## job管ç +###æ¥çjobç¶æ +使ç¨`-s`å½ä»¤æ¥çï¼ç¨`-f`æå®cubeåæä»¶ï¼ç¨`-C`æå®cubeåï¼è¥ä¸æå®ï¼å°æ¥çææcubeç¶æãç¨`-S`æå®jobç¶æï¼R表示`Running`ï¼E表示`Error`ï¼F表示`Finished`ï¼D表示`Discarded`ï¼ä¾å¦ï¼ + +`python kylin_client_tool.py -s -C kylin_sales_cube -f cube_names.csv -S F` + +###æ¢å¤job +ç¨`-r`å½ä»¤æ¢å¤jobï¼ç¨`-f`æå®cubeåæä»¶ï¼ç¨`-C`æå®cubeåï¼è¥ä¸æå®ï¼å°æ¢å¤ææErrorç¶æçjobï¼ä¾å¦ï¼ + +`python kylin_client_tool.py -r -C kylin_sales_cube -f cube_names.csv` + +###åæ¶job +ç¨`-k`å½ä»¤åæ¶jobï¼ç¨`-f`æå®cubeåæä»¶ï¼ç¨`-C`æå®cubeåï¼è¥ä¸æå®ï¼å°åæ¶ææRunningæErrorç¶æçjobï¼ä¾å¦ï¼ + +`python kylin_client_tool.py -k -C kylin_sales_cube -f cube_names.csv` + +## 宿¶build cube +### æ¯é䏿®µæ¶é´build cube +å¨cube buildå½ä»¤çåºç¡ä¸ï¼ä½¿ç¨`-B i`æå®æ¯é䏿®µæ¶é´buildçæ¹å¼ï¼ä½¿ç¨`-O`æå®é´éçå°æ¶æ°ï¼ä¾å¦ï¼ + +`python kylin_client_tool.py -b -F cube_def.csv -B i -O 1` + +### è®¾å®æ¶é´build cube +使ç¨`-B t`æå®ææ¶build cubeçæ¹å¼ï¼ä½¿ç¨`-O`æå®buildæ¶é´ï¼ç¨éå·è¿è¡åé + +`python kylin_client_tool.py -b -F cube_def.csv -T 2016-03-04 -B t -O 2016,3,1,0,0,0` http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/kylin_sample.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/kylin_sample.md b/website/_docs16/tutorial/kylin_sample.md new file mode 100644 index 0000000..f60ed8b --- /dev/null +++ b/website/_docs16/tutorial/kylin_sample.md @@ -0,0 +1,21 @@ +--- +layout: docs16 +title: Quick Start with Sample Cube +categories: tutorial +permalink: /docs16/tutorial/kylin_sample.html +--- + +Kylin provides a script for you to create a sample Cube; the script will also create three sample hive tables: + +1. Run ${KYLIN_HOME}/bin/sample.sh ; Restart kylin server to flush the caches; +2. Logon Kylin web with default user ADMIN/KYLIN, select project "learn_kylin" in the project dropdown list (left upper corner); +3. Select the sample cube "kylin_sales_cube", click "Actions" -> "Build", pick up a date later than 2014-01-01 (to cover all 10000 sample records); +4. Check the build progress in "Monitor" tab, until 100%; +5. Execute SQLs in the "Insight" tab, for example: + select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt +6. You can verify the query result and compare the response time with hive; + + +## What's next + +You can create another cube with the sample tables, by following the tutorials. http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/odbc.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/odbc.cn.md b/website/_docs16/tutorial/odbc.cn.md new file mode 100644 index 0000000..9ebe8dc --- /dev/null +++ b/website/_docs16/tutorial/odbc.cn.md @@ -0,0 +1,34 @@ +--- +layout: docs16-cn +title: Kylin ODBC 驱å¨ç¨åºæç¨ +categories: æç¨ +permalink: /cn/docs16/tutorial/odbc.html +version: v1.2 +since: v0.7.1 +--- + +> æä»¬æä¾Kylin ODBC驱å¨ç¨åºä»¥æ¯æODBCå ¼å®¹å®¢æ·ç«¯åºç¨çæ°æ®è®¿é®ã +> +> 32ä½çæ¬æ64ä½çæ¬ç驱å¨ç¨åºé½æ¯å¯ç¨çã +> +> æµè¯æä½ç³»ç»ï¼Windows 7ï¼Windows Server 2008 R2 +> +> æµè¯åºç¨ï¼Tableau 8.0.4 å Tableau 8.1.3 + +## åææ¡ä»¶ +1. Microsoft Visual C++ 2012 ååé ï¼Redistributableï¼ + * 32ä½Windowsæ32ä½Tableau Desktopï¼ä¸è½½ï¼[32bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe) + * 64ä½Windowsæ64ä½Tableau Desktopï¼ä¸è½½ï¼[64bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe) + +2. ODBC驱å¨ç¨åºå é¨ä»ä¸ä¸ªRESTæå¡å¨è·åç»æï¼ç¡®ä¿ä½ è½å¤è®¿é®ä¸ä¸ª + +## å®è£ +1. å¦æä½ å·²ç»å®è£ ï¼é¦å å¸è½½å·²åå¨çKylin ODBC +2. ä»[ä¸è½½](../../download/)ä¸è½½é件驱å¨å®è£ ç¨åºï¼å¹¶è¿è¡ã + * 32ä½Tableau Desktopï¼è¯·å®è£ KylinODBCDriver (x86).exe + * 64ä½Tableau Desktopï¼è¯·å®è£ KylinODBCDriver (x64).exe + +3. Both drivers already be installed on Tableau Server, you properly should be able to publish to there without issues + +## é误æ¥å +妿é®é¢ï¼è¯·æ¥åé误è³Apache Kylin JIRAï¼æè åéé®ä»¶å°devé®ä»¶å表ã http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/odbc.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/odbc.md b/website/_docs16/tutorial/odbc.md new file mode 100644 index 0000000..06fbf8b --- /dev/null +++ b/website/_docs16/tutorial/odbc.md @@ -0,0 +1,49 @@ +--- +layout: docs16 +title: Kylin ODBC Driver +categories: tutorial +permalink: /docs16/tutorial/odbc.html +since: v0.7.1 +--- + +> We provide Kylin ODBC driver to enable data access from ODBC-compatible client applications. +> +> Both 32-bit version or 64-bit version driver are available. +> +> Tested Operation System: Windows 7, Windows Server 2008 R2 +> +> Tested Application: Tableau 8.0.4, Tableau 8.1.3 and Tableau 9.1 + +## Prerequisites +1. Microsoft Visual C++ 2012 Redistributable + * For 32 bit Windows or 32 bit Tableau Desktop: Download: [32bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe) + * For 64 bit Windows or 64 bit Tableau Desktop: Download: [64bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe) + + +2. ODBC driver internally gets results from a REST server, make sure you have access to one + +## Installation +1. Uninstall existing Kylin ODBC first, if you already installled it before +2. Download ODBC Driver from [download](../../download/). + * For 32 bit Tableau Desktop: Please install KylinODBCDriver (x86).exe + * For 64 bit Tableau Desktop: Please install KylinODBCDriver (x64).exe + +3. Both drivers already be installed on Tableau Server, you properly should be able to publish to there without issues + +## DSN configuration +1. Open ODBCAD to configure DSN. + * For 32 bit driver, please use the 32bit version in C:\Windows\SysWOW64\odbcad32.exe + * For 64 bit driver, please use the default "Data Sources (ODBC)" in Control Panel/Administrator Tools + + +2. Open "System DSN" tab, and click "Add", you will see KylinODBCDriver listed as an option, Click "Finish" to continue. + + +3. In the pop up dialog, fill in all the blanks, The server host is where your Kylin Rest Server is started. + + +4. Click "Done", and you will see your new DSN listed in the "System Data Sources", you can use this DSN afterwards. + + +## Bug Report +Please open Apache Kylin JIRA to report bug, or send to dev mailing list. http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/powerbi.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/powerbi.cn.md b/website/_docs16/tutorial/powerbi.cn.md new file mode 100644 index 0000000..112c32b --- /dev/null +++ b/website/_docs16/tutorial/powerbi.cn.md @@ -0,0 +1,56 @@ +--- +layout: docs16-cn +title: 微软ExcelåPower BIæç¨ +categories: tutorial +permalink: /cn/docs16/tutorial/powerbi.html +version: v1.2 +since: v1.2 +--- + +Microsoft Excelæ¯å½ä»Windowså¹³å°ä¸ææµè¡çæ°æ®å¤ç软件ä¹ä¸ï¼æ¯æå¤ç§æ°æ®å¤çåè½ï¼å¯ä»¥å©ç¨Power Queryä»ODBCæ°æ®æºè¯»åæ°æ®å¹¶è¿åå°æ°æ®è¡¨ä¸ã + +Microsoft Power BI æ¯ç±å¾®è½¯æ¨åºçå䏿ºè½çä¸ä¸åæå·¥å ·ï¼ç»ç¨æ·æä¾ç®åä¸ä¸°å¯çæ°æ®å¯è§åååæåè½ã + +> Apache Kylinç®åçæ¬ä¸æ¯æåå§æ°æ®çæ¥è¯¢ï¼é¨åæ¥è¯¢ä¼å æ¤å¤±è´¥ï¼å¯¼è´åºç¨ç¨åºåçå¼å¸¸ï¼å»ºè®®æä¸KYLIN-1075è¡¥ä¸å 以ä¼åæ¥è¯¢ç»æçæ¾ç¤ºã + + +> Power BIåExcel䏿¯æ"connect live"模å¼ï¼è¯·æ³¨æå¹¶æ·»å whereæ¡ä»¶å¨æ¥è¯¢è¶ å¤§æ°æ®éæ¶åï¼ä»¥é¿å 仿å¡å¨æå»è¿å¤çæ°æ®å°æ¬å°ï¼çè³å¨æäºæ åµä¸æ¥è¯¢æ§è¡å¤±è´¥ã + +### Install ODBC Driver +åè页é¢[Kylin ODBC 驱å¨ç¨åºæç¨](./odbc.html)ï¼è¯·ç¡®ä¿ä¸è½½å¹¶å®è£ Kylin ODBC Driver __v1.2__. å¦æä½ å®è£ ææ©åçæ¬ï¼è¯·å¸è½½ååå®è£ ã + +### è¿æ¥Excelå°Kylin +1. ä»å¾®è½¯å®ç½ä¸è½½åå®è£ Power Queryï¼å®è£ 宿åå¨Excelä¸ä¼çå°Power QueryçFast Tabï¼åå»ï½From other sourcesï½ä¸ææé®ï¼å¹¶éæ©ï½From ODBCï½é¡¹ + + +2. å¨å¼¹åºç`From ODBC`æ°æ®è¿æ¥å导ä¸è¾å ¥Apache Kylinæå¡å¨çè¿æ¥å符串ï¼ä¹å¯ä»¥å¨ï½SQLï½ææ¬æ¡ä¸è¾å ¥æ¨æ³è¦æ§è¡çSQLè¯å¥ï¼åå»ï½OKï½ï¼SQLçæ§è¡ç»æå°±ä¼ç«å³å è½½å°Excelçæ°æ®è¡¨ä¸ + + +> 为äºç®åè¿æ¥å符串çè¾å ¥ï¼æ¨èå建Apache KylinçDSNï¼å¯ä»¥å°è¿æ¥å符串ç®å为DSN=[YOUR_DSN_NAME]ï¼æå ³DSNçå建请åèï¼[https://support.microsoft.com/en-us/kb/305599](https://support.microsoft.com/en-us/kb/305599)ã + + +3. 妿æ¨éæ©ä¸è¾å ¥SQLè¯å¥ï¼Power Queryå°ä¼ååºææçæ°æ®åºè¡¨ï¼æ¨å¯ä»¥æ ¹æ®éè¦å¯¹æ´å¼ è¡¨çæ°æ®è¿è¡å è½½ã使¯ï¼Apache Kylinæä¸æ¯æåæ°æ®çæ¥è¯¢ï¼é¨å表çå è½½å¯è½å æ¤åé + + +4. ç¨ççå»ï¼æ°æ®å·²æåå è½½å°Excelä¸ + + +5. 䏿¦æå¡å¨ç«¯æ°æ®äº§çæ´æ°ï¼åéè¦å¯¹Excelä¸çæ°æ®è¿è¡åæ¥ï¼å³é®åå»å³ä¾§å表ä¸çæ°æ®æºï¼éæ©ï½Refreshï½ï¼ææ°çæ°æ®ä¾¿ä¼æ´æ°å°æ°æ®è¡¨ä¸. + +6. 1. ä¸ºäºæåæ§è½ï¼å¯ä»¥å¨Power Query䏿å¼ï½Query Optionsï½è®¾ç½®ï¼ç¶åå¼å¯ï½Fast data loadï½ï¼è¿å°æé«æ°æ®å è½½é度ï¼ä½å¯è½é æçé¢çææ¶æ ååº + +### Power BI +1. å¯å¨æ¨å·²ç»å®è£ çPower BIæ¡é¢çç¨åºï¼åå»ï½Get dataï½æé®ï¼å¹¶éä¸ODBCæ°æ®æº. + + +2. å¨å¼¹åºç`From ODBC`æ°æ®è¿æ¥å导ä¸è¾å ¥Apache Kylinæå¡å¨çæ°æ®åºè¿æ¥å符串ï¼ä¹å¯ä»¥å¨ï½SQLï½ææ¬æ¡ä¸è¾å ¥æ¨æ³è¦æ§è¡çSQLè¯å¥ãåå»ï½OKï½ï¼SQLçæ§è¡ç»æå°±ä¼ç«å³å è½½å°Power BIä¸ + + +3. 妿æ¨éæ©ä¸è¾å ¥SQLè¯å¥ï¼Power BIå°ä¼ååºé¡¹ç®ä¸ææçè¡¨ï¼æ¨å¯ä»¥æ ¹æ®éè¦å°æ´å¼ è¡¨çæ°æ®è¿è¡å è½½ã使¯ï¼Apache Kylinæä¸æ¯æåæ°æ®çæ¥è¯¢ï¼é¨å表çå è½½å¯è½å æ¤åé + + +4. ç°å¨ä½ å¯ä»¥è¿ä¸æ¥ä½¿ç¨Power BIè¿è¡å¯è§ååæï¼ + + +5. åå»å·¥å ·æ çï½Refreshï½æé®å³å¯éæ°å è½½æ°æ®å¹¶å¯¹å¾è¡¨è¿è¡æ´æ° + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/powerbi.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/powerbi.md b/website/_docs16/tutorial/powerbi.md new file mode 100644 index 0000000..00612da --- /dev/null +++ b/website/_docs16/tutorial/powerbi.md @@ -0,0 +1,54 @@ +--- +layout: docs16 +title: MS Excel and Power BI +categories: tutorial +permalink: /docs16/tutorial/powerbi.html +since: v1.2 +--- + +Microsoft Excel is one of the most famous data tool on Windows platform, and has plenty of data analyzing functions. With Power Query installed as plug-in, excel can easily read data from ODBC data source and fill spreadsheets. + +Microsoft Power BI is a business intelligence tool providing rich functionality and experience for data visualization and processing to user. + +> Apache Kylin currently doesn't support query on raw data yet, some queries might fail and cause some exceptions in application. Patch KYLIN-1075 is recommended to get better look of query result. + +> Power BI and Excel do not support "connect live" model for other ODBC driver yet, please pay attention when you query on huge dataset, it may pull too many data into your client which will take a while even fail at the end. + +### Install ODBC Driver +Refer to this guide: [Kylin ODBC Driver Tutorial](./odbc.html). +Please make sure to download and install Kylin ODBC Driver __v1.2__. If you already installed ODBC Driver in your system, please uninstall it first. + +### Kylin and Excel +1. Download Power Query from Microsoftâs Website and install it. Then run Excel, switch to `Power Query` fast tab, click `From Other Sources` dropdown list, and select `ODBC` item. + + +2. Youâll see `From ODBC` dialog, just type Database Connection String of Apache Kylin Server in the `Connection String` textbox. Optionally you can type a SQL statement in `SQL statement` textbox. Click `OK`, result set will run to your spreadsheet now. + + +> Tips: In order to simplify the Database Connection String, DSN is recommended, which can shorten the Connection String like `DSN=[YOUR_DSN_NAME]`. Details about DSN, refer to [https://support.microsoft.com/en-us/kb/305599](https://support.microsoft.com/en-us/kb/305599). + +3. If you didnât input the SQL statement in last step, Power Query will list all tables in the project, which means you can load data from the whole table. But, since Apache Kylin cannot query on raw data currently, this function may be limited. + + +4. Hold on for a while, the data is lying in Excel now. + + +5. If you want to sync data with Kylin Server, just right click the data source in right panel, and select `Refresh`, then youâll see the latest data. + +6. To improve data loading performance, you can enable `Fast data load` in Power Query, but this will make your UI unresponsive for a while. + +### Power BI +1. Run Power BI Desktop, and click `Get Data` button, then select `ODBC` as data source type. + + +2. Same with Excel, just type Database Connection String of Apache Kylin Server in the `Connection String` textbox, and optionally type a SQL statement in `SQL statement` textbox. Click `OK`, the result set will come to Power BI as a new data source query. + + +3. If you didnât input the SQL statement in last step, Power BI will list all tables in the project, which means you can load data from the whole table. But, since Apache Kylin cannot query on raw data currently, this function may be limited. + + +4. Now you can start to enjoy analyzing with Power BI. + + +5. To reload the data and redraw the charts, just click `Refresh` button in `Home` fast tab. + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/tableau.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/tableau.cn.md b/website/_docs16/tutorial/tableau.cn.md new file mode 100644 index 0000000..fdbd8eb --- /dev/null +++ b/website/_docs16/tutorial/tableau.cn.md @@ -0,0 +1,116 @@ +--- +layout: docs16-cn +title: Tableauæç¨ +categories: æç¨ +permalink: /cn/docs16/tutorial/tableau.html +version: v1.2 +since: v0.7.1 +--- + +> Kylin ODBC驱å¨ç¨åºä¸Tableauåå¨ä¸äºéå¶ï¼è¯·å¨å°è¯åä»ç»é 读æ¬è¯´æä¹¦ã +> * ä» æ¯æâmanagedâåæè·¯å¾ï¼Kylin弿å°å¯¹æå¤ç维度æåº¦éæ¥é +> * 请å§ç»ä¼å éæ©äºå®è¡¨ï¼ç¶åä½¿ç¨æ£ç¡®çè¿æ¥æ¡ä»¶æ·»å æ¥æ¾è¡¨ï¼cubeä¸å·²å®ä¹çè¿æ¥ç±»åï¼ +> * 请å¿å°è¯å¨å¤ä¸ªäºå®è¡¨æå¤ä¸ªæ¥æ¾è¡¨ä¹é´è¿è¡è¿æ¥ï¼ +> * ä½ å¯ä»¥å°è¯ä½¿ç¨ç±»ä¼¼Tableauè¿æ»¤å¨ä¸seller idè¿æ ·çé«åºæ°ç»´åº¦ï¼ä½å¼æç°å¨å°åªè¿åæé个Tableauè¿æ»¤å¨ä¸çseller idã +> +> å¦éæ´å¤è¯¦ç»ä¿¡æ¯ææä»»ä½é®é¢ï¼è¯·èç³»Kylinå¢éï¼`[email protected]` + + +### 使ç¨Tableau 9.xçç¨æ· +请åè[Tableau 9 æç¨](./tableau_91.html)以è·å¾æ´è¯¦ç»å¸®å©ã + +### æ¥éª¤1. å®è£ Kylin ODBC驱å¨ç¨åº +åè页é¢[Kylin ODBC 驱å¨ç¨åºæç¨](./odbc.html)ã + +### æ¥éª¤2. è¿æ¥å°Kylinæå¡å¨ +> æä»¬å»ºè®®ä½¿ç¨Connect Using Driverè䏿¯Using DSNã + +Connect Using Driver: 鿩左侧颿¿ä¸çâOther Database(ODBC)âåå¼¹åºçªå£çâKylinODBCDriverâã + + + +è¾å ¥ä½ çæå¡å¨ä½ç½®åè¯ä¹¦ï¼æå¡å¨ä¸»æºï¼ç«¯å£ï¼ç¨æ·ååå¯ç ã + + + +ç¹å»âConnectâè·åä½ ææé访é®ç项ç®å表ãæå ³æéç详ç»ä¿¡æ¯è¯·åè[Kylin Cube Permission Grant Tutorial](https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial)ãç¶åå¨ä¸æå表ä¸éæ©ä½ æ³è¦è¿æ¥ç项ç®ã + + + +ç¹å»âDoneâå®æè¿æ¥ã + + + +### æ¥éª¤3. 使ç¨å表æå¤è¡¨ +> éå¶ +> * å¿ é¡»é¦å éæ©äºå®è¡¨ +> * 请å¿ä» æ¯æä»æ¥æ¾è¡¨éæ© +> * è¿æ¥æ¡ä»¶å¿ é¡»ä¸cubeå®ä¹å¹é + +**éæ©äºå®è¡¨** + +éæ©`Multiple Tables`ã + + + +ç¶åç¹å»`Add Table...`æ·»å ä¸å¼ äºå®è¡¨ã + + + + + +**éæ©æ¥æ¾è¡¨** + +ç¹å»`Add Table...`æ·»å ä¸å¼ æ¥æ¾è¡¨ã + + + +ä»ç»å»ºç«è¿æ¥æ¡æ¬¾ã + + + +ç»§ç»éè¿ç¹å»`Add Table...`æ·»å 表ç´å°ææçæ¥æ¾è¡¨é½è¢«æ£ç¡®æ·»å ãå½åæ¤è¿æ¥ä»¥å¨Tableauä¸ä½¿ç¨ã + + + +**使ç¨Connect Live** + +`Data Connection`å ±æä¸ç§ç±»åãéæ©`Connect Live`é项ã + + + +ç¶åä½ å°±è½å¤å°½æ 使ç¨Tableauè¿è¡åæã + + + +**æ·»å é¢å¤æ¥æ¾è¡¨** + +ç¹å»é¡¶é¨èåæ ç`Data`ï¼éæ©`Edit Tables...`æ´æ°æ¥æ¾è¡¨ä¿¡æ¯ã + + + +### æ¥éª¤4. 使ç¨èªå®ä¹SQL +使ç¨èªå®ä¹SQL类似äºä½¿ç¨å表/å¤è¡¨ï¼ä½ä½ éè¦å¨`Custom SQL`æ ç¾å¤å¶ä½ çSQLåéåå䏿令ã + + + +### æ¥éª¤5. åå¸å°Tableauæå¡å¨ +å¦æä½ å·²ç»å®æä½¿ç¨Tableauå¶ä½ä¸ä¸ªä»ªè¡¨æ¿ï¼ä½ å¯ä»¥å°å®åå¸å°Tableauæå¡å¨ä¸ã +ç¹å»é¡¶é¨èåæ ç`Server`ï¼éæ©`Publish Workbook...`ã + + + +ç¶åç»éä½ çTableauæå¡å¨å¹¶åå¤åå¸ã + + + +å¦æä½ æ£å¨ä½¿ç¨Connect Using Driverè䏿¯DSNè¿æ¥ï¼ä½ è¿å°éè¦åµå ¥ä½ çå¯ç ãç¹å»å·¦ä¸æ¹ç`Authentication`æé®å¹¶éæ©`Embedded Password`ãç¹å»`Publish`ç¶åä½ å°çå°ç»æã + + + +### å°è´´å£« +* å¨Tableauä¸éè表å + + * Tableauå°ä¼æ ¹æ®æºè¡¨ååç»æ¾ç¤ºåï¼ä½ç¨æ·å¯è½å¸ææ ¹æ®å ¶ä»ä¸åç宿ç»ç»åã使ç¨Tableauä¸ç"Group by Folder"å¹¶å建æä»¶å¤¹æ¥å¯¹ä¸åçååç»ã + +  http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/tableau.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/tableau.md b/website/_docs16/tutorial/tableau.md new file mode 100644 index 0000000..0d9e38c --- /dev/null +++ b/website/_docs16/tutorial/tableau.md @@ -0,0 +1,113 @@ +--- +layout: docs16 +title: Tableau 8 +categories: tutorial +permalink: /docs16/tutorial/tableau.html +--- + +> There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it. +> +> * Only support "managed" analysis path, Kylin engine will raise exception for unexpected dimension or metric +> * Please always select Fact Table first, then add lookup tables with correct join condition (defined join type in cube) +> * Do not try to join between fact tables or lookup tables; +> * You can try to use high cardinality dimensions like seller id as Tableau Filter, but the engine will only return limited seller id in Tableau's filter now. + +### For Tableau 9.x User +Please refer to [Tableau 9.x Tutorial](./tableau_91.html) for detail guide. + +### Step 1. Install Kylin ODBC Driver +Refer to this guide: [Kylin ODBC Driver Tutorial](./odbc.html). + +### Step 2. Connect to Kylin Server +> We recommended to use Connect Using Driver instead of Using DSN. + +Connect Using Driver: Select "Other Database(ODBC)" in the left panel and choose KylinODBCDriver in the pop-up window. + + + +Enter your Sever location and credentials: server host, port, username and password. + + + +Click "Connect" to get the list of projects that you have permission to access. See details about permission in [Kylin Cube Permission Grant Tutorial](./acl.html). Then choose the project you want to connect in the drop down list. + + + +Click "Done" to complete the connection. + + + +### Step 3. Using Single Table or Multiple Tables +> Limitation +> +> * Must select FACT table first +> * Do not support select from lookup table only +> * The join condition must match within cube definition + +**Select Fact Table** + +Select `Multiple Tables`. + + + +Then click `Add Table...` to add a fact table. + + + + + +**Select Look-up Table** + +Click `Add Table...` to add a look-up table. + + + +Set up the join clause carefully. + + + +Keep add tables through click `Add Table...` until all the look-up tables have been added properly. Give the connection a name for use in Tableau. + + + +**Using Connect Live** + +There are three types of `Data Connection`. Choose the `Connect Live` option. + + + +Then you can enjoy analyzing with Tableau. + + + +**Add additional look-up Tables** + +Click `Data` in the top menu bar, select `Edit Tables...` to update the look-up table information. + + + +### Step 4. Using Customized SQL +To use customized SQL resembles using Single Table/Multiple Tables, except that you just need to paste your SQL in `Custom SQL` tab and take the same instruction as above. + + + +### Step 5. Publish to Tableau Server +Suppose you have finished making a dashboard with Tableau, you can publish it to Tableau Server. +Click `Server` in the top menu bar, select `Publish Workbook...`. + + + +Then sign in your Tableau Server and prepare to publish. + + + +If you're Using Driver Connect instead of DSN connect, you'll need to additionally embed your password in. Click the `Authentication` button at left bottom and select `Embedded Password`. Click `Publish` and you will see the result. + + + +### Tips +* Hide Table name in Tableau + + * Tableau will display columns be grouped by source table name, but user may want to organize columns with different structure. Using "Group by Folder" in Tableau and Create Folders to group different columns. + +  http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/tableau_91.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/tableau_91.cn.md b/website/_docs16/tutorial/tableau_91.cn.md new file mode 100644 index 0000000..fddc464 --- /dev/null +++ b/website/_docs16/tutorial/tableau_91.cn.md @@ -0,0 +1,51 @@ +--- +layout: docs16-cn +title: Tableau 9 æç¨ +categories: tutorial +permalink: /cn/docs16/tutorial/tableau_91.html +version: v1.2 +since: v1.2 +--- + +Tableau 9å·²ç»åå¸ä¸æ®µæ¶é´äºï¼ç¤¾åºæå¾å¤ç¨æ·å¸æApache Kylinè½è¿ä¸æ¥æ¯æè¯¥çæ¬ãç°å¨å¯ä»¥éè¿æ´æ°Kylin ODBC驱å¨ä»¥ä½¿ç¨Tableau 9æ¥ä¸Kylinæå¡è¿è¡äº¤äºã + + +### Tableau 8.x ç¨æ· +请åè[Tableau æç¨](./tableau.html)以è·å¾æ´è¯¦ç»å¸®å©ã + +### Install ODBC Driver +åè页é¢[Kylin ODBC 驱å¨ç¨åºæç¨](./odbc.html)ï¼è¯·ç¡®ä¿ä¸è½½å¹¶å®è£ Kylin ODBC Driver __v1.5__. å¦æä½ å®è£ ææ©åçæ¬ï¼è¯·å¸è½½ååå®è£ ã + +### Connect to Kylin Server +å¨Tableau 9.1å建æ°çæ°æ®è¿æ¥ï¼åå»å·¦ä¾§é¢æ¿ä¸ç`Other Database(ODBC)`ï¼å¹¶å¨å¼¹åºçªå£ä¸éæ©`KylinODBCDriver` + + +è¾å ¥ä½ çæå¡å¨å°åã端å£ã项ç®ãç¨æ·ååå¯ç ï¼ç¹å»`Connect`å¯è·åææé访é®çææé¡¹ç®å表ãæå ³æéç详ç»ä¿¡æ¯è¯·åè[Kylin Cube æéæäºæç¨](./acl.html). + + +### æ å°æ°æ®æ¨¡å +å¨å·¦ä¾§çå表ä¸ï¼éæ©æ°æ®åº`defaultCatalog`å¹¶åå»âæç´¢âæé®ï¼å°ååºææå¯æ¥è¯¢ç表ãç¨é¼ æ æè¡¨ææ½å°å³ä¾§åºåï¼å°±å¯ä»¥æ·»å 表ä½ä¸ºæ°æ®æºï¼å¹¶å建好表ä¸è¡¨çè¿æ¥å ³ç³» + + +### Connect Live +Tableau 9.1ä¸æä¸¤ç§æ°æ®æºè¿æ¥ç±»åï¼éæ©ï½å¨çº¿ï½é项以确ä¿ä½¿ç¨'Connect Live'æ¨¡å¼ + + +### èªå®ä¹SQL +妿éè¦ä½¿ç¨èªå®ä¹SQLï¼å¯ä»¥åå»å·¦ä¾§ï½New Custom SQLï½å¹¶å¨å¼¹çªä¸è¾å ¥SQLè¯å¥ï¼å°±å¯æ·»å ä¸ºæ°æ®æº. + + +### å¯è§å +ç°å¨ä½ å¯ä»¥è¿ä¸æ¥ä½¿ç¨Tableauè¿è¡å¯è§ååæï¼ + + +### åå¸å°Tableauæå¡å¨ +妿叿åå¸å°Tableauæå¡å¨, ç¹å»`Server`èåå¹¶éæ©`Publish Workbook` + + +### æ´å¤ + +- 请åè[Tableau æç¨](./tableau.html)以è·å¾æ´å¤ä¿¡æ¯ +- ä¹å¯ä»¥åè社åºç¨æ·Alberto Ramon Portoles ([email protected])æä¾çå享: [KylinWithTableau](https://github.com/albertoRamon/Kylin/tree/master/KylinWithTableau) + + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/tableau_91.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/tableau_91.md b/website/_docs16/tutorial/tableau_91.md new file mode 100644 index 0000000..39d70ff --- /dev/null +++ b/website/_docs16/tutorial/tableau_91.md @@ -0,0 +1,50 @@ +--- +layout: docs16 +title: Tableau 9 +categories: tutorial +permalink: /docs16/tutorial/tableau_91.html +--- + +Tableau 9.x has been released a while, there are many users are asking about support this version with Apache Kylin. With updated Kylin ODBC Driver, now user could interactive with Kylin service through Tableau 9.x. + + +### For Tableau 8.x User +Please refer to [Kylin and Tableau Tutorial](./tableau.html) for detail guide. + +### Install Kylin ODBC Driver +Refer to this guide: [Kylin ODBC Driver Tutorial](./odbc.html). +Please make sure to download and install Kylin ODBC Driver __v1.5__. If you already installed ODBC Driver in your system, please uninstall it first. + +### Connect to Kylin Server +Connect Using Driver: Start Tableau 9.1 desktop, click `Other Database(ODBC)` in the left panel and choose KylinODBCDriver in the pop-up window. + + +Provide your Sever location, credentials and project. Clicking `Connect` button, you can get the list of projects that you have permission to access, see details at [Kylin Cube Permission Grant Tutorial](./acl.html). + + +### Mapping Data Model +In left panel, select `defaultCatalog` as Database, click `Search` button in Table search box, and all tables get listed. With drag and drop to the right region, tables will become data source. Make sure JOINs are configured correctly. + + +### Connect Live +There are two types of `Connection`, choose the `Live` option to make sure using Connect Live mode. + + +### Custom SQL +To use customized SQL, click `New Custom SQL` in left panel and type SQL statement in pop-up dialog. + + +### Visualization +Now you can start to enjou analyzing with Tableau 9.1. + + +### Publish to Tableau Server +If you want to publish local dashboard to a Tableau Server, just expand `Server` menu and select `Publish Workbook`. + + +### More + +- You can refer to [Kylin and Tableau Tutorial](./tableau.html) for more detail. +- Here is a good tutorial written by Alberto Ramon Portoles ([email protected]): [KylinWithTableau](https://github.com/albertoRamon/Kylin/tree/master/KylinWithTableau) + + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/web.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/web.cn.md b/website/_docs16/tutorial/web.cn.md new file mode 100644 index 0000000..7f5e82c --- /dev/null +++ b/website/_docs16/tutorial/web.cn.md @@ -0,0 +1,134 @@ +--- +layout: docs16-cn +title: Kylinç½é¡µçæç¨ +categories: æç¨ +permalink: /cn/docs16/tutorial/web.html +version: v1.2 +--- + +> **æ¯æçæµè§å¨** +> +> Windows: Google Chrome, FireFox +> +> Mac: Google Chrome, FireFox, Safari + +## 1. è®¿é® & ç»é +访é®ä¸»æº: http://hostname:7070 +使ç¨ç¨æ·å/å¯ç ç»éï¼ADMIN/KYLIN + + + +## 2. Kylinä¸å¯ç¨çHive表 +è½ç¶Kylin使ç¨SQLä½ä¸ºæ¥è¯¢æ¥å£å¹¶å©ç¨Hiveå æ°æ®ï¼Kylinä¸ä¼è®©ç¨æ·æ¥è¯¢ææçhive表ï¼å 为å°ç®å为æ¢å®æ¯ä¸ä¸ªé¢æå»ºOLAP(MOLAP)ç³»ç»ã为äºä½¿è¡¨å¨Kylinä¸å¯ç¨ï¼ä½¿ç¨"Sync"æ¹æ³è½å¤æ¹ä¾¿å°ä»Hiveä¸åæ¥è¡¨ã + + + +## 3. Kylin OLAP Cube +KylinçOLAP Cubeæ¯ä»æå模å¼çHive表ä¸è·åçé¢è®¡ç®æ°æ®éï¼è¿æ¯ä¾ç¨æ·æ¢ç´¢ãç®¡çææcubeçç½é¡µç®¡ç页é¢ãç±èåæ è¿å ¥`Cubes`页é¢ï¼ç³»ç»ä¸ææå¯ç¨çcubeå°è¢«ååºã + + + +æ¢ç´¢æ´å¤å ³äºCubeç详ç»ä¿¡æ¯ + +* è¡¨æ ¼è§å¾: + +  + +* SQL è§å¾ (Hiveæ¥è¯¢è¯»åæ°æ®ä»¥çæcube): + +  + +* å¯è§å (æ¾ç¤ºè¿ä¸ªcubeèåçæå模å¼): + +  + +* è®¿é® (æäºç¨æ·/è§è²æéï¼betaçä¸æäºæéæä½ä» 对管çå弿¾): + +  + +## 4. å¨ç½é¡µä¸ç¼ååè¿è¡SQL +Kelinçç½é¡µçä¸ºç¨æ·æä¾äºä¸ä¸ªç®åçæ¥è¯¢å·¥å ·æ¥è¿è¡SQL以æ¢ç´¢ç°åçcubeï¼éªè¯ç»æå¹¶æ¢ç´¢ä½¿ç¨#5ä¸çPivot analysisä¸å¯è§ååæçç»æéã + +> **æ¥è¯¢éå¶** +> +> 1. ä» æ¯æSELECTæ¥è¯¢ +> +> 2. 为äºé¿å 仿å¡å¨å°å®¢æ·ç«¯äº§ç巨大çç½ç»æµéï¼betaçä¸çæ«æèå´éå¼è¢«è®¾ç½®ä¸º1,000,000ã +> +> 3. betaçä¸ï¼SQLå¨cube䏿 æ³æ¾å°çæ°æ®å°ä¸ä¼éå®åå°Hive + +ç±èåæ è¿å ¥âQueryâ页é¢ï¼ + + + +* æºè¡¨ï¼ + + æµè§å¨å½åå¯ç¨è¡¨ï¼ä¸Hiveç¸åçç»æåå æ°æ®ï¼ï¼ + +  + +* æ°çæ¥è¯¢ï¼ + + ä½ å¯ä»¥ç¼ååè¿è¡ä½ çæ¥è¯¢å¹¶æ¢ç´¢ç»æãè¿éæä¾ä¸ä¸ªæ¥è¯¢ä¾ä½ åèï¼ + +  + +* å·²ä¿åçæ¥è¯¢ï¼ + + ä¸ç¨æ·è´¦å·å ³èï¼ä½ å°è½å¤ä»ä¸åçæµè§å¨çè³æºå¨ä¸è·åå·²ä¿åçæ¥è¯¢ã + å¨ç»æåºåç¹å»âSaveâï¼å°ä¼å¼¹åºåååæè¿°æ¥ä¿åå½åæ¥è¯¢ï¼ + +  + + ç¹å»âSaved Queriesâæ¢ç´¢ææå·²ä¿åçæ¥è¯¢ï¼ä½ å¯ä»¥ç´æ¥éæ°æäº¤å®æ¥è¿è¡æå é¤å®ï¼ + +  + +* æ¥è¯¢åå²ï¼ + + ä» ä¿åå½åç¨æ·å¨å½åæµè§å¨ä¸çæ¥è¯¢åå²ï¼è¿å°éè¦å¯ç¨cookieï¼å¹¶ä¸å¦æä½ æ¸ çæµè§å¨ç¼åå°ä¼ä¸¢å¤±æ°æ®ãç¹å»âQuery Historyâæ ç¾ï¼ä½ å¯ä»¥ç´æ¥éæ°æäº¤å ¶ä¸çä»»ä½ä¸æ¡å¹¶å次è¿è¡ã + +## 5. Pivot Analysisä¸å¯è§å +Kylinçç½é¡µçæä¾ä¸ä¸ªç®åçPivotä¸å¯è§ååæå·¥å ·ä¾ç¨æ·æ¢ç´¢ä»ä»¬çæ¥è¯¢ç»æï¼ + +* ä¸è¬ä¿¡æ¯ï¼ + + 彿¥è¯¢è¿è¡æååï¼å®å°åç°ä¸ä¸ªæåææ ä¸è¢«è®¿é®çcubeååã + åæ¶å®å°ä¼åç°è¿ä¸ªæ¥è¯¢å¨åå°å¼æè¿è¡äºå¤ä¹ ï¼ä¸å æ¬ä»Kylinæå¡å¨å°æµè§å¨çç½ç»éä¿¡ï¼ï¼ + +  + +* æ¥è¯¢ç»æï¼ + + è½å¤æ¹ä¾¿å°å¨ä¸ä¸ªå䏿åºã + +  + +* 导åºå°CSVæä»¶ + + ç¹å»âExportâæé®ä»¥CSVæä»¶æ ¼å¼ä¿åå½åç»æã + +* Pivotè¡¨ï¼ + + å°ä¸ä¸ªæå¤ä¸ªåææ¾å°æ 头ï¼ç»æå°æ ¹æ®è¿äºåçå¼åç»ï¼ + +  + +* å¯è§åï¼ + + åæ¶ï¼ç»æéå°è¢«æ¹ä¾¿å°æ¾ç¤ºå¨âå¯è§åâçä¸åå¾è¡¨ä¸ï¼ + + 注æï¼çº¿å½¢å¾ä» å½è³å°ä¸ä¸ªä»Hive表ä¸è·åç维度æçå®çâDateâæ°æ®ç±»ååæ¶ææ¯å¯ç¨çã + + * æ¡å½¢å¾ï¼ + +  + + * 饼å¾ï¼ + +  + + * 线形å¾ï¼ + +  + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_docs16/tutorial/web.md ---------------------------------------------------------------------- diff --git a/website/_docs16/tutorial/web.md b/website/_docs16/tutorial/web.md new file mode 100644 index 0000000..314ff48 --- /dev/null +++ b/website/_docs16/tutorial/web.md @@ -0,0 +1,123 @@ +--- +layout: docs16 +title: Kylin Web Interface +categories: tutorial +permalink: /docs16/tutorial/web.html +--- + +> **Supported Browsers** +> Windows: Google Chrome, FireFox +> Mac: Google Chrome, FireFox, Safari + +## 1. Access & Login +Host to access: http://hostname:7070 +Login with username/password: ADMIN/KYLIN + + + +## 2. Sync Hive Table into Kylin +Although Kylin will using SQL as query interface and leverage Hive metadata, kylin will not enable user to query all hive tables since it's a pre-build OLAP (MOLAP) system so far. To enable Table in Kylin, it will be easy to using "Sync" function to sync up tables from Hive. + + + +## 3. Kylin OLAP Cube +Kylin's OLAP Cubes are pre-calculation datasets from star schema tables, Here's the web interface for user to explorer, manage all cubes. Go to `Model` menu, it will list all cubes available in system: + + + +To explore more detail about the Cube + +* Form View: + +  + +* SQL View (Hive Query to read data to generate the cube): + +  + +* Access (Grant user/role privileges, grant operation only open to Admin): + +  + +## 4. Write and Execute SQL on web +Kylin's web offer a simple query tool for user to run SQL to explorer existing cube, verify result and explorer the result set using #5's Pivot analysis and visualization + +> **Query Limit** +> +> 1. Only SELECT query be supported +> +> 2. SQL will not be redirect to Hive + +Go to "Insight" menu: + + + +* Source Tables: + + Browser current available tables (same structure and metadata as Hive): + +  + +* New Query: + + You can write and execute your query and explorer the result. + +  + +* Saved Query (only work after enable LDAP security): + + Associate with user account, you can get saved query from different browsers even machines. + Click "Save" in Result area, it will popup for name and description to save current query: + +  + + Click "Saved Queries" to browser all your saved queries, you could direct submit it or remove it. + +* Query History: + + Only keep the current user's query history in current bowser, it will require cookie enabled and will lost if you clean up bowser's cache. Click "Query History" tab, you could directly resubmit any of them to execute again. + +## 5. Pivot Analysis and Visualization +There's one simple pivot and visualization analysis tool in Kylin's web for user to explore their query result: + +* General Information: + + When the query execute success, it will present a success indictor and also a cube's name which be hit. + Also it will present how long this query be executed in backend engine (not cover network traffic from Kylin server to browser): + +  + +* Query Result: + + It's easy to order on one column. + +  + +* Export to CSV File + + Click "Export" button to save current result as CSV file. + +* Pivot Table: + + Drag and drop one or more columns into the header, the result will grouping by such column's value: + +  + +* Visualization: + + Also, the result set will be easy to show with different charts in "Visualization": + + note: line chart only available when there's at least one dimension with real "Date" data type of column from Hive Table. + + * Bar Chart: + +  + + * Pie Chart: + +  + + * Line Chart + +  + http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_layouts/docs16-cn.html ---------------------------------------------------------------------- diff --git a/website/_layouts/docs16-cn.html b/website/_layouts/docs16-cn.html new file mode 100755 index 0000000..102c501 --- /dev/null +++ b/website/_layouts/docs16-cn.html @@ -0,0 +1,46 @@ +<!-- +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +--> + +<!doctype html> +<html> + {% include head.cn.html %} + <body> + {% include header.cn.html %} + + <div class="container"> + <div class="row"> + {% include docs15_nav.cn.html %} + <div class="col-md-9 col-lg-9 col-xs-14 aside2"> + <div id="container"> + <div id="pjax"> + <h1 class="post-title">{{ page.title }}</h1> + <article class="post-content" > + {{ content }} + </article> + </div> + </div> + </div> + </div> + </div> + {% include footer.html %} + + <script src="/assets/js/jquery-1.9.1.min.js"></script> + <script src="/assets/js/bootstrap.min.js"></script> + <script src="/assets/js/main.js"></script> + </body> +</html> http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/_layouts/docs16.html ---------------------------------------------------------------------- diff --git a/website/_layouts/docs16.html b/website/_layouts/docs16.html new file mode 100644 index 0000000..8df5e2b --- /dev/null +++ b/website/_layouts/docs16.html @@ -0,0 +1,50 @@ +<!-- +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +--> + +<!doctype html> +<html> + {% include head.html %} + <body> + {% include header.html %} + + <div class="container"> + <div class="row"> + {% include docs15_nav.html %} + <div class="col-md-9 col-lg-9 col-xs-14 aside2"> + <div id="container"> + <div id="pjax"> + <h1 class="post-title">{{ page.title }}</h1> + {% if page.version == NULL %} + {% else %} + <p>version: {{page.version}}, since: {{page.since}}</p> + {% endif %} + <article class="post-content" > + {{ content }} + </article> + </div> + </div> + </div> + </div> + </div> + {% include footer.html %} + + <script src="/assets/js/jquery-1.9.1.min.js"></script> + <script src="/assets/js/bootstrap.min.js"></script> + <script src="/assets/js/main.js"></script> + </body> +</html> http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/10_agg_group.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/10_agg_group.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/10_agg_group.png new file mode 100644 index 0000000..8eea0bf Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/10_agg_group.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/11_Rowkey.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/11_Rowkey.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/11_Rowkey.png new file mode 100644 index 0000000..b913b0a Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/11_Rowkey.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/12_overwrite.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/12_overwrite.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/12_overwrite.png new file mode 100644 index 0000000..2c2e3e7 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/12_overwrite.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/13_Query_result.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/13_Query_result.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/13_Query_result.png new file mode 100644 index 0000000..b45a4fa Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/13_Query_result.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/1_Add_streaming_table.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/1_Add_streaming_table.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/1_Add_streaming_table.png new file mode 100644 index 0000000..46cec24 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/1_Add_streaming_table.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/2_Define_streaming_table.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/2_Define_streaming_table.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/2_Define_streaming_table.png new file mode 100644 index 0000000..dca385a Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/2_Define_streaming_table.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Kafka_setting.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Kafka_setting.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Kafka_setting.png new file mode 100644 index 0000000..f4afc98 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Kafka_setting.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_setting.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_setting.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_setting.png new file mode 100644 index 0000000..e3ede03 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_setting.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_time.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_time.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_time.png new file mode 100644 index 0000000..533ce29 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_time.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/4_Streaming_table.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/4_Streaming_table.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/4_Streaming_table.png new file mode 100644 index 0000000..02dd1b2 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/4_Streaming_table.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/5_Data_model_dimension.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/5_Data_model_dimension.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/5_Data_model_dimension.png new file mode 100644 index 0000000..f2dbc0f Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/5_Data_model_dimension.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/6_Data_model_measure.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/6_Data_model_measure.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/6_Data_model_measure.png new file mode 100644 index 0000000..c01c769 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/6_Data_model_measure.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/7_Data_model_partition.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/7_Data_model_partition.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/7_Data_model_partition.png new file mode 100644 index 0000000..c8aa31c Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/7_Data_model_partition.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/8_Cube_dimension.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/8_Cube_dimension.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/8_Cube_dimension.png new file mode 100644 index 0000000..152af9b Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/8_Cube_dimension.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/59913167/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/9_Cube_measure.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/9_Cube_measure.png b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/9_Cube_measure.png new file mode 100644 index 0000000..0fd2601 Binary files /dev/null and b/website/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/9_Cube_measure.png differ
