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/02/20 05:26:19 UTC

[2/2] kylin git commit: Document format review on flink.md and squirrel.md

Document format review on flink.md and squirrel.md


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e3d43f72
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e3d43f72
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e3d43f72

Branch: refs/heads/document
Commit: e3d43f725e7c9e9e28290b44d4390e990916c58c
Parents: 159678c
Author: shaofengshi <sh...@apache.org>
Authored: Mon Feb 20 13:26:09 2017 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Mon Feb 20 13:26:09 2017 +0800

----------------------------------------------------------------------
 website/_docs16/tutorial/flink.md    | 146 ++++++++++++------------------
 website/_docs16/tutorial/squirrel.md |  66 +++++---------
 2 files changed, 82 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/e3d43f72/website/_docs16/tutorial/flink.md
----------------------------------------------------------------------
diff --git a/website/_docs16/tutorial/flink.md b/website/_docs16/tutorial/flink.md
index 579bb08..f3cb99f 100644
--- a/website/_docs16/tutorial/flink.md
+++ b/website/_docs16/tutorial/flink.md
@@ -1,45 +1,39 @@
 ---
 layout: docs16
-title:  Apache Flink
+title:  Connect from Apache Flink
 categories: tutorial
 permalink: /docs16/tutorial/flink.html
 ---
 
 
