# PostgreSQL, HAWQ 解釋器
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/postgresql.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/postgresql.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030883](http://www.apache.wiki/pages/viewpage.action?pageId=10030883)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## 重要的提醒
Postgresql解釋器將被棄用并合并到JDBC解釋器中。您可以使用具有相同功能的JDBC Interpreter使用Postgresql。請參閱下面的設置和依賴關系示例。
### 屬性
| 屬性 | 值 |
| --- | --- |
| psql.driver | org.postgresql.Driver |
| psql.url | jdbc:postgresql://localhost:5432/ |
| psql.user | psqlUser |
| psql.password | psqlPassword |
### 依賴
| Artifact | Exclude |
| --- | --- |
| org.postgresql:postgresql:9.4-1201-jdbc41 | |
## 概述
該解釋器無縫地支持以下SQL數據處理引擎:
* [PostgreSQL](http://www.postgresql.org/)?- OSS,對象關系數據庫管理系統(ORDBMS)
* [pache HAWQ(孵化)](http://hawq.incubator.apache.org/)?- 強大的開源SQL-On-Hadoop引擎。
* [Greenplum](http://pivotal.io/big-data/pivotal-greenplum-database)?- 建立在開源PostgreSQL上的MPP數據庫。
本[視頻教程](https://www.youtube.com/watch?v=wqXXQhJ5Uk8)說明了該功能提供的一些功能`Postgresql Interpreter`。
| 名稱 | 類 | 描述 |
| --- | --- | --- |
| %psql.sql | PostgreSqlInterpreter | 為PostgreSQL,HAWQ和Greenplum提供SQL環境 |
[?](http://zeppelin.apache.org/docs/0.7.1/interpreter/postgresql.html#create-interpreter)
## 創建解釋器
默認情況下,Zeppelin創建一個`PSQL`實例。您可以刪除它或創建新的實例。
可以創建多個PSQL實例,每個配置為相同或不同的后端數據庫。但是隨著時間的推移,?`Notebook`可以只有一個PSQL解釋器實例`bound`。這意味著您_無法_連接到不同的數據庫`Notebook`。這是一個已知的齊柏林限制。
要創建新的PSQL實例,請打開該`Interpreter`部分并單擊該`+Create`按鈕。選擇`Name`您的選擇,并從`Interpreter`下拉列表中選擇`psql`。然后按照配置說明和`Save`新實例進行操作。
> 注意:該`Name`實例僅用于將實例綁定到該實例`Notebook`。這`Name`是不相干的`Notebook`。在`Notebook`你必須使用`%psql.sql`標簽。
## 綁定到筆記本
在`Notebook`上點擊`settings`在右上角的圖標。選擇/取消選擇要與之綁定的口譯員`Notebook`。
## 配置
您可以從該`Interpreter`部分修改PSQL的配置。PSQL解釋器支出以下屬性:
| 屬性名稱 | 描述 | 默認值 |
| --- | --- | --- |
| postgresql.url | 要連接的JDBC URL | jdbc:postgresql://localhost:5432 |
| postgresql.user | JDBC用戶名 | gpadmin |
| postgresql.password | JDBC密碼 | ? |
| postgresql.driver.name | JDBC驅動程序名稱。在此版本中,驅動程序名稱是固定的,不應該更改 | org.postgresql.Driver |
| postgresql.max.result | 要顯示的SQL結果的最大數量,以防止瀏覽器超載 | 1000 |
## 如何使用?
```
Tip: Use (CTRL + .) for SQL auto-completion.?
```
### DDL和SQL命令[](http://zeppelin.apache.org/docs/0.7.1/interpreter/postgresql.html#ddl-and-sql-commands)
開始帶有完整的`%psql.sql`前綴標簽的段落!短的符號:`%psql`仍然可以運行查詢,但語法突出顯示和自動完成將被禁用。
您可以使用標準CREATE / DROP / INSERT命令創建或修改數據模型:
```
%psql.sql
drop table if exists mytable;
create table mytable (i int);
insert into mytable select generate_series(1, 100);?
```
然后在單獨的段落中運行查詢。
```
%psql.sql
select * from mytable;?
```
> 注意:您可以在同一段落中有多個查詢,但只顯示第一個查詢結果。[?[1](https://issues.apache.org/jira/browse/ZEPPELIN-178)?],[?[2](https://issues.apache.org/jira/browse/ZEPPELIN-212)?]。
例如,這將執行兩個查詢,但只顯示計數結果。如果您還原查詢的順序,則會顯示mytable內容。
```
%psql.sql
select count(*) from mytable;
select * from mytable;?
```
### **PSQL命令行工具**
使用Shell Interpreter(`%sh`)以交互方式訪問命令行[PSQL](http://www.postgresql.org/docs/9.4/static/app-psql.html):
```
%sh
psql -h phd3.localdomain -U gpadmin -p 5432 <<EOF
\dn
\q
EOF?
```
這將產生如下輸出:
```
Name | Owner
--------------------+---------
hawq_toolkit | gpadmin
information_schema | gpadmin
madlib | gpadmin
pg_catalog | gpadmin
pg_toast | gpadmin
public | gpadmin
retail_demo | gpadmin ?
```
### 應用Zeppelin動態表單[](http://zeppelin.apache.org/docs/0.7.1/interpreter/postgresql.html#apply-zeppelin-dynamic-forms)
您可以在查詢內使用[Zeppelin Dynamic Form](http://zeppelin.apache.org/docs/0.7.1/manual/dynamicform.html)。您可以使用參數化功能`text input`和`select form`參數化功能
```
%psql.sql
SELECT ${group_by}, count(*) as count
FROM retail_demo.order_lineitems_pxf
GROUP BY ${group_by=product_id,product_id|product_name|customer_id|store_id}
ORDER BY count ${order=DESC,DESC|ASC}
LIMIT ${limit=10};?
```
### 示例HAWQ PXF / HDFS表格[](http://zeppelin.apache.org/docs/0.7.1/interpreter/postgresql.html#example-hawq-pxfhdfs-tables)
創建HAWQ外部表,從HDFS中的標簽分隔值數據讀取數據。
```
%psql.sql
CREATE EXTERNAL TABLE retail_demo.payment_methods_pxf (
payment_method_id smallint,
payment_method_code character varying(20)
) LOCATION ('pxf://${NAME_NODE_HOST}:50070/retail_demo/payment_methods.tsv.gz?profile=HdfsTextSimple') FORMAT 'TEXT' (DELIMITER = E'\t');?
```
并檢索內容
```
%psql.sql
select * from retail_demo.payment_methods_pxf
```
## 自動完成?
PSQL解釋器提供基本的自動完成功能。在`(Ctrl+.)`其中列出最相關的建議在彈出窗口。除了SQL關鍵字之外,解釋器還提供了Schema,Table,Column名稱的建議。
- 快速入門
- 什么是Apache Zeppelin?
- 安裝
- 配置
- 探索Apache Zeppelin UI
- 教程
- 動態表單
- 發表你的段落
- 自定義Zeppelin主頁
- 升級Zeppelin版本
- 從源碼編譯
- 使用Flink和Spark Clusters安裝Zeppelin教程
- 解釋器
- 概述
- 解釋器安裝
- 解釋器依賴管理
- 解釋器的模擬用戶
- 解釋員執行Hook(實驗)
- Alluxio 解釋器
- Beam 解釋器
- BigQuery 解釋器
- Cassandra CQL 解釋器
- Elasticsearch 解釋器
- Flink 解釋器
- Geode/Gemfire OQL 解釋器
- HBase Shell 解釋器
- HDFS文件系統 解釋器
- Hive 解釋器
- Ignite 解釋器
- JDBC通用 解釋器
- Kylin 解釋器
- Lens 解釋器
- Livy 解釋器
- Markdown 解釋器
- Pig 解釋器
- PostgreSQL, HAWQ 解釋器
- Python 2&3解釋器
- R 解釋器
- Scalding 解釋器
- Scio 解釋器
- Shell 解釋器
- Spark 解釋器
- 系統顯示
- 系統基本顯示
- 后端Angular API
- 前端Angular API
- 更多
- 筆記本存儲
- REST API
- 解釋器 API
- 筆記本 API
- 筆記本資源 API
- 配置 API
- 憑據 API
- Helium API
- Security ( 安全 )
- Shiro 授權
- 筆記本 授權
- 數據源 授權
- Helium 授權
- Advanced ( 高級 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虛擬機上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 貢獻 )
- Writing a New Interpreter ( 寫一個新的解釋器 )
- Writing a new Visualization (Experimental) ( 編寫新的可視化(實驗) )
- Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 貢獻( 代碼 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 貢獻(website) )