开源软件联盟PostgreSQL分会

手把手教你玩转 PieCloudDB 全新外部连接工具 PieProxy

Image

前

言

云原生虚拟数仓 PieCloudDB 兼容 PostgreSQL 协议,支持标准数据库接口(ODBC、JDBC 等),同一账户下的用户可通过虚拟数仓,使用 JDBC 、ODBC 或 Postgres 驱动从外部连接数据库来获取数据。此外,PieCloudDB 云上云版提供了可视化界面,替换了传统 node-port 连接,打造了全新的外部连接工具 PieProxy,方便用户的使用。本文将详细介绍这款全新的外部连接工具。

作者 | ArlenaWang, 拓数派 Data Science Lab

PieCloudDB 现支持使用全新外部连接工具 PieProxy 进行外部接入。PieProxy 是基于 PgBouncer、为 PieCloudDB 量身定制的外部连接工具。与传统 node-port 连接相比,PieProxy 更轻量,通过高并发、高可用性,有效减轻数据库在处理外部连接请求时的负担。欢迎大家前往 PieCloudDB 云上云版(app.pieclouddb.com)试用这款全新的外部连接工具。
在 PieCloudDB 中,外部接入利用了 PostgreSQL 的 Options 属性(PGOptions)来指定在建立数据库连接时所需的参数和设置。利用 PGOptions,PieCloudDB 得以将虚拟数仓的信息加入参数设置,从而与虚拟数仓建联。当然,对于无法设置 PGOptions 的客户端,PieCloudDB 也提供了替代方法(详见本文第 3 部分)。
PieCloudDB 外部连接总共需要三类信息:
    ● 用户连接信息:
        用户名、Token 密码
    ● 虚拟数仓信息:
        虚拟数仓 ID、接入地址、端口号
    ● 数据库信息
在通过一个实例详细介绍 PieProxy 前,我们先来了解一下所需的这三类信息:
01.用户连接信息
本文将以《快速开始 PieCloudDB》(https://www.openpie.com/community/blog/9342888398)中的 David 作为账户管理员。用户登录后可通过平台右上角的用户信息栏点击外部接入,获得用户相关的外部接入信息。点击右上角菜单「外部接入」按钮,进入相关界面。

Image

点击「重置接入 Token」获得接入用户名及 Token 密码。建议用户将 Token 自行保管,再次重置 Token 会将接入密码重新设置,先前的密码将不再有效。

Image

02.虚拟数仓信息
记录好用户名和 Token,我们来到左侧菜单栏「虚拟数仓」菜单。进入界面后,确认目标虚拟数仓已开启外部接入。这里我们进行外部连接的虚拟数仓为「VW1」。
Image
根据需要外部接入的虚拟数仓,点击右侧「查看详情」查看虚拟数仓详细信息,界面大致如下。
进入详情页面后,外部接入需要如上图所示该界面中的三条信息:
    ● 虚拟数仓ID
    ● 接入地址
    ● 服务端口号
03.数据库信息
本文将以 PieCloudDB 中的初始数据库「openpie」为例,进行外部连接。这里我们只需数据库名称即可。
综合在「外部接入」界面获得的信息,我们可通过以下信息进行外部连接。接下来,我们将通过一个连接实例来详细介绍相关步骤。
    ● 接入IP地址:114.55.***.***
    ● 端口号:5432
    ● 用户名:david
    ● Token 密码:01************3db
    ● 连接选项:
        PGOPTIONS='-c warehouse=******'
    ● 数据库名称:openpie

这里我们以 DBeaver 为例。进入 DBeaver 后,点击左上角新增一个连接。

Image

进入添加界面后选择「PostgreSQL」。

Image

进入下一步,调整服务器、数据库、用户名及 Token 密码。如前文所述,这里我们连接的是初始数据库「openpie」。

Image

完成后进入驱动属性界面,找到「options」,按照平台提供的格式填入虚拟数仓 ID。

Image

设置完毕后点击测试连接,可以看到我们已成功连接到相应数据库。

Image

点击完成按钮,完成连接设置。

Image

接下来,我们使用刚设置的连接来执行 SQL 任务。选择刚刚设置的连接,点击左上角 SQL 按钮新添一个 SQL 文件。

Image

这里,我们在「openpie」数据库中新建一个表,插入新数据并验证新数据的存在。

CREATE TABLE test_1 (id int); 

INSERT INTO test_1 VALUES (1),(2),(3); 

SELECT * FROM test_1;

运行结果如下图所示。

Image

我们也可使用 DBeaver 读写数据库中已存在的表。这里以「test_table」为例。「test_table」是一个先前被清空的表。我们在这张空表中插入两行新数据,并验证了新数据的存在。

INSERT INTO test_table VALUES (4),(5);
SELECT * FROM test_table;

运行结果如下图所示。

Image

Image

在一些数据库管理及开发工具中,数据库连接无法设置选项。在这种情况下,我们可以通过 “数据库+‘#’+虚拟数仓 ID” 的方式进行连接,避免另外设置连接选项。

接下来,我们将以 Navicat 为例。打开 Navicat,点击左上角新增一条连接,选择「PostgreSQL」。
进入界面后,输入从 PieCloudDB 获取的服务器、数据库及用户信息。在数据库名称处,加上‘#’及虚拟数仓 ID。
点击界面左下角「测试连接」,可以看到数据库连接成功。
最后点击保存按钮保存连接。
点击左上角新建一个 SQL 文件,通过刚刚创建的连接,即可对「openpie」数据库中的数据进行查询。

Image


SELECT * FROM test_table;
查询结果与先前一致。
以上为 PieCloudDB 全新外部链接工具 PieProxy 的全部内容。关于 PieCloudDB 外部链接的更多信息,请点击下面图片观看演示视频。欢迎大家登录 PieCloudDB 「云上云」版,开启属于自己的数据探索之旅。

Image

Image