1. 程式人生 > >Apache Zeppelin 中 JDBC通用 直譯器

Apache Zeppelin 中 JDBC通用 直譯器

建立一個新的JDBC直譯器

首先,+ Create在直譯器設定頁面的右上角單擊按鈕。

 Interpreter name用任何你想要用作別名的填充欄位(如mysql,mysql2,hive,redshift等)。請注意,此別名將用於%interpreter_name在段落中呼叫直譯器。然後選擇jdbcInterpreter group

JDBC直譯器的預設驅動程式設定為PostgreSQL。這意味著Zeppelin PostgreSQL本身就包括驅動程式jar。因此,您不需要為連線新增任何依賴項(例如PostgreSQL驅動程式jar 的工件名稱或路徑)PostgreSQL

。JDBC直譯器屬性預設定義如下。

名稱 預設值 描述
common.max_count 1000 要顯示的SQL結果的最大數量
default.driver org.postgresql.Driver JDBC驅動程式名稱
default.password JDBC使用者密碼
default.url jdbc:postgresql://localhost:5432/ JDBC的URL
default.user gpadmin JDBC使用者名稱

如果你想連線其他資料庫如MysqlRedshiftHive,你需要編輯的屬性值。您還可以使用Credential

進行JDBC身份驗證。在直譯器設定頁面中,如果default.userdefault.password屬性被刪除(使用X按鈕)進行資料庫連線,則JDBC直譯器將從Credential獲取帳戶資訊

下面的例子是Mysql連線。

最後一步是依賴關係設定。由於Zeppelin PostgreSQL預設僅包含驅動程式jar,因此您需要為其他資料庫新增每個驅動程式的maven座標或JDBC驅動程式的jar檔案路徑。

更多屬性

您可以在下面指定更多的JDBC直譯器屬性。

物業名稱 描述
common.max_result 要顯示的SQL結果的最大數量,以防止瀏覽器超載。這是所有連線的常見屬性
zeppelin.jdbc.auth.type 支援的認證方式型別有SIMPLE,和KERBEROS
zeppelin.jdbc.principal 從keytab載入的主要名稱
zeppelin.jdbc.keytab.location keytab檔案的路徑
default.jceks.file jceks儲存路徑(例如:jceks://file/tmp/zeppelin.jceks
default.jceks.credentialKey jceks憑證鑰匙

您還可以使用此方法新增更多屬性。例如,如果一個連線需要一個schema引數,那麼它必須新增如下的屬性:

名稱
default.schema SCHEMA_NAME

將JDBC外掛繫結到筆記本

要繫結直譯器設定頁面中建立的口譯員,請單擊右上角的齒輪圖示。

根據用例選擇(藍色)或取消選擇(白色)直譯器按鈕。如果您需要在筆記本中使用多個直譯器,請啟用幾個按鈕。不要忘記點選Save按鈕,否則您將面臨Interpreter *** is not found錯誤。

如何使用

使用JDBC直譯器執行段落

要測試您的資料庫和Zeppelin是否成功連線,請在段落的頂部輸入%jdbc_interpreter_name(例如%mysql)並執行show databases

%jdbc_interpreter_name show databases 

如果段落FINISHED沒有任何錯誤,則會在上一個之後自動新增一個新的段落%jdbc_interpreter_name。所以你不需要在每個段落的標題中鍵入這個字首。

應用Zeppelin動態表單

您可以在查詢內使用Zeppelin 動態表單。您可以使用引數化功能text inputselect form引數化功能。

%jdbc_interpreter_name SELECT name, country, performer FROM demo.performers WHERE name='{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}}' 

例子

以下是您可以參考的一些例子。包括以下聯結器,您可以連線每個資料庫,只要它可以配置它的JDBC驅動程式。

Postgres

屬性

名稱
default.driver org.postgresql.Driver
default.url jdbc:postgresql://localhost:5432/
default.user mysql_user
default.password mysql_password

依賴

Artifact Excludes
org.postgresql:postgresql:9.4.1211

Mysql

屬性

名稱
default.driver com.mysql.jdbc.Driver
default.url jdbc:mysql://localhost:3306/
default.user mysql_user
default.password mysql_password

依賴

Artifact Excludes
mysql:mysql-connector-java:5.1.38

MariaDB

屬性

名稱
default.driver org.mariadb.jdbc.Driver
default.url jdbc:mariadb://localhost:3306
default.user mariadb_user
default.password mariadb_password

依賴

Artifact Excludes
org.mariadb.jdbc:mariadb-java-client:1.5.4

Redshift

屬性

名稱
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

依賴

Artifact Excludes
com.amazonaws:aws-java-sdk-redshift:1.11.51

Apache Hive

屬性

名稱
default.driver org.apache.hive.jdbc.HiveDriver
default.url jdbc:hive2://localhost:10000
default.user hive_user
default.password hive_password

依賴

Artifact Excludes
org.apache.hive:hive-jdbc:0.14.0
org.apache.hadoop:hadoop-common:2.6.0

Apache Phoenix

Phoenix支援thickthin連線型別:

  • Thick client更快,但必須直接連線到ZooKeeper和HBase RegionServers。

對您的連線型別使用適當的default.driverdefault.url和依賴性工件。

Thick client連線

屬性

名稱
default.driver org.apache.phoenix.jdbc.PhoenixDriver
default.url jdbc:phoenix:localhost:2181:/hbase-unsecure
default.user phoenix_user
default.password phoenix_password

依賴

Artifact Excludes
org.apache.phoenix:phoenix-core:4.4.0-HBase-1.0

Thin client 連線

屬性

名稱
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

依賴

在新增以下依賴項之一之前,首先檢查Phoenix版本。

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+

Apache Tajo

屬性

名稱
default.driver org.apache.tajo.jdbc.TajoDriver
default.url jdbc:tajo://localhost:26002/default

依賴

Artifact Excludes
org.apache.tajo:tajo-jdbc:0.11.0

錯誤報告

如果您使用JDBC直譯器發現錯誤,請建立一個JIRA ticket