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/11/29 21:52:37 UTC
svn commit: r1771962 - in /zeppelin/site/docs/0.7.0-SNAPSHOT: atom.xml
displaysystem/front-end-angular.html interpreter/jdbc.html rss.xml
search_data.json
Author: moon
Date: Tue Nov 29 21:52:36 2016
New Revision: 1771962
URL: http://svn.apache.org/viewvc?rev=1771962&view=rev
Log:
ZEPPELIN-1665
Modified:
zeppelin/site/docs/0.7.0-SNAPSHOT/atom.xml
zeppelin/site/docs/0.7.0-SNAPSHOT/displaysystem/front-end-angular.html
zeppelin/site/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html
zeppelin/site/docs/0.7.0-SNAPSHOT/rss.xml
zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/atom.xml
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/atom.xml?rev=1771962&r1=1771961&r2=1771962&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/atom.xml (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/atom.xml Tue Nov 29 21:52:36 2016
@@ -4,7 +4,7 @@
<title>Apache Zeppelin</title>
<link href="http://zeppelin.apache.org/" rel="self"/>
<link href="http://zeppelin.apache.org"/>
- <updated>2016-11-24T10:25:03-08:00</updated>
+ <updated>2016-11-29T13:51:39-08:00</updated>
<id>http://zeppelin.apache.org</id>
<author>
<name>The Apache Software Foundation</name>
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/displaysystem/front-end-angular.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/displaysystem/front-end-angular.html?rev=1771962&r1=1771961&r2=1771962&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/displaysystem/front-end-angular.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/displaysystem/front-end-angular.html Tue Nov 29 21:52:36 2016
@@ -316,7 +316,17 @@ Bind a value to an angular object and a
<td>Executing Paragraph</td>
<td>z.runParagraph(paragraphId)</td>
<td>z.run(paragraphId)</td>
- </tr>
+ </tr>
+ <tr>
+ <td>Executing Paragraph (Specific paragraphs in other notes) (</td>
+ <td></td>
+ <td>z.run(noteid, paragraphId)</td>
+ </tr>
+ <tr>
+ <td>Executing note</td>
+ <td></td>
+ <td>z.runNote(noteId)</td>
+ </tr>
<tbody>
<tbody>
</table>
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html?rev=1771962&r1=1771961&r2=1771962&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html Tue Nov 29 21:52:36 2016
@@ -210,7 +210,11 @@ limitations under the License.
<h2>Overview</h2>
-<p>JDBC interpreter lets you create a JDBC connection to any data sources seamlessly. By now, it has been tested with:</p>
+<p>JDBC interpreter lets you create a JDBC connection to any data sources seamlessly.</p>
+
+<p>Inserts, Updates, and Upserts are applied immediately after running each statement.</p>
+
+<p>By now, it has been tested with:</p>
<div class="row" style="margin: 30px auto;">
<div class="col-md-6">
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/rss.xml
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/rss.xml?rev=1771962&r1=1771961&r2=1771962&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/rss.xml (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/rss.xml Tue Nov 29 21:52:36 2016
@@ -5,8 +5,8 @@
<description>Apache Zeppelin - The Apache Software Foundation</description>
<link>http://zeppelin.apache.org</link>
<link>http://zeppelin.apache.org</link>
- <lastBuildDate>2016-11-24T10:25:03-08:00</lastBuildDate>
- <pubDate>2016-11-24T10:25:03-08:00</pubDate>
+ <lastBuildDate>2016-11-29T13:51:39-08:00</lastBuildDate>
+ <pubDate>2016-11-29T13:51:39-08:00</pubDate>
<ttl>1800</ttl>
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json?rev=1771962&r1=1771961&r2=1771962&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json Tue Nov 29 21:52:36 2016
@@ -71,7 +71,7 @@
"/displaysystem/front-end-angular.html": {
"title": "Front-end Angular API in Apache Zeppelin",
- "content" : "<!--Licensed 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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Front-end Angular API in Apache ZeppelinBasic UsageIn addition to the back-end API to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS z object on the front-end side to expose the same capabilities.This z object is accessible in the Angular isolated scope for each paragraph.Bind / Unbind VariablesThrough the z, you can bind / unbind variables to AngularJS view.Bind a value to an angular object and a m
andatory target paragraph:%angular&lt;form class=&quot;form-inline&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; &lt;label for=&quot;superheroId&quot;&gt;Super Hero: &lt;/label&gt; &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;superheroId&quot; placeholder=&quot;Superhero name ...&quot; ng-model=&quot;superhero&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot; ng-click=&quot;z.angularBind(&#39;superhero&#39;,superhero,&#39;20160222-232336_1472609686&#39;)&quot;&gt; Bind&lt;/button&gt;&lt;/form&gt;Unbind/remove a value from angular object and a mandatory target paragraph:%angular&lt;form class=&quot;form-inline&quot;&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-p
rimary&quot; ng-click=&quot;z.angularUnbind(&#39;superhero&#39;,&#39;20160222-232336_1472609686&#39;)&quot;&gt; UnBind&lt;/button&gt;&lt;/form&gt;The signature for the z.angularBind() / z.angularUnbind() functions are:// Bindz.angularBind(angularObjectName, angularObjectValue, paragraphId);// Unbindz.angularUnbind(angularObjectName, angularObjectValue, paragraphId);All the parameters are mandatory.Run ParagraphYou can also trigger paragraph execution by calling z.runParagraph() function passing the appropriate paragraphId: %angular&lt;form class=&quot;form-inline&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; &lt;label for=&quot;paragraphId&quot;&gt;Paragraph Id: &lt;/label&gt; &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;paragraphId&quot; placeholder=&quot;Paragraph Id ...&quot; ng-model=&quot;paragraph
&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot; ng-click=&quot;z.runParagraph(paragraph)&quot;&gt; Run Paragraph&lt;/button&gt;&lt;/form&gt;Overriding dynamic form with Angular ObjectThe front-end Angular Interaction API has been designed to offer richer form capabilities and variable binding. With the existing Dynamic Form system you can already create input text, select and checkbox forms but the choice is rather limited and the look &amp; feel cannot be changed.The idea is to create a custom form using plain HTML/AngularJS code and bind actions on this form to push/remove Angular variables to targeted paragraphs using this new API. Consequently if you use the Dynamic Form syntax in a paragraph and there is a bound Angular object having the same name as the ${formName}, the Angular object will have higher priority and the Dynamic Form will not be
displayed. Example: Feature matrix comparisonHow does the front-end AngularJS API compares to the back-end API ? Below is a comparison matrix for both APIs: Actions Front-end API Back-end API Initiate binding z.angularbind(var, initialValue, paragraphId) z.angularBind(var, initialValue) Update value same to ordinary angularjs scope variable, or z.angularbind(var, newValue, paragraphId) z.angularBind(var, newValue) Watching value same to ordinary angularjs scope variable z.angularWatch(var, (oldVal, newVal) => ...) Destroy binding z.angularUnbind(var, paragraphId) z.angularUnbind(var) Executing Paragraph z.runParagraph(paragraphId) z.run(paragraphId)
Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end.There is also a slight difference in term of scope. Front-end API limits the Angular object binding to a paragraph scope whereas back-end API allows you to bind an Angular object at the global or note scope. This restriction has been designed purposely to avoid Angular object leaks and scope pollution.",
+ "content" : "<!--Licensed 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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Front-end Angular API in Apache ZeppelinBasic UsageIn addition to the back-end API to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS z object on the front-end side to expose the same capabilities.This z object is accessible in the Angular isolated scope for each paragraph.Bind / Unbind VariablesThrough the z, you can bind / unbind variables to AngularJS view.Bind a value to an angular object and a m
andatory target paragraph:%angular&lt;form class=&quot;form-inline&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; &lt;label for=&quot;superheroId&quot;&gt;Super Hero: &lt;/label&gt; &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;superheroId&quot; placeholder=&quot;Superhero name ...&quot; ng-model=&quot;superhero&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot; ng-click=&quot;z.angularBind(&#39;superhero&#39;,superhero,&#39;20160222-232336_1472609686&#39;)&quot;&gt; Bind&lt;/button&gt;&lt;/form&gt;Unbind/remove a value from angular object and a mandatory target paragraph:%angular&lt;form class=&quot;form-inline&quot;&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-p
rimary&quot; ng-click=&quot;z.angularUnbind(&#39;superhero&#39;,&#39;20160222-232336_1472609686&#39;)&quot;&gt; UnBind&lt;/button&gt;&lt;/form&gt;The signature for the z.angularBind() / z.angularUnbind() functions are:// Bindz.angularBind(angularObjectName, angularObjectValue, paragraphId);// Unbindz.angularUnbind(angularObjectName, angularObjectValue, paragraphId);All the parameters are mandatory.Run ParagraphYou can also trigger paragraph execution by calling z.runParagraph() function passing the appropriate paragraphId: %angular&lt;form class=&quot;form-inline&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; &lt;label for=&quot;paragraphId&quot;&gt;Paragraph Id: &lt;/label&gt; &lt;input type=&quot;text&quot; class=&quot;form-control&quot; id=&quot;paragraphId&quot; placeholder=&quot;Paragraph Id ...&quot; ng-model=&quot;paragraph
&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot; ng-click=&quot;z.runParagraph(paragraph)&quot;&gt; Run Paragraph&lt;/button&gt;&lt;/form&gt;Overriding dynamic form with Angular ObjectThe front-end Angular Interaction API has been designed to offer richer form capabilities and variable binding. With the existing Dynamic Form system you can already create input text, select and checkbox forms but the choice is rather limited and the look &amp; feel cannot be changed.The idea is to create a custom form using plain HTML/AngularJS code and bind actions on this form to push/remove Angular variables to targeted paragraphs using this new API. Consequently if you use the Dynamic Form syntax in a paragraph and there is a bound Angular object having the same name as the ${formName}, the Angular object will have higher priority and the Dynamic Form will not be
displayed. Example: Feature matrix comparisonHow does the front-end AngularJS API compares to the back-end API ? Below is a comparison matrix for both APIs: Actions Front-end API Back-end API Initiate binding z.angularbind(var, initialValue, paragraphId) z.angularBind(var, initialValue) Update value same to ordinary angularjs scope variable, or z.angularbind(var, newValue, paragraphId) z.angularBind(var, newValue) Watching value same to ordinary angularjs scope variable z.angularWatch(var, (oldVal, newVal) => ...) Destroy binding z.angularUnbind(var, paragraphId) z.angularUnbind(var) Executing Paragraph z.runParagraph(paragraphId) z.run(paragraphId) Executing Para
graph (Specific paragraphs in other notes) ( z.run(noteid, paragraphId) Executing note z.runNote(noteId) Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end.There is also a slight difference in term of scope. Front-end API limits the Angular object binding to a paragraph scope whereas back-end API allows you to bind an Angular object at the global or note scope. This restriction has been designed purposely to avoid Angular object leaks and scope pollution.",
"url": " /displaysystem/front-end-angular.html",
"group": "display",
"excerpt": "In addition to the back-end API to handle Angular objects binding, Apache Zeppelin exposes a simple AngularJS z object on the front-end side to expose the same capabilities."
@@ -281,7 +281,7 @@
"/interpreter/jdbc.html": {
"title": "Generic JDBC Interpreter for Apache Zeppelin",
- "content" : "<!--Licensed 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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Generic JDBC Interpreter for Apache ZeppelinOverviewJDBC interpreter lets you create a JDBC connection to any data sources seamlessly. By now, it has been tested with: Postgresql - JDBC Driver Mysql - JDBC Driver MariaDB - JDBC Driver Redshift - JDBC Driver Apache Hive - JDBC Driver Apache Phoenix itself is a JDBC driver
Apache Drill - JDBC Driver Apache Tajo - JDBC Driver 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 InterpreterFirst, click + Create button at the top-right corner in the interpreter setting page.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. The default driver of JDBC interpreter is set as PostgreSQL. It means Zeppelin includes PostgreSQL driver jar in itself.So you don&#39;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. Name Default Value Descrip
tion common.max_count 1000 The maximun number of SQL result to display default.driver org.postgresql.Driver JDBC Driver Name default.password The JDBC user password default.url jdbc:postgresql://localhost:5432/ The URL for JDBC default.user gpadmin The JDBC user name If you want to connect other databases such as Mysql, Redshift and Hive, you need to edit the property values.You can also use Credential for JDBC authentication.If default.user and default.password properties are deleted(using X button) for database connection in the interpreter setting page,the JDBC interpreter will get the account information from Credential.The below example is for Mysql connection.The last step is Dependency Setting. Since Zeppelin only includes PostgreSQL driver jar by default, you need to add each driver&#39;s maven coordinates or JDBC driver&#39;s jar file path for the other databases.That&#39;s it. You can find more
JDBC connection setting examples(Mysql, MariaDB, Redshift, Apache Hive, Apache Phoenix, and Apache Tajo) in this section.More propertiesThere are more JDBC interpreter properties you can specify like below. Property Name Description common.max_result Max number of SQL result to display to prevent the browser overload. This is common properties for all connections zeppelin.jdbc.auth.type Types of authentications' methods supported are SIMPLE, and KERBEROS zeppelin.jdbc.principal The principal name to load from the keytab zeppelin.jdbc.keytab.location The path to the keytab file You can also add more properties by using this method.For example, if a connection needs a schema parameter, it would have to add the property as follows: name value default.schema schema_name Binding JDBC interpter to notebookTo bind the interpreters created in the interpreter setting page, click the gear icon at the top-right corner.Sel
ect(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&#39;t forget to click Save button, or you will face Interpreter *** is not found error.How to useRun the paragraph with JDBC interpreterTo 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.%jdbc_interpreter_nameshow databasesIf 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&#39;t need to type this prefix in every paragraphs&#39; header.Apply Zeppelin Dynamic FormsYou can leverage Zeppelin Dynamic Form inside your queries. You can use both the text input and select form parametrization features.%jdbc_interpreter_nameSELECT name, country, performerFROM demo.performersWHERE name=&#
39;{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}}&#39;ExamplesHere 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&#39;s JDBC driver.PostgresProperties Name Value default.driver org.postgresql.Driver default.url jdbc:postgresql://localhost:5432/ default.user mysql_user default.password mysql_password Postgres JDBC Driver DocsDependencies Artifact Excludes org.postgresql:postgresql:9.4.1211 Maven Repository: org.postgresql:postgresqlMysqlProperties Name Value default.driver com.mysql.jdbc.Driver default.url jdbc:mysql://localhost:3306/ default.user mysql_user default.password mysql_password Mysql JDBC Driver DocsDependencies Artifact Excludes mysql:mysql-connector-java:5.1.38 Maven Repository: mysql:mysql-connector-javaMariaDBProperties Na
me Value default.driver org.mariadb.jdbc.Driver default.url jdbc:mariadb://localhost:3306 default.user mariadb_user default.password mariadb_password MariaDB JDBC Driver DocsDependencies Artifact Excludes org.mariadb.jdbc:mariadb-java-client:1.5.4 Maven Repository: org.mariadb.jdbc:mariadb-java-clientRedshiftProperties Name Value default.driver com.amazon.redshift.jdbc42.Driver default.url jdbc:redshift://your-redshift-instance-address.redshift.amazonaws.com:5439/your-database default.user redshift_user default.password redshift_password AWS Redshift JDBC Driver DocsDependencies Artifact Excludes com.amazonaws:aws-java-sdk-redshift:1.11.51 Maven Repository: com.amazonaws:aws-java-sdk-redshiftApache HiveProperties Name Value default.driver org.apache.hive.jdbc.HiveDriver default.url jdbc:hive2://localhost:10000 default
.user hive_user default.password hive_password Apache Hive 1 JDBC Driver DocsApache Hive 2 JDBC Driver DocsDependencies Artifact Excludes org.apache.hive:hive-jdbc:0.14.0 org.apache.hadoop:hadoop-common:2.6.0 Maven Repository : org.apache.hive:hive-jdbcApache PhoenixPhoenix 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 instance.Use the appropriate default.driver, default.url, and the dependency artifact for your connection type.Thick client connectionProperties Name Value default.driver org.apache.phoenix.jdbc.PhoenixDriver default.url jdbc:phoenix:localhost:2181:/hbase-unsecure default.user phoenix_user default.password phoenix_password Dependencies Artifact Excludes org.apache.phoenix:phoenix-core:4.4.0-HBase-1.0
Maven Repository: org.apache.phoenix:phoenix-coreThin client connectionProperties Name Value default.driver org.apache.phoenix.queryserver.client.Driver default.url jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF default.user phoenix_user default.password phoenix_password DependenciesBefore Adding one of the below dependencies, check the Phoenix version first. Artifact Excludes Description org.apache.phoenix:phoenix-server-client:4.7.0-HBase-1.1 For Phoenix 4.7 org.apache.phoenix:phoenix-queryserver-client:4.8.0-HBase-1.2 For Phoenix 4.8+ Maven Repository: org.apache.phoenix:phoenix-queryserver-clientApache TajoProperties Name Value default.driver org.apache.tajo.jdbc.TajoDriver default.url jdbc:tajo://localhost:26002/default Apache Tajo JDBC Driver DocsDependencies Artifact Excludes org.apache.tajo:tajo-jdbc:0.11.0 Maven Rep
ository: org.apache.tajo:tajo-jdbcBug reportingIf you find a bug using JDBC interpreter, please create a JIRA ticket.",
+ "content" : "<!--Licensed 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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Generic JDBC Interpreter for Apache ZeppelinOverviewJDBC interpreter lets you create a JDBC connection to any data sources seamlessly.Inserts, Updates, and Upserts are applied immediately after running each statement.By now, it has been tested with: Postgresql - JDBC Driver Mysql - JDBC Driver MariaDB - JDBC Driver Redshift - JDBC Driver Apac
he Hive - JDBC Driver Apache Phoenix itself is a JDBC driver Apache Drill - JDBC Driver Apache Tajo - JDBC Driver 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 InterpreterFirst, click + Create button at the top-right corner in the interpreter setting page.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. The default driver of JDBC interpreter is set as PostgreSQL. It means Zeppelin includes PostgreSQL driver jar in itself.So you don&#39;t need to add any dependencies(e.g. the artifact name or path for PostgreSQL driver jar) for PostgreSQL connection.The JDBC interpreter p
roperties are defined by default like below. Name Default Value Description common.max_count 1000 The maximun number of SQL result to display default.driver org.postgresql.Driver JDBC Driver Name default.password The JDBC user password default.url jdbc:postgresql://localhost:5432/ The URL for JDBC default.user gpadmin The JDBC user name If you want to connect other databases such as Mysql, Redshift and Hive, you need to edit the property values.You can also use Credential for JDBC authentication.If default.user and default.password properties are deleted(using X button) for database connection in the interpreter setting page,the JDBC interpreter will get the account information from Credential.The below example is for Mysql connection.The last step is Dependency Setting. Since Zeppelin only includes PostgreSQL driver jar by default, you need to add each driver&#39;s maven coordinates or JDBC driver&
;#39;s jar file path for the other databases.That&#39;s it. You can find more JDBC connection setting examples(Mysql, MariaDB, Redshift, Apache Hive, Apache Phoenix, and Apache Tajo) in this section.More propertiesThere are more JDBC interpreter properties you can specify like below. Property Name Description common.max_result Max number of SQL result to display to prevent the browser overload. This is common properties for all connections zeppelin.jdbc.auth.type Types of authentications' methods supported are SIMPLE, and KERBEROS zeppelin.jdbc.principal The principal name to load from the keytab zeppelin.jdbc.keytab.location The path to the keytab file You can also add more properties by using this method.For example, if a connection needs a schema parameter, it would have to add the property as follows: name value default.schema schema_name Binding JDBC interpter to notebookTo bind the interpreters create
d in the interpreter setting page, click the gear icon at the top-right corner.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&#39;t forget to click Save button, or you will face Interpreter *** is not found error.How to useRun the paragraph with JDBC interpreterTo 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.%jdbc_interpreter_nameshow databasesIf 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&#39;t need to type this prefix in every paragraphs&#39; header.Apply Zeppelin Dynamic FormsYou can leverage Zeppelin Dynamic Form inside your queries. You can use both the text input and select form parametrization features.%jdbc_in
terpreter_nameSELECT name, country, performerFROM demo.performersWHERE name=&#39;{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}}&#39;ExamplesHere 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&#39;s JDBC driver.PostgresProperties Name Value default.driver org.postgresql.Driver default.url jdbc:postgresql://localhost:5432/ default.user mysql_user default.password mysql_password Postgres JDBC Driver DocsDependencies Artifact Excludes org.postgresql:postgresql:9.4.1211 Maven Repository: org.postgresql:postgresqlMysqlProperties Name Value default.driver com.mysql.jdbc.Driver default.url jdbc:mysql://localhost:3306/ default.user mysql_user default.password mysql_password Mysql JDBC Driver DocsDependencies Artifact Excludes mysql:mysql-connector-java
:5.1.38 Maven Repository: mysql:mysql-connector-javaMariaDBProperties Name Value default.driver org.mariadb.jdbc.Driver default.url jdbc:mariadb://localhost:3306 default.user mariadb_user default.password mariadb_password MariaDB JDBC Driver DocsDependencies Artifact Excludes org.mariadb.jdbc:mariadb-java-client:1.5.4 Maven Repository: org.mariadb.jdbc:mariadb-java-clientRedshiftProperties Name Value default.driver com.amazon.redshift.jdbc42.Driver default.url jdbc:redshift://your-redshift-instance-address.redshift.amazonaws.com:5439/your-database default.user redshift_user default.password redshift_password AWS Redshift JDBC Driver DocsDependencies Artifact Excludes com.amazonaws:aws-java-sdk-redshift:1.11.51 Maven Repository: com.amazonaws:aws-java-sdk-redshiftApache HiveProperties Name Value default.driver org.apache.hive
.jdbc.HiveDriver default.url jdbc:hive2://localhost:10000 default.user hive_user default.password hive_password Apache Hive 1 JDBC Driver DocsApache Hive 2 JDBC Driver DocsDependencies Artifact Excludes org.apache.hive:hive-jdbc:0.14.0 org.apache.hadoop:hadoop-common:2.6.0 Maven Repository : org.apache.hive:hive-jdbcApache PhoenixPhoenix 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 instance.Use the appropriate default.driver, default.url, and the dependency artifact for your connection type.Thick client connectionProperties Name Value default.driver org.apache.phoenix.jdbc.PhoenixDriver default.url jdbc:phoenix:localhost:2181:/hbase-unsecure default.user phoenix_user default.password phoenix_password Dependencies
Artifact Excludes org.apache.phoenix:phoenix-core:4.4.0-HBase-1.0 Maven Repository: org.apache.phoenix:phoenix-coreThin client connectionProperties Name Value default.driver org.apache.phoenix.queryserver.client.Driver default.url jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF default.user phoenix_user default.password phoenix_password DependenciesBefore Adding one of the below dependencies, check the Phoenix version first. Artifact Excludes Description org.apache.phoenix:phoenix-server-client:4.7.0-HBase-1.1 For Phoenix 4.7 org.apache.phoenix:phoenix-queryserver-client:4.8.0-HBase-1.2 For Phoenix 4.8+ Maven Repository: org.apache.phoenix:phoenix-queryserver-clientApache TajoProperties Name Value default.driver org.apache.tajo.jdbc.TajoDriver default.url jdbc:tajo://localhost:26002/default Apache Tajo JDBC Driver DocsDependencie
s Artifact Excludes org.apache.tajo:tajo-jdbc:0.11.0 Maven Repository: org.apache.tajo:tajo-jdbcBug reportingIf you find a bug using JDBC interpreter, please create a JIRA ticket.",
"url": " /interpreter/jdbc.html",
"group": "interpreter",
"excerpt": "Generic JDBC Interpreter lets you create a JDBC connection to any data source. You can use Postgres, MySql, MariaDB, Redshift, Apache Hive, Apache Phoenix, Apache Drill and Apache Tajo using JDBC interpreter."