# 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) )