You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mo...@apache.org on 2016/10/11 07:17:36 UTC

zeppelin git commit: [ZEPPELIN-1489] Remove jdbc-like interpreter example properties and improve JDBC docs

Repository: zeppelin
Updated Branches:
  refs/heads/master 79fd3a024 -> 33677c0c5


[ZEPPELIN-1489] Remove jdbc-like interpreter example properties and improve JDBC docs

### What is this PR for?
Currently we can use `%jdbc(prefix)` for multi database connections(e.g. configuring both postgresql and hive in one JDBC interpreter). But after #1360 merged, Zeppelin doesn't support `%jdbc(prefix)` to `%prefix` anymore. So auto-prefix feature is not working for `%jdbc(prefix)`. The auto-prefix only works for `%prefix` now. Considering this status, it would be better we remove the JDBC connection examples in `jdbc/interpreter-setting.json` (this is come from #1096) so that users can create several JDBC interpreters instead of using multiple connections with one JDBC interpreter.  I removed the related contents in `jdbc.md` as well.

Also, the contents of [current JDBC documentation page](http://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html) is quite confusing and unorganized. So I updated the contents with some screenshot images to guide "How to create JDBC interpreter", "How to edit the interpreter properties for the connection", "How to use `%prefix` with the interpreter", and so on.

### What type of PR is it?
Improvement & Documentation

### What is the Jira issue?
[ZEPPELIN-1489](https://issues.apache.org/jira/browse/ZEPPELIN-1489)

### How should this be tested?
* Removing example properties in `interpreter-setting.json`
  1. after applying this patch and build with `mvn clean package -DskipTests -Pspark-1.6 -pl 'jdbc,zeppelin-interpreter,zeppelin-web,zeppelin-server,zeppelin-zengine,zeppelin-display'`
  2. create JDBC interpreter and check whether the example settings are gone or not

* JDBC docs
  1. Build only `docs/` dir as described in [here](https://github.com/apache/zeppelin/blob/master/docs/README.md#build-documentation)
  2. Go to `interpreter -> JDBC` and just compare this locally builded page with [the original JDBC page](https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html)

### Screenshots (if appropriate)
 - Before
<img width="1579" alt="before" src="https://cloud.githubusercontent.com/assets/10060731/19045323/1ff0c706-89d3-11e6-9b6f-dc75877f81f3.png">

 - After
<img width="944" alt="screen shot 2016-10-04 at 1 05 00 am" src="https://cloud.githubusercontent.com/assets/10060731/19045324/24a9187a-89d3-11e6-90d6-b80acbc6af7c.png">

 - Some parts of updated JDBC docs
Since many contents are changed, it would be better to build `docs/` locally to review all of the change.

<img width="695" alt="screen shot 2016-10-04 at 12 36 39 am" src="https://cloud.githubusercontent.com/assets/10060731/19043794/9d9a32fc-89cc-11e6-9d15-f6036a1b738e.png">

<img width="704" alt="screen shot 2016-10-04 at 12 36 59 am" src="https://cloud.githubusercontent.com/assets/10060731/19043800/a62fc90e-89cc-11e6-976d-5c697729eca4.png">

<img width="677" alt="screen shot 2016-10-04 at 12 37 31 am" src="https://cloud.githubusercontent.com/assets/10060731/19043807/acbc9766-89cc-11e6-8c73-eab1cc18440b.png">

<img width="688" alt="screen shot 2016-10-04 at 12 37 43 am" src="https://cloud.githubusercontent.com/assets/10060731/19043816/b06b5690-89cc-11e6-9298-a20b49fea622.png">

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? yes

Author: AhyoungRyu <ah...@apache.org>

Closes #1480 from AhyoungRyu/ZEPPELIN-1489 and squashes the following commits:

76bf55e [AhyoungRyu] Minor update
d5aaa97 [AhyoungRyu] Remove useless screenshot images
c6f9ed4 [AhyoungRyu] Add screenshot images
99a18e2 [AhyoungRyu] Remove jdbc setting examples in interpreter-setting.json
050ecc0 [AhyoungRyu] Update jdbc.md
20da102 [AhyoungRyu] Redshit -> Redshift in JDBCInterpreter.java


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

Branch: refs/heads/master
Commit: 33677c0c58b7d63797118750682852522bb07ed5
Parents: 79fd3a0
Author: AhyoungRyu <ah...@apache.org>
Authored: Thu Oct 6 17:31:39 2016 +0900
Committer: Lee moon soo <mo...@apache.org>
Committed: Tue Oct 11 16:17:18 2016 +0900

----------------------------------------------------------------------
 .../img/docs-img/click_create_button.png        | Bin 0 -> 110594 bytes
 .../click_interpreter_binding_button.png        | Bin 0 -> 106340 bytes
 .../zeppelin/img/docs-img/edit_dependencies.png | Bin 0 -> 119810 bytes
 .../zeppelin/img/docs-img/edit_properties.png   | Bin 0 -> 171574 bytes
 .../zeppelin/img/docs-img/hive_setting.png      | Bin 0 -> 156414 bytes
 .../docs-img/jdbc-multi-connection-setting.png  | Bin 105980 -> 0 bytes
 .../docs-img/jdbc-simple-connection-setting.png | Bin 81943 -> 0 bytes
 .../img/docs-img/jdbc_interpreter_binding.png   | Bin 0 -> 155521 bytes
 .../zeppelin/img/docs-img/mysql_setting.png     | Bin 0 -> 136801 bytes
 .../img/docs-img/phoenix_thick_setting.png      | Bin 0 -> 171963 bytes
 .../img/docs-img/phoenix_thin_setting.png       | Bin 0 -> 161120 bytes
 .../img/docs-img/run_paragraph_with_jdbc.png    | Bin 0 -> 175253 bytes
 .../img/docs-img/select_name_and_group.png      | Bin 0 -> 130516 bytes
 .../zeppelin/img/docs-img/tajo_setting.png      | Bin 0 -> 142302 bytes
 .../zeppelin/img/docs-img/tested_databases.png  | Bin 0 -> 136053 bytes
 docs/interpreter/jdbc.md                        | 588 ++++++++++---------
 .../apache/zeppelin/jdbc/JDBCInterpreter.java   |   2 +-
 .../src/main/resources/interpreter-setting.json |  90 ---
 18 files changed, 304 insertions(+), 376 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/click_create_button.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/click_create_button.png b/docs/assets/themes/zeppelin/img/docs-img/click_create_button.png
new file mode 100644
index 0000000..d6f3c15
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/click_create_button.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/click_interpreter_binding_button.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/click_interpreter_binding_button.png b/docs/assets/themes/zeppelin/img/docs-img/click_interpreter_binding_button.png
new file mode 100644
index 0000000..1c1a36a
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/click_interpreter_binding_button.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/edit_dependencies.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/edit_dependencies.png b/docs/assets/themes/zeppelin/img/docs-img/edit_dependencies.png
new file mode 100644
index 0000000..30f22db
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/edit_dependencies.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/edit_properties.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/edit_properties.png b/docs/assets/themes/zeppelin/img/docs-img/edit_properties.png
new file mode 100644
index 0000000..e67d49b
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/edit_properties.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/hive_setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/hive_setting.png b/docs/assets/themes/zeppelin/img/docs-img/hive_setting.png
new file mode 100644
index 0000000..31a9821
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/hive_setting.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/jdbc-multi-connection-setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/jdbc-multi-connection-setting.png b/docs/assets/themes/zeppelin/img/docs-img/jdbc-multi-connection-setting.png
deleted file mode 100644
index 4b4d7b5..0000000
Binary files a/docs/assets/themes/zeppelin/img/docs-img/jdbc-multi-connection-setting.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/jdbc-simple-connection-setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/jdbc-simple-connection-setting.png b/docs/assets/themes/zeppelin/img/docs-img/jdbc-simple-connection-setting.png
deleted file mode 100644
index 6134b39..0000000
Binary files a/docs/assets/themes/zeppelin/img/docs-img/jdbc-simple-connection-setting.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/jdbc_interpreter_binding.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/jdbc_interpreter_binding.png b/docs/assets/themes/zeppelin/img/docs-img/jdbc_interpreter_binding.png
new file mode 100644
index 0000000..86a7ce4
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/jdbc_interpreter_binding.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/mysql_setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/mysql_setting.png b/docs/assets/themes/zeppelin/img/docs-img/mysql_setting.png
new file mode 100644
index 0000000..f4e4a65
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/mysql_setting.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/phoenix_thick_setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/phoenix_thick_setting.png b/docs/assets/themes/zeppelin/img/docs-img/phoenix_thick_setting.png
new file mode 100644
index 0000000..57f524e
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/phoenix_thick_setting.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/phoenix_thin_setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/phoenix_thin_setting.png b/docs/assets/themes/zeppelin/img/docs-img/phoenix_thin_setting.png
new file mode 100644
index 0000000..8f93ab6
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/phoenix_thin_setting.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/run_paragraph_with_jdbc.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/run_paragraph_with_jdbc.png b/docs/assets/themes/zeppelin/img/docs-img/run_paragraph_with_jdbc.png
new file mode 100644
index 0000000..41638da
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/run_paragraph_with_jdbc.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/select_name_and_group.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/select_name_and_group.png b/docs/assets/themes/zeppelin/img/docs-img/select_name_and_group.png
new file mode 100644
index 0000000..9c963b8
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/select_name_and_group.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/tajo_setting.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/tajo_setting.png b/docs/assets/themes/zeppelin/img/docs-img/tajo_setting.png
new file mode 100644
index 0000000..1e56d64
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/tajo_setting.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/assets/themes/zeppelin/img/docs-img/tested_databases.png
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/img/docs-img/tested_databases.png b/docs/assets/themes/zeppelin/img/docs-img/tested_databases.png
new file mode 100644
index 0000000..fb6ace2
Binary files /dev/null and b/docs/assets/themes/zeppelin/img/docs-img/tested_databases.png differ

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/docs/interpreter/jdbc.md
----------------------------------------------------------------------
diff --git a/docs/interpreter/jdbc.md b/docs/interpreter/jdbc.md
index d3104cb..2523094 100644
--- a/docs/interpreter/jdbc.md
+++ b/docs/interpreter/jdbc.md
@@ -25,102 +25,136 @@ limitations under the License.
 
 ## Overview
 
-This interpreter lets you create a JDBC connection to any data source, by now it has been tested with:
+JDBC interpreter lets you create a JDBC connection to any data sources seamlessly. By now, it has been tested with:
 
-* Postgres
-* MySql
-* MariaDB
-* Redshift
-* Apache Hive
-* Apache Phoenix
-* Apache Drill (Details on using [Drill JDBC Driver](https://drill.apache.org/docs/using-the-jdbc-driver))
-* Apache Tajo
+<div class="row" style="margin: 30px auto;">
+  <div class="col-md-6">
+    <img src="../assets/themes/zeppelin/img/docs-img/tested_databases.png" width="300px"/>
+  </div>
+  <div class="col-md-6">
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="http://www.postgresql.org/" target="_blank">Postgresql</a> -
+      <a href="https://jdbc.postgresql.org/" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://www.mysql.com/" target="_blank">Mysql</a> -
+      <a href="https://dev.mysql.com/downloads/connector/j/" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://mariadb.org/" target="_blank">MariaDB</a> -
+      <a href="https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://aws.amazon.com/documentation/redshift/" target="_blank">Redshift</a> -
+      <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://hive.apache.org/" target="_blank">Apache Hive</a> - 
+      <a href="https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-JDBC" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://phoenix.apache.org/" target="_blank">Apache Phoenix</a> itself is a JDBC driver
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="https://drill.apache.org/" target="_blank">Apache Drill</a> - 
+      <a href="https://drill.apache.org/docs/using-the-jdbc-driver" target="_blank">JDBC Driver</a>
+    </li>
+    <li style="padding-bottom: 5px; list-style: circle">
+      <a href="http://tajo.apache.org/" target="_blank">Apache Tajo</a> - 
+      <a href="https://tajo.apache.org/docs/current/jdbc_driver.html" target="_blank">JDBC Driver</a>
+    </li>
+  </div>
+</div>
+
+If you are using other databases not in the above list, please feel free to share your use case. It would be helpful to improve the functionality of JDBC interpreter.
+
+## Create a new JDBC Interpreter
+
+First, click `+ Create` button at the top-right corner in the interpreter setting page.
 
-If someone else used another database please report how it works to improve functionality.
+<img src="../assets/themes/zeppelin/img/docs-img/click_create_button.png" width="600px"/>
 
-## Create Interpreter
+Fill `Interpreter name` field with whatever you want to use as the alias(e.g. mysql, mysql2, hive, redshift, and etc..). Please note that this alias will be used as `%interpreter_name` to call the interpreter in the paragraph. 
+Then select `jdbc` as an `Interpreter group`. 
 
-When you create a interpreter by default use PostgreSQL with the next properties:
+<img src="../assets/themes/zeppelin/img/docs-img/select_name_and_group.png" width="200px"/>
+
+The default driver of JDBC interpreter is set as `PostgreSQL`. It means Zeppelin includes `PostgreSQL` driver jar in itself.
+So you don't need to add any dependencies(e.g. the artifact name or path for `PostgreSQL` driver jar) for `PostgreSQL` connection.
+The JDBC interpreter properties are defined by default like below.
 
 <table class="table-configuration">
   <tr>
-    <th>name</th>
-    <th>value</th>
+    <th>Name</th>
+    <th>Default Value</th>
+    <th>Description</th>
   </tr>
   <tr>
     <td>common.max_count</td>
     <td>1000</td>
+    <td>The maximun number of SQL result to display</td>
   </tr>
   <tr>
     <td>default.driver</td>
     <td>org.postgresql.Driver</td>
+    <td>JDBC Driver Name</td>
   </tr>
   <tr>
     <td>default.password</td>
-    <td>********</td>
+    <td></td>
+    <td>The JDBC user password</td>
   </tr>
   <tr>
     <td>default.url</td>
     <td>jdbc:postgresql://localhost:5432/</td>
+    <td>The URL for JDBC</td>
   </tr>
   <tr>
     <td>default.user</td>
     <td>gpadmin</td>
-  </tr>      
+    <td>The JDBC user name</td>
+  </tr>
 </table>
 
-It is not necessary to add driver jar to the classpath for PostgreSQL as it is included in Zeppelin.
+If you want to connect other databases such as `Mysql`, `Redshift` and `Hive`, you need to edit the property values. 
+The below example is for `Mysql` connection.
 
-### Simple connection
+<img src="../assets/themes/zeppelin/img/docs-img/edit_properties.png" width="600px" />
 
-Prior to creating the interpreter it is necessary to add maven coordinate or path of the JDBC driver to the Zeppelin classpath. To do this you must edit dependencies artifact(ex. `mysql:mysql-connector-java:5.1.38`) in interpreter menu as shown:
+The last step is **Dependency Setting**. Since Zeppelin only includes `PostgreSQL` driver jar by default, you need to add each driver's maven coordinates or JDBC driver's jar file path for the other databases.
 
-<div class="row">
-  <div class="col-md-11">
-    <img src="../assets/themes/zeppelin/img/docs-img/jdbc-simple-connection-setting.png" />
-  </div>
-</div>
+<img src="../assets/themes/zeppelin/img/docs-img/edit_dependencies.png" width="600px" />
+
+That's it. You can find more JDBC connection setting examples([Mysql](#mysql), [Apache Hive](#apache-hive), [Apache Phoenix](#apache-phoenix), and [Apache Tajo](#apache-tajo)) in [this section](#examples).
 
-To create the interpreter you need to specify connection parameters as shown in the table.
+## More properties
+There are more JDBC interpreter properties you can specify like below.
 
 <table class="table-configuration">
   <tr>
-    <th>name</th>
-    <th>value</th>
+    <th>Property Name</th>
+    <th>Description</th>
   </tr>
   <tr>
-    <td>common.max_count</td>
-    <td>1000</td>
+    <td>common.max_result</td>
+    <td>Max number of SQL result to display to prevent the browser overload. This is  common properties for all connections</td>
   </tr>
   <tr>
-    <td>default.driver</td>
-    <td>driver name</td>
+    <td>zeppelin.jdbc.auth.type</td>
+    <td>Types of authentications' methods supported are <code>SIMPLE</code>, and <code>KERBEROS</code></td>
   </tr>
   <tr>
-    <td>default.password</td>
-    <td>********</td>
+    <td>zeppelin.jdbc.principal</td>
+    <td>The principal name to load from the keytab</td>
   </tr>
   <tr>
-    <td>default.url</td>
-    <td>jdbc url</td>
+    <td>zeppelin.jdbc.keytab.location</td>
+    <td>The path to the keytab file</td>
   </tr>
-  <tr>
-    <td>default.user</td>
-    <td>user name</td>
-  </tr>      
 </table>
 
-### Multiple connections
-
-JDBC interpreter also allows connections to multiple data sources. It is necessary to set a prefix for each connection to reference it in the paragraph in the form of `%jdbc(prefix)`. Before you create the interpreter it is necessary to add each driver's maven coordinates or JDBC driver's jar file path to the Zeppelin classpath. To do this you must edit the dependencies of JDBC interpreter in interpreter menu as following:
-
-<div class="row">
-  <div class="col-md-11">
-    <img src="../assets/themes/zeppelin/img/docs-img/jdbc-multi-connection-setting.png" />
-  </div>
-</div>
-
-You can add all the jars you need to make multiple connections into the same JDBC interpreter. To create the interpreter you must specify the parameters. For example we will create two connections to MySQL and Redshift, the respective prefixes are `default` and `redshift`:
+You can also add more properties by using this [method](http://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html#getConnection%28java.lang.String,%20java.util.Properties%29).
+For example, if a connection needs a schema parameter, it would have to add the property as follows:
 
 <table class="table-configuration">
   <tr>
@@ -128,16 +162,62 @@ You can add all the jars you need to make multiple connections into the same JDB
     <th>value</th>
   </tr>
   <tr>
-    <td>common.max_count</td>
-    <td>1000</td>
+    <td>default.schema</td>
+    <td>schema_name</td>
   </tr>
+</table>
+
+## Binding JDBC interpter to notebook
+To bind the interpreters created in the interpreter setting page, click the gear icon at the top-right corner.
+
+<img src="../assets/themes/zeppelin/img/docs-img/click_interpreter_binding_button.png" width="600px" />
+
+Select(blue) or deselect(white) the interpreter buttons depending on your use cases. 
+If you need to use more than one interpreter in the notebook, activate several buttons.
+Don't forget to click `Save` button, or you will face `Interpreter *** is not found` error.
+
+<img src="../assets/themes/zeppelin/img/docs-img/jdbc_interpreter_binding.png" width="550px" />
+
+## How to use
+### Run the paragraph with JDBC interpreter
+To test whether your databases and Zeppelin are successfully connected or not, type `%jdbc_interpreter_name`(e.g. `%mysql`) at the top of the paragraph and run `show databases`.
+
+```sql
+%jdbc_interpreter_name
+show databases
+```
+If the paragraph is `FINISHED` without any errors, a new paragraph will be automatically added after the previous one with `%jdbc_interpreter_name`.
+So you don't need to type this prefix in every paragraphs' header.
+
+<img src="../assets/themes/zeppelin/img/docs-img/run_paragraph_with_jdbc.png" width="600px" />
+
+### Apply Zeppelin Dynamic Forms
+
+You can leverage [Zeppelin Dynamic Form](../manual/dynamicform.html) inside your queries. You can use both the `text input` and `select form` parametrization features.
+
+```sql
+%jdbc_interpreter_name
+SELECT name, country, performer
+FROM demo.performers
+WHERE name='{{"{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia"}}}}'
+```
+
+## Examples
+Here are some examples you can refer to. Including the below connectors, you can connect every databases as long as it can be configured with it's JDBC driver.
+
+### Mysql
+
+<img src="../assets/themes/zeppelin/img/docs-img/mysql_setting.png" width="600px" />
+
+##### Properties
+<table class="table-configuration">
   <tr>
-    <td>default.driver</td>
-    <td>com.mysql.jdbc.Driver</td>
+    <th>Name</th>
+    <th>Value</th>
   </tr>
   <tr>
-    <td>default.password</td>
-    <td>********</td>
+    <td>default.driver</td>
+    <td>com.mysql.jdbc.Driver</td>
   </tr>
   <tr>
     <td>default.url</td>
@@ -145,262 +225,200 @@ You can add all the jars you need to make multiple connections into the same JDB
   </tr>
   <tr>
     <td>default.user</td>
-    <td>mysql-user</td>
+    <td>mysql_user</td>
   </tr>
   <tr>
-    <td>redshift.driver</td>
-    <td>com.amazon.redshift.jdbc4.Driver</td>
+    <td>default.password</td>
+    <td>mysql_password</td>
   </tr>
+</table>
+
+##### Dependencies
+<table class="table-configuration">
   <tr>
-    <td>redshift.password</td>
-    <td>********</td>
+    <th>Artifact</th>
+    <th>Excludes</th>
   </tr>
   <tr>
-    <td>redshift.url</td>
-    <td>jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439</td>
+    <td>mysql:mysql-connector-java:5.1.38</td>
+    <td></td>
   </tr>
-  <tr>
-    <td>redshift.user</td>
-    <td>redshift-user</td>
-  </tr>      
 </table>
 
+### Apache Hive 
 
-## Bind to Notebook
-In the `Notebook` click on the `settings` icon at the top-right corner. Use select/deselect to specify the interpreters to be used in the `Notebook`.
-
-## More Properties
-You can modify the interpreter configuration in the `Interpreter` section. The most common properties are as follows, but you can specify other properties that need to be connected.
-
- <table class="table-configuration">
-   <tr>
-     <th>Property Name</th>
-     <th>Description</th>
-   </tr>
-   <tr>
-     <td>{prefix}.url</td>
-     <td>JDBC URL to connect, the URL must include the name of the database </td>
-   </tr>
-   <tr>
-     <td>{prefix}.user</td>
-     <td>JDBC user name</td>
-   </tr>
-   <tr>
-     <td>{prefix}.password</td>
-     <td>JDBC password</td>
-   </tr>
-   <tr>
-     <td>{prefix}.driver</td>
-     <td>JDBC driver name.</td>
-   </tr>
-   <tr>
-     <td>common.max_result</td>
-     <td>Max number of SQL result to display to prevent the browser overload. This is  common properties for all connections</td>
-   </tr>
-   <tr>
-     <td>zeppelin.jdbc.auth.type</td>
-     <td>Types of authentications' methods supported are SIMPLE, and KERBEROS</td>
-   </tr>
-   <tr>
-     <td>zeppelin.jdbc.principal</td>
-     <td>The principal name to load from the keytab</td>
-   </tr>
-   <tr>
-     <td>zeppelin.jdbc.keytab.location</td>
-     <td>The path to the keytab file</td>
-   </tr>
- </table>
-
-To develop this functionality use this [method](http://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html#getConnection%28java.lang.String,%20java.util.Properties%29). For example if a connection needs a schema parameter, it would have to add the property as follows:
+<img src="../assets/themes/zeppelin/img/docs-img/hive_setting.png" width="600px" />
 
+##### Properties
 <table class="table-configuration">
   <tr>
-    <th>name</th>
-    <th>value</th>
+    <th>Name</th>
+    <th>Value</th>
   </tr>
   <tr>
-    <td>{prefix}.schema</td>
-    <td>schema_name</td>
+    <td>default.driver</td>
+    <td>org.apache.hive.jdbc.HiveDriver</td>
+  </tr>
+  <tr>
+    <td>default.url</td>
+    <td>jdbc:hive2://localhost:10000</td>
+  </tr>
+  <tr>
+    <td>default.user</td>
+    <td>hive_user</td>
+  </tr>
+  <tr>
+    <td>default.password</td>
+    <td>hive_password</td>
   </tr>
 </table>
 
-## Examples
+##### Dependencies
+<table class="table-configuration">
+  <tr>
+    <th>Artifact</th>
+    <th>Excludes</th>
+  </tr>
+  <tr>
+    <td>org.apache.hive:hive-jdbc:0.14.0</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>org.apache.hadoop:hadoop-common:2.6.0</td>
+    <td></td>
+  </tr>
+</table>
 
-### Hive
-
-#### Properties
- <table class="table-configuration">
-   <tr>
-     <th>Name</th>
-     <th>Value</th>
-   </tr>
-   <tr>
-     <td>hive.driver</td>
-     <td>org.apache.hive.jdbc.HiveDriver</td>
-   </tr>
-   <tr>
-     <td>hive.url</td>
-     <td>jdbc:hive2://localhost:10000</td>
-   </tr>
-   <tr>
-     <td>hive.user</td>
-     <td>hive_user</td>
-   </tr>
-   <tr>
-     <td>hive.password</td>
-     <td>hive_password</td>
-   </tr>
- </table>
-
-#### Dependencies
- <table class="table-configuration">
-   <tr>
-     <th>Artifact</th>
-     <th>Excludes</th>
-   </tr>
-   <tr>
-     <td>org.apache.hive:hive-jdbc:0.14.0</td>
-     <td></td>
-   </tr>
-   <tr>
-     <td>org.apache.hadoop:hadoop-common:2.6.0</td>
-     <td></td>
-   </tr>
- </table>
-
-### Phoenix
-
- Phoenix supports `thick` and `thin` connection types:
-
- - Thick client is faster, but must connect directly to ZooKeeper and HBase RegionServers.
- - Thin client has fewer dependencies and connects through a [Phoenix Query Server](http://phoenix.apache.org/server.html) instance.
-
-Use the appropriate `phoenix.driver` and `phoenix.url` for your connection type.
-
-#### Properties:
- <table class="table-configuration">
-   <tr>
-     <th>Name</th>
-     <th>Value</th>
-     <th>Description</th>
-   </tr>
-   <tr>
-     <td>phoenix.driver</td>
-     <td>org.apache.phoenix.jdbc.PhoenixDriver</td>
-     <td>'Thick Client', connects directly to Phoenix</td>
-   </tr>
-   <tr>
-     <td>phoenix.driver</td>
-     <td>org.apache.phoenix.queryserver.client.Driver</td>
-     <td>'Thin Client', connects via Phoenix Query Server</td>
-   </tr>
-   <tr>
-     <td>phoenix.url</td>
-     <td>jdbc:phoenix:localhost:2181:/hbase-unsecure</td>
-     <td>'Thick Client', connects directly to Phoenix</td>
-   </tr>
-   <tr>
-     <td>phoenix.url</td>
-     <td>jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF</td>
-     <td>'Thin Client', connects via Phoenix Query Server</td>
-   </tr>
-   <tr>
-     <td>phoenix.user</td>
-     <td>phoenix_user</td>
-     <td></td>
-   </tr>
-   <tr>
-     <td>phoenix.password</td>
-     <td>phoenix_password</td>
-     <td></td>
-   </tr>
- </table>
-#### Dependencies:
- 
- Include the dependency for your connection type (it should be only *one* of the following).
- 
- <table class="table-configuration">
-   <tr>
-     <th>Artifact</th>
-     <th>Excludes</th>
-     <th>Description</th>
-   </tr>
-   <tr>
-     <td>org.apache.phoenix:phoenix-core:4.4.0-HBase-1.0</td>
-     <td></td>
-     <td>'Thick Client', connects directly to Phoenix</td>
-   </tr>
-   <tr>
-     <td>org.apache.phoenix:phoenix-server-client:4.7.0-HBase-1.1</td>
-     <td></td>
-     <td>'Thin Client' for Phoenix 4.7, connects via Phoenix Query Server</td>
-   </tr>
-   <tr>
-     <td>org.apache.phoenix:phoenix-queryserver-client:4.8.0-HBase-1.2</td>
-     <td></td>
-     <td>'Thin Client' for Phoenix 4.8+, connects via Phoenix Query Server</td>
-   </tr>
- </table>
-
-### Tajo
-#### Properties
- <table class="table-configuration">
-   <tr>
-     <th>Name</th>
-     <th>Value</th>
-   </tr>
-   <tr>
-     <td>tajo.driver</td>
-     <td>org.apache.tajo.jdbc.TajoDriver</td>
-   </tr>
-   <tr>
-     <td>tajo.url</td>
-     <td>jdbc:tajo://localhost:26002/default</td>
-   </tr>
- </table>
-
-#### Dependencies
- <table class="table-configuration">
-   <tr>
-     <th>Artifact</th>
-     <th>Excludes</th>
-   </tr>
-   <tr>
-     <td>org.apache.tajo:tajo-jdbc:0.11.0</td>
-     <td></td>
-   </tr>
- </table>
- 
-## How to use
+### Apache Phoenix
 
-### Reference in paragraph
+Phoenix supports `thick` and `thin` connection types:
 
-Start the paragraphs with the `%jdbc`, this will use the `default` prefix for connection. If you want to use other connection you should specify the prefix of it as follows `%jdbc(prefix)`:
+  - [Thick client](#thick-client-connection) is faster, but must connect directly to ZooKeeper and HBase RegionServers.
+  - [Thin client](#thin-client-connection) has fewer dependencies and connects through a [Phoenix Query Server](http://phoenix.apache.org/server.html) instance.
 
-```sql
-%jdbc
-SELECT * FROM db_name;
+Use the appropriate `default.driver`, `default.url`, and the dependency artifact for your connection type.
 
-```
+#### Thick client connection
 
-or
+<img src="../assets/themes/zeppelin/img/docs-img/phoenix_thick_setting.png" width="600px" />
 
-```sql
-%jdbc(prefix)
-SELECT * FROM db_name;
+##### Properties
+<table class="table-configuration">
+  <tr>
+    <th>Name</th>
+    <th>Value</th>
+  </tr>
+  <tr>
+    <td>default.driver</td>
+    <td>org.apache.phoenix.jdbc.PhoenixDriver</td>
+  </tr>
+  <tr>
+    <td>default.url</td>
+    <td>jdbc:phoenix:localhost:2181:/hbase-unsecure</td>
+  </tr>
+  <tr>
+    <td>default.user</td>
+    <td>phoenix_user</td>
+  </tr>
+  <tr>
+    <td>default.password</td>
+    <td>phoenix_password</td>
+  </tr>
+</table>
 
-```
+##### Dependencies
+<table class="table-configuration">
+  <tr>
+    <th>Artifact</th>
+    <th>Excludes</th>
+  </tr>
+  <tr>
+    <td>org.apache.phoenix:phoenix-core:4.4.0-HBase-1.0</td>
+    <td></td>
+  </tr>
+</table>
 
-### Apply Zeppelin Dynamic Forms
+#### Thin client connection
 
-You can leverage [Zeppelin Dynamic Form](../manual/dynamicform.html) inside your queries. You can use both the `text input` and `select form` parametrization features
+<img src="../assets/themes/zeppelin/img/docs-img/phoenix_thin_setting.png" width="600px" />
 
-```sql
-%jdbc(prefix)
-SELECT name, country, performer
-FROM demo.performers
-WHERE name='{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}}'
-```
+##### Properties
+<table class="table-configuration">
+  <tr>
+    <th>Name</th>
+    <th>Value</th>
+  </tr>
+  <tr>
+    <td>default.driver</td>
+    <td>org.apache.phoenix.queryserver.client.Driver</td>
+  </tr>
+  <tr>
+    <td>default.url</td>
+    <td>jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF</td>
+  </tr>
+  <tr>
+    <td>default.user</td>
+    <td>phoenix_user</td>
+  </tr>
+  <tr>
+    <td>default.password</td>
+    <td>phoenix_password</td>
+  </tr>
+</table>
+
+##### Dependencies
+ 
+Before Adding one of the below dependencies, check the Phoenix version first.
+ 
+<table class="table-configuration">
+  <tr>
+    <th>Artifact</th>
+    <th>Excludes</th>
+    <th>Description</th>
+  </tr>
+  <tr>
+    <td>org.apache.phoenix:phoenix-server-client:4.7.0-HBase-1.1</td>
+    <td></td>
+    <td>For Phoenix <code>4.7</code></td>
+  </tr>
+  <tr>
+    <td>org.apache.phoenix:phoenix-queryserver-client:4.8.0-HBase-1.2</td>
+    <td></td>
+    <td>For Phoenix <code>4.8+</code></td>
+  </tr>
+</table>
+
+### Apache Tajo
+
+<img src="../assets/themes/zeppelin/img/docs-img/tajo_setting.png" width="600px" />
+
+##### Properties
+<table class="table-configuration">
+  <tr>
+    <th>Name</th>
+    <th>Value</th>
+  </tr>
+  <tr>
+    <td>default.driver</td>
+    <td>org.apache.tajo.jdbc.TajoDriver</td>
+  </tr>
+  <tr>
+    <td>default.url</td>
+    <td>jdbc:tajo://localhost:26002/default</td>
+  </tr>
+</table>
+
+##### Dependencies
+<table class="table-configuration">
+  <tr>
+    <th>Artifact</th>
+    <th>Excludes</th>
+  </tr>
+  <tr>
+    <td>org.apache.tajo:tajo-jdbc:0.11.0</td>
+    <td></td>
+  </tr>
+</table>
 
-## Bugs & Reporting
-If you find a bug for this interpreter, please create a [JIRA]( https://issues.apache.org/jira/browse/ZEPPELIN-382?jql=project%20%3D%20ZEPPELIN) ticket.
+## Bug reporting
+If you find a bug using JDBC interpreter, please create a [JIRA](https://issues.apache.org/jira/browse/ZEPPELIN) ticket.

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/jdbc/src/main/java/org/apache/zeppelin/jdbc/JDBCInterpreter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/zeppelin/jdbc/JDBCInterpreter.java b/jdbc/src/main/java/org/apache/zeppelin/jdbc/JDBCInterpreter.java
index 5f784d7..0fbbda3 100644
--- a/jdbc/src/main/java/org/apache/zeppelin/jdbc/JDBCInterpreter.java
+++ b/jdbc/src/main/java/org/apache/zeppelin/jdbc/JDBCInterpreter.java
@@ -49,7 +49,7 @@ import com.google.common.collect.Sets.SetView;
 
 /**
  * JDBC interpreter for Zeppelin. This interpreter can also be used for accessing HAWQ,
- * GreenplumDB, MariaDB, MySQL, Postgres and Redshit.
+ * GreenplumDB, MariaDB, MySQL, Postgres and Redshift.
  *
  * <ul>
  * <li>{@code default.url} - JDBC URL to connect to.</li>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/33677c0c/jdbc/src/main/resources/interpreter-setting.json
----------------------------------------------------------------------
diff --git a/jdbc/src/main/resources/interpreter-setting.json b/jdbc/src/main/resources/interpreter-setting.json
index abdb719..6809915 100644
--- a/jdbc/src/main/resources/interpreter-setting.json
+++ b/jdbc/src/main/resources/interpreter-setting.json
@@ -63,96 +63,6 @@
         "propertyName": "zeppelin.jdbc.principal",
         "defaultValue": "",
         "description": "Kerberos principal"
-      },
-      "hive.url": {
-        "envName": null,
-        "propertyName": "hive.url",
-        "defaultValue": "jdbc:hive2://localhost:10000",
-        "description": ""
-      },
-      "hive.user": {
-        "envName": null,
-        "propertyName": "hive.user",
-        "defaultValue": "hive",
-        "description": ""
-      },
-      "hive.password": {
-        "envName": null,
-        "propertyName": "hive.password",
-        "defaultValue": "",
-        "description": ""
-      },
-      "hive.driver": {
-        "envName": null,
-        "propertyName": "hive.driver",
-        "defaultValue": "org.apache.hive.jdbc.HiveDriver",
-        "description": ""
-      },
-      "phoenix.url": {
-        "envName": null,
-        "propertyName": "phoenix.url",
-        "defaultValue": "jdbc:phoenix:localhost:2181:/hbase-unsecure",
-        "description": ""
-      },
-      "phoenix.user": {
-        "envName": null,
-        "propertyName": "phoenix.user",
-        "defaultValue": "phoenixuser",
-        "description": ""
-      },
-      "phoenix.password": {
-        "envName": null,
-        "propertyName": "phoenix.password",
-        "defaultValue": "",
-        "description": ""
-      },
-      "phoenix.driver": {
-        "envName": null,
-        "propertyName": "phoenix.driver",
-        "defaultValue": "org.apache.phoenix.jdbc.PhoenixDriver",
-        "description": ""
-      },
-      "phoenix.hbase.client.retries.number": {
-        "envName": null,
-        "propertyName": "phoenix.hbase.client.retries.number",
-        "defaultValue": "1",
-        "description": "Maximum retries.  Used as maximum for all retryable operations such as the getting of a cell's value, starting a row update, etc."
-      },
-      "tajo.url": {
-        "envName": null,
-        "propertyName": "tajo.url",
-        "defaultValue": "jdbc:tajo://localhost:26002/default",
-        "description": ""
-      },
-      "tajo.driver": {
-        "envName": null,
-        "propertyName": "tajo.driver",
-        "defaultValue": "org.apache.tajo.jdbc.TajoDriver",
-        "description": ""
-      },
-      "psql.url": {
-        "envName": null,
-        "propertyName": "psql.url",
-        "defaultValue": "jdbc:postgresql://localhost:5432/",
-        "description": ""
-      },
-      "psql.user": {
-        "envName": null,
-        "propertyName": "psql.user",
-        "defaultValue": "phoenixuser",
-        "description": ""
-      },
-      "psql.password": {
-        "envName": null,
-        "propertyName": "psql.password",
-        "defaultValue": "",
-        "description": ""
-      },
-      "psql.driver": {
-        "envName": null,
-        "propertyName": "psql.driver",
-        "defaultValue": "org.postgresql.Driver",
-        "description": ""
       }
     },
     "editor": {