This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a commit to branch document in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/document by this push: new 8f67b78 minor add more detail for data source sdk 8f67b78 is described below commit 8f67b78d2f78055d917e4c987ae76e21dee5dee6 Author: edouardzyc <edouard...@hotmail.com> AuthorDate: Mon Jan 28 11:22:19 2019 +0800 minor add more detail for data source sdk --- website/_dev/datasource_sdk.cn.md | 80 +++++++++++++++++++++++++++++++++--- website/_dev/datasource_sdk.md | 85 +++++++++++++++++++++++++++++++++++---- 2 files changed, 152 insertions(+), 13 deletions(-) diff --git a/website/_dev/datasource_sdk.cn.md b/website/_dev/datasource_sdk.cn.md index 0a50652..80d6ded 100644 --- a/website/_dev/datasource_sdk.cn.md +++ b/website/_dev/datasource_sdk.cn.md @@ -19,8 +19,78 @@ permalink: /cn/development/datasource_sdk.html 开发者不需要编码, 只需要为新的数据源新建一个配置文件 *{dialect}.xml*, 配置文件结构: -* 根节点: -<DATASOURCE_DEF NAME="kylin" ID="default">, ID的值为方言的名称. +* 根节点: + +``` +<DATASOURCE_DEF NAME="kylin" ID="mysql" DIALECT="mysql"/> +``` + +ID的值通常和配置文件的名字相同。 +DIALECT的值的定义主要是为了区分不同数据库对于标识符的引用。 +举个例子 Mysql 使用 ``, Microsoft sql server 使用 []. +Kylin 里定义的DIALECT 和 Apache Calcite 里定义DIALECT 的对应关系: +<table> + <tbody align="left"> + <tr> + <td align="center"> Kylin 里定义的方言 </td> + <td align="center"> Apache Calcite 里定义的方言 </td> + </tr> + <tr> + <td> default </td> + <td> SqlDialect.CALCITE </td> + </tr> + <tr> + <td> calcite </td> + <td> SqlDialect.CALCITE </td> + </tr> + <tr> + <td> greenplum </td> + <td> SqlDialect.DatabaseProduct.POSTGRESQL </td> + </tr> + <tr> + <td> postgresql </td> + <td> SqlDialect.DatabaseProduct.POSTGRESQL </td> + </tr> + <tr> + <td> mysql </td> + <td> SqlDialect.DatabaseProduct.MYSQL </td> + </tr> + <tr> + <td> sql.keyword-default-uppercase </td> + <td> whether <default> should be transform to uppercase </td> + </tr> + <tr> + <td> mssql </td> + <td> SqlDialect.DatabaseProduct.MSSQL </td> + </tr> + <tr> + <td> oracle </td> + <td> SqlDialect.DatabaseProduct.ORACLE </td> + </tr> + <tr> + <td> vertica </td> + <td> SqlDialect.DatabaseProduct.VERTICA </td> + </tr> + <tr> + <td> redshift </td> + <td> SqlDialect.DatabaseProduct.REDSHIFT </td> + </tr> + <tr> + <td> hive </td> + <td> SqlDialect.DatabaseProduct.HIVE </td> + </tr> + <tr> + <td> h2 </td> + <td> SqlDialect.DatabaseProduct.H2 </td> + </tr> + <tr> + <td> unkown </td> + <td> SqlDialect.DUMMY </td> + </tr> + </tbody> +</table> + + * 属性节点: 定义方言的属性。 @@ -141,9 +211,9 @@ kylin.query.pushdown.runner-class-name=org.apache.kylin.query.pushdown.PushdownR kylin.source.default=16 kylin.source.jdbc.dialect=mysql kylin.source.jdbc.adaptor=org.apache.kylin.sdk.datasource.adaptor.MysqlAdaptor -kylin.source.jdbc.user={mysql username} -kylin.source.jdbc.pass={mysql password} -kylin.source.jdbc.connection-url=jdbc:mysql://{HOST_URL}:3306/{Database name} +kylin.source.jdbc.user={mysql 用户名} +kylin.source.jdbc.pass={mysql 用户密码} +kylin.source.jdbc.connection-url=jdbc:mysql://{主机url}:3306/{数据库名称} kylin.source.jdbc.driver=com.mysql.jdbc.Driver {% endhighlight %} diff --git a/website/_dev/datasource_sdk.md b/website/_dev/datasource_sdk.md index 9d8258d..94fa310 100644 --- a/website/_dev/datasource_sdk.md +++ b/website/_dev/datasource_sdk.md @@ -5,7 +5,7 @@ categories: development permalink: /development/datasource_sdk.html --- -> Available since Apache Kylin v2.6.0 +> Available since Apache Kylin v2.6.0 ## Data source SDK @@ -21,16 +21,85 @@ Developers do not need coding, what they should do is just create a new configur Structure of the configuration: -* Root node: -<DATASOURCE_DEF NAME="kylin" ID="default">, the value of ID should be name of dialect. +* Root node: + +``` +<DATASOURCE_DEF NAME="kylin" ID="mysql" DIALECT="mysql"/> +``` + +The value of ID is normally the same with configuration file. +The value of DIALECT is defined mainly for quote string for database identifier. +For example Mysql use ``, Microsoft sql server use []. +Mapping of Kylin DIALECT and Apache Calcite Dialect as belows: +<table> + <tbody align="left"> + <tr> + <td align="center">Dialect in Kylin</td> + <td align="center">Dialect in Apache Calcite</td> + </tr> + <tr> + <td> default </td> + <td> SqlDialect.CALCITE </td> + </tr> + <tr> + <td> calcite </td> + <td> SqlDialect.CALCITE </td> + </tr> + <tr> + <td> greenplum </td> + <td> SqlDialect.DatabaseProduct.POSTGRESQL </td> + </tr> + <tr> + <td> postgresql </td> + <td> SqlDialect.DatabaseProduct.POSTGRESQL </td> + </tr> + <tr> + <td> mysql </td> + <td> SqlDialect.DatabaseProduct.MYSQL </td> + </tr> + <tr> + <td> sql.keyword-default-uppercase </td> + <td> whether <default> should be transform to uppercase </td> + </tr> + <tr> + <td> mssql </td> + <td> SqlDialect.DatabaseProduct.MSSQL </td> + </tr> + <tr> + <td> oracle </td> + <td> SqlDialect.DatabaseProduct.ORACLE </td> + </tr> + <tr> + <td> vertica </td> + <td> SqlDialect.DatabaseProduct.VERTICA </td> + </tr> + <tr> + <td> redshift </td> + <td> SqlDialect.DatabaseProduct.REDSHIFT </td> + </tr> + <tr> + <td> hive </td> + <td> SqlDialect.DatabaseProduct.HIVE </td> + </tr> + <tr> + <td> h2 </td> + <td> SqlDialect.DatabaseProduct.H2 </td> + </tr> + <tr> + <td> unkown </td> + <td> SqlDialect.DUMMY </td> + </tr> + </tbody> +</table> + * Property node: Define the properties of the dialect. <table> <tbody align="left"> <tr> - <td align="center">属性</td> - <td align="center">描述</td> + <td align="center">Property</td> + <td align="center">Description</td> </tr> <tr> <td> sql.default-converted-enabled </td> @@ -143,9 +212,9 @@ kylin.query.pushdown.runner-class-name=org.apache.kylin.query.pushdown.PushdownR kylin.source.default=16 kylin.source.jdbc.dialect=mysql kylin.source.jdbc.adaptor=org.apache.kylin.sdk.datasource.adaptor.MysqlAdaptor -kylin.source.jdbc.user={mysql username} -kylin.source.jdbc.pass={mysql password} -kylin.source.jdbc.connection-url=jdbc:mysql://{HOST_URL}:3306/{Database name} +kylin.source.jdbc.user={MYSQL_USERNAME} +kylin.source.jdbc.pass={MYSQL_PASSWORD} +kylin.source.jdbc.connection-url=jdbc:mysql://{HOST_URL}:3306/{DATABASE_NAME} kylin.source.jdbc.driver=com.mysql.jdbc.Driver {% endhighlight %}