🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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名称的建议。