-### Intro
-There are several Attempts to use this in Scala  and JDBC [Attempt1](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/JDBCInputFormat-preparation-with-Flink-1-1-SNAPSHOT-and-Scala-2-11-td5371.html)  [Attempt2](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Type-of-TypeVariable-OT-in-class-org-apache-flink-api-common-io-RichInputFormat-could-not-be-determi-td7287.html)  [Attempt3](http://stackoverflow.com/questions/36067881/create-dataset-from-jdbc-source-in-flink-using-scala)  [Attempt4](https://codegists.com/snippet/scala/jdbcissuescala_zeitgeist_scala)  but none works  ...
+### Introduction
 
-**Problem 1:** There aren\u2019t any doc about connect  Kylin with  Flink
+This document describes how to use Kylin as a data source in Apache Flink; 
 
-**Problem 2:**  We will try use CreateInput and [JDBCInputFormat](https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/batch/index.html) in batch mode and access via JDBC to Kylin. But isn\u2019t implemented in Scala is only in Java [MailList](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/jdbc-JDBCInputFormat-td9393.html)
-	
+There were several attempts to do this in Scala and JDBC, but none of them works: 
 
-Then , We will go step by step solving problems
+* [attempt1](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/JDBCInputFormat-preparation-with-Flink-1-1-SNAPSHOT-and-Scala-2-11-td5371.html)  
+* [attempt2](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Type-of-TypeVariable-OT-in-class-org-apache-flink-api-common-io-RichInputFormat-could-not-be-determi-td7287.html)  
+* [attempt3](http://stackoverflow.com/questions/36067881/create-dataset-from-jdbc-source-in-flink-using-scala)  
+* [attempt4](https://codegists.com/snippet/scala/jdbcissuescala_zeitgeist_scala); 
 
-&nbsp;
-### Pre-requisites
-* We need an instance of Kylin, with a cube: [Quick Start with Sample Cube](http://kylin.apache.org/docs15/tutorial/kylin_sample.html), will be enough
-
-   You can check: 
-
-  ![](/images/Flink-Tutorial/01.png)
+We will try use CreateInput and [JDBCInputFormat](https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/batch/index.html) in batch mode and access via JDBC to Kylin. But it isn\u2019t implemented in Scala, is only in Java [MailList](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/jdbc-JDBCInputFormat-td9393.html). This doc will go step by step solving these problems.
 
+### Pre-requisites
 
+* Need an instance of Kylin, with a Cube; [Sample Cube](/docs16/tutorial/kylin_sample.html) will be good enough.
 * [Scala](http://www.scala-lang.org/) and [Apache Flink](http://flink.apache.org/) Installed
+* [IntelliJ](https://www.jetbrains.com/idea/) Installed and configured for Scala/Flink (see [Flink IDE setup guide](https://ci.apache.org/projects/flink/flink-docs-release-1.1/internals/ide_setup.html) )
 
-* [IntelliJ](https://www.jetbrains.com/idea/) Installed and configured for Scala / Flink (See [Flink IDE setup guide](https://ci.apache.org/projects/flink/flink-docs-release-1.1/internals/ide_setup.html) )
+### Used software:
 
-&nbsp;
-### Used Software:
 * [Apache Flink](http://flink.apache.org/downloads.html) v1.2-SNAPSHOT
-* [Apache Kylin](http://kylin.apache.org/download/) v1.5.2
-
-  (In Nov 2016, only works with 1.5.4 or more by dependences with Calcite, I Tested with v1.6.0)
+* [Apache Kylin](http://kylin.apache.org/download/) v1.5.2 (v1.6.0 also works)
 * [IntelliJ](https://www.jetbrains.com/idea/download/#section=linux)  v2016.2
 * [Scala](downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz)  v2.11
 
-&nbsp;
 ### Starting point:
+
 This can be out initial skeleton: 
 
 {% highlight Groff markup %}
@@ -57,18 +51,14 @@ val inputFormat = JDBCInputFormat.buildJDBCInputFormat()
 
 The first error is: ![alt text](/images/Flink-Tutorial/02.png)
 
-We add to Scala: 
+Add to Scala: 
 {% highlight Groff markup %}
 import org.apache.flink.api.java.io.jdbc.JDBCInputFormat
 {% endhighlight %}
 
-&nbsp;
-
 Next error is  ![alt text](/images/Flink-Tutorial/03.png)
 
-We can solve dependencies [(mvn repository: jdbc)](https://mvnrepository.com/artifact/org.apache.flink/flink-jdbc/1.1.2)
-
-Add this to your pom.xml:
+We can solve dependencies [(mvn repository: jdbc)](https://mvnrepository.com/artifact/org.apache.flink/flink-jdbc/1.1.2); Add this to your pom.xml:
 {% highlight Groff markup %}
 <dependency>
    <groupId>org.apache.flink</groupId>
@@ -77,14 +67,14 @@ Add this to your pom.xml:
 </dependency>
 {% endhighlight %}
 
-&nbsp;
 ## Solve dependencies of row 
+
 Similar to previous point we need solve dependencies of Row Class [(mvn repository: Table) ](https://mvnrepository.com/artifact/org.apache.flink/flink-table_2.10/1.1.2):
 
   ![](/images/Flink-Tutorial/03b.png)
 
 
-* In POM.XML
+* In pom.xml add:
 {% highlight Groff markup %}
 <dependency>
    <groupId>org.apache.flink</groupId>
@@ -98,14 +88,14 @@ Similar to previous point we need solve dependencies of Row Class [(mvn reposito
 import org.apache.flink.api.table.Row
 {% endhighlight %}
 
-&nbsp;
 ## Solve RowTypeInfo property (and their new dependencies)
-This is the new error to solve
+
+This is the new error to solve:
 
   ![](/images/Flink-Tutorial/04.png)
 
 
-* If we check the code of [JDBCInputFormat.java](https://github.com/apache/flink/blob/master/flink-batch-connectors/flink-jdbc/src/main/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormat.java#L69), we can see [this new property](https://github.com/apache/flink/commit/09b428bd65819b946cf82ab1fdee305eb5a941f5#diff-9b49a5041d50d9f9fad3f8060b3d1310R69) (and mandatory) added on Apr 2016 by [FLINK-3750](https://issues.apache.org/jira/browse/FLINK-3750)  Manual [JDBCInputFormat](https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormat.html) v1.2 in Java
+* If check the code of [JDBCInputFormat.java](https://github.com/apache/flink/blob/master/flink-batch-connectors/flink-jdbc/src/main/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormat.java#L69), we can see [this new property](https://github.com/apache/flink/commit/09b428bd65819b946cf82ab1fdee305eb5a941f5#diff-9b49a5041d50d9f9fad3f8060b3d1310R69) (and mandatory) added on Apr 2016 by [FLINK-3750](https://issues.apache.org/jira/browse/FLINK-3750)  Manual [JDBCInputFormat](https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormat.html) v1.2 in Java
 
    Add the new Property: **setRowTypeInfo**
    
@@ -120,51 +110,47 @@ val inputFormat = JDBCInputFormat.buildJDBCInputFormat()
   .finish()
 {% endhighlight %}
 
-* �How can configure this  property in Scala? In [Attempt4](https://codegists.com/snippet/scala/jdbcissuescala_zeitgeist_scala), there is an incorrect solution
+* How can configure this property in Scala? In [Attempt4](https://codegists.com/snippet/scala/jdbcissuescala_zeitgeist_scala), there is an incorrect solution
    
    We can check the types using the intellisense: ![alt text](/images/Flink-Tutorial/05.png)
    
-   Then we will need add more dependences :(
-   
-   Add to scala:
+   Then we will need add more dependences; Add to scala:
+
 {% highlight Groff markup %}
-		import org.apache.flink.api.table.typeutils.RowTypeInfo
-		import org.apache.flink.api.common.typeinfo.{BasicTypeInfo, TypeInformation}
+import org.apache.flink.api.table.typeutils.RowTypeInfo
+import org.apache.flink.api.common.typeinfo.{BasicTypeInfo, TypeInformation}
 {% endhighlight %}
 
-   We need create a Array or Seq of TypeInformation[ ]
+   Create a Array or Seq of TypeInformation[ ]
 
   ![](/images/Flink-Tutorial/06.png)
 
 
-   My solution:
+   Solution:
    
 {% highlight Groff markup %}
    var stringColum: TypeInformation[String] = createTypeInformation[String]
    val DB_ROWTYPE = new RowTypeInfo(Seq(stringColum))
 {% endhighlight %}
 
-&nbsp;
-## Solve Class Not Found
-We need find the kylin-jdbc-x.x.x.jar and expose to flink
+## Solve ClassNotFoundException
 
   ![](/images/Flink-Tutorial/07.png)
 
+Need find the kylin-jdbc-x.x.x.jar and then expose to Flink
 
-1. We need to find the JAR Class for the JDBC Connector 
+1. Find the Kylin JDBC jar
 
-   From Kylin [Download](http://kylin.apache.org/download/) Choose **Binary** and the **correct version of Kylin and HBase**
+   From Kylin [Download](http://kylin.apache.org/download/) choose **Binary** and the **correct version of Kylin and HBase**
    
    Download & Unpack: in ./lib: 
    
-
   ![](/images/Flink-Tutorial/08.png)
 
 
-
 2. Make this JAR accessible to Flink
 
-   If you execute like service you need put this JAR in you Java ClassPATH using your .bashrc 
+   If you execute like service you need put this JAR in you Java class path using your .bashrc 
 
   ![](/images/Flink-Tutorial/09.png)
 
@@ -176,40 +162,37 @@ We need find the kylin-jdbc-x.x.x.jar and expose to flink
   ![](/images/Flink-Tutorial/11.png)
 
  
-
-  If you are executing from IDE, you need add your ClassPath manually:
+  If you are executing from IDE, need add your class path manually:
   
   On IntelliJ: ![alt text](/images/Flink-Tutorial/12.png)  > ![alt text](/images/Flink-Tutorial/13.png) > ![alt text](/images/Flink-Tutorial/14.png) > ![alt text](/images/Flink-Tutorial/15.png)
   
   The result, will be similar to: ![alt text](/images/Flink-Tutorial/16.png)
   
-&nbsp;
-## Solve Couldn\u2019t access resultSet
+## Solve "Couldn\u2019t access resultSet" error
 
   ![](/images/Flink-Tutorial/17.png)
 
 
-Is related with [Flink 4108](https://issues.apache.org/jira/browse/FLINK-4108)  [(MailList)](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/jdbc-JDBCInputFormat-td9393.html#a9415) and Timo Walther [make a PR](https://github.com/apache/flink/pull/2619)
+It is related with [Flink 4108](https://issues.apache.org/jira/browse/FLINK-4108)  [(MailList)](http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/jdbc-JDBCInputFormat-td9393.html#a9415) and Timo Walther [make a PR](https://github.com/apache/flink/pull/2619)
 
-If you are <= Flink 1.2 you will need apply this path and make clean install
+If you are running Flink <= 1.2 you will need apply this path and make clean install
 
-&nbsp;
-## Solve the casting
+## Solve the casting error
 
   ![](/images/Flink-Tutorial/18.png)
 
-In the error msg you have the problem and solution \u2026. nice ;)  ��
+In the error message you have the problem and solution \u2026. nice ;)  ��
 
-&nbsp;
 ## The result
-The out must be similar to this, print the result of query by standard output:
+
+The output must be similar to this, print the result of query by standard output:
 
   ![](/images/Flink-Tutorial/19.png)
 
 
-&nbsp;
-## Now, more complex . . . 
-We can try with multi-colum and multi-type query:
+## Now, more complex
+
+Try with a multi-colum and multi-type query:
 
 {% highlight Groff markup %}
 select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers 
@@ -218,60 +201,49 @@ group by part_dt
 order by part_dt
 {% endhighlight %}
 
-We will need changes in DB_ROWTYPE:
+Need changes in DB_ROWTYPE:
 
   ![](/images/Flink-Tutorial/20.png)
 
 
-And import lib of Java, to work with Data type of Java  ![alt text](/images/Flink-Tutorial/21.png)
+And import lib of Java, to work with Data type of Java ![alt text](/images/Flink-Tutorial/21.png)
 
-The new Result will be:  ![alt text](/images/Flink-Tutorial/22.png)
+The new result will be: 
 
   ![](/images/Flink-Tutorial/23.png)
 
 
-
-
-&nbsp;
 ## Error:  Reused Connection
 
+
   ![](/images/Flink-Tutorial/24.png)
 
-Check if your HBase and Kylin is working
-Also you can use Kylin UI for it
+Check if your HBase and Kylin is working. Also you can use Kylin UI for it.
 
 
-&nbsp;
 ## Error:  java.lang.AbstractMethodError:  \u2026.Avatica Connection
+
 See [Kylin 1898](https://issues.apache.org/jira/browse/KYLIN-1898) 
 
-It is a problem with kylin-jdbc-1.x.x. JAR, you need use Calcite 1.8 or more \u2192 use Kylin 1.5.4 or more
+It is a problem with kylin-jdbc-1.x.x. JAR, you need use Calcite 1.8 or above; The solution is to use Kylin 1.5.4 or above.
 
   ![](/images/Flink-Tutorial/25.png)
 
 
 
-&nbsp;
 ## Error: can't expand macros compiled by previous versions of scala
-Is a problem with versions of scala, check in with  scala -version  your actual version and choose your correct POM
 
-Perhaps you will need a IntelliJ > File > Invalidates Cache > Invalidate and Restart
+Is a problem with versions of scala, check in with "scala -version" your actual version and choose your correct POM.
 
-I Aded POM for Scala 2.11
+Perhaps you will need a IntelliJ > File > Invalidates Cache > Invalidate and Restart.
 
+I added POM for Scala 2.11
 
-&nbsp;
-## Final Words
-**Now we can read Kylin\u2019s data from Apache Flink, great News ��**
-
-[Full Code Example](https://github.com/albertoRamon/Flink/tree/master/ReadKylinFromFlink/flink-scala-project)
 
-We solved all integration problems, and tested with different types of data (Long, BigDecimal and Dates)
-
-Today  (12 Oct 2016) Flink 1.2-SnapShot, you need download, apply path, compile and make install \u2026. but in new releases will not necessary
+## Final Words
 
-**Updated** The patch has been comited at 15 Oct, then, Will be part of Flink 1.2
+Now you can read Kylin\u2019s data from Apache Flink, great!
 
-&nbsp;
-&nbsp;
+[Full Code Example](https://github.com/albertoRamon/Flink/tree/master/ReadKylinFromFlink/flink-scala-project)
 
+Solved all integration problems, and tested with different types of data (Long, BigDecimal and Dates). The patch has been comited at 15 Oct, then, will be part of Flink 1.2.

http://git-wip-us.apache.org/repos/asf/kylin/blob/e3d43f72/website/_docs16/tutorial/squirrel.md
----------------------------------------------------------------------
diff --git a/website/_docs16/tutorial/squirrel.md b/website/_docs16/tutorial/squirrel.md
index 3a731cd..5e69780 100644
--- a/website/_docs16/tutorial/squirrel.md
+++ b/website/_docs16/tutorial/squirrel.md
@@ -1,45 +1,39 @@
 ---
 layout: docs16
-title:  SQuirreL
+title:  Connect from SQuirreL
 categories: tutorial
 permalink: /docs16/tutorial/squirrel.html
 ---
 
-### Intro
-SquirreL SQL is a multi platform Universal SQL Client (GNU License)
-You can use it to access HBase + Phoenix and Hive
+### Introduction
+
+[SQuirreL SQL](http://www.squirrelsql.org/) is a multi platform Universal SQL Client (GNU License). You can use it to access HBase + Phoenix and Hive. This document introduces how to connect to Kylin from SQuirreL.
 
-&nbsp;
 ### Used Software
-* [Kylin v1.5.2](http://kylin.apache.org/download/) & ODBC 1.5
-*  Update Dic 2016: Kylin 1.6.0 & ODBC 1.6 Works OK
+
+* [Kylin v1.6.0](/download/) & ODBC 1.6
 * [SquirreL SQL v3.7.1](http://www.squirrelsql.org/)
 
-&nbsp;
 ## Pre-requisites
-* We need to find the JAR Class for the JDBC Connector
 
+* Find the Kylin JDBC driver jar
   From Kylin Download, Choose Binary and the **correct version of Kylin and HBase**
-  
 	Download & Unpack:  in **./lib**: 
-
   ![](/images/SQuirreL-Tutorial/01.png)
 
 
-* We need an instance of Kylin, with a cube: Quick Start with Sample Cube, will be enough
-
-  You can check: 
+* Need an instance of Kylin, with a Cube; the [Sample Cube](/docs16/tutorial/kylin_sample.html) is enough.
 
   ![](/images/SQuirreL-Tutorial/02.png)
 
 
-* [Dowload and install SquirreL](http://www.squirrelsql.org/#installation), you will need Java
+* [Dowload and install SquirreL](http://www.squirrelsql.org/#installation)
+
+## Add Kylin JDBC Driver
 
-&nbsp;
-## Add Kylin Driver
 On left menu: ![alt text](/images/SQuirreL-Tutorial/03.png) >![alt text](/images/SQuirreL-Tutorial/04.png)  > ![alt text](/images/SQuirreL-Tutorial/05.png)  > ![alt text](/images/SQuirreL-Tutorial/06.png)
 
-And locale your JAR: ![alt text](/images/SQuirreL-Tutorial/07.png)
+And locate the JAR: ![alt text](/images/SQuirreL-Tutorial/07.png)
 
 Configure this parameters:
 
@@ -48,12 +42,12 @@ Configure this parameters:
 
   jdbc:kylin://172.17.0.2:7070/learn_kylin
 * Put Class Name: ![alt text](/images/SQuirreL-Tutorial/10.png)
-	TIP:  If auto complete not work, type you:  org.apache.kylin.jdbc.Driver 
+	Tip:  If auto complete not work, type:  org.apache.kylin.jdbc.Driver 
 	
-Check in your Driver List: ![alt text](/images/SQuirreL-Tutorial/11.png)
+Check the Driver List: ![alt text](/images/SQuirreL-Tutorial/11.png)
 
-&nbsp;
 ## Add Aliases
+
 On left menu: ![alt text](/images/SQuirreL-Tutorial/12.png)  > ![alt text](/images/SQuirreL-Tutorial/13.png) : (Login pass by default: ADMIN / KYLIN)
 
   ![](/images/SQuirreL-Tutorial/14.png)
@@ -64,15 +58,14 @@ And automatically launch conection:
   ![](/images/SQuirreL-Tutorial/15.png)
 
 
-&nbsp;
 ## Connect and Execute
-The startup window when you are connect:
 
-  ![](/images/SQuirreL-Tutorial/16.png)
+The startup window when connected:
 
+  ![](/images/SQuirreL-Tutorial/16.png)
 
 
-Choose Tab:   and write your querie  (whe use Kylin\u2019s example cube):
+Choose Tab: and write a query  (whe use Kylin\u2019s example cube):
 
   ![](/images/SQuirreL-Tutorial/17.png)
 
@@ -88,45 +81,32 @@ Execute With: ![alt text](/images/SQuirreL-Tutorial/18.png)
   ![](/images/SQuirreL-Tutorial/19.png)
 
 
-And it\u2019s works,OK ![alt text](/images/SQuirreL-Tutorial/20.png) 
+And it\u2019s works!
 
-&nbsp;
-## Extra: Some tips:
-SquirreL isn\u2019t the most stable SQL Client, but its very flexible and get you a lot of info
+## Tips:
 
-I use it for PoC and try to solve / check connectivity problems
+SquirreL isn\u2019t the most stable SQL Client, but it is very flexible and get a lot of info; It can be used for PoC and checking connectivity issues.
 
-List of  Tables: 
+List of tables: 
 
   ![](/images/SQuirreL-Tutorial/21.png)
 
 
-&nbsp;
-
-List of Columns of table:
+List of columns of table:
 
   ![](/images/SQuirreL-Tutorial/22.png)
 
 
-&nbsp;
-
 List of column of Querie:
 
   ![](/images/SQuirreL-Tutorial/23.png)
 
 
-&nbsp;
-
 Export the result of queries:
 
   ![](/images/SQuirreL-Tutorial/24.png)
 
 
-&nbsp;
-
  Info about time query execution:
 
   ![](/images/SQuirreL-Tutorial/25.png)
-
-
-