全部产品
Search
文档中心

实时数仓Hologres:PSQL客户端

更新时间:Nov 15, 2024

Hologres兼容PostgreSQL生态,这意味着大多数PostgreSQL兼容的开发工具或BI工具都能直接连接Hologres,您可以选择熟悉的工具进行开发,帮助您快速构建企业级实时数仓。本文为您介绍PSQL客户端如何连接Hologres,并使用标准的PostgreSQL语句进行数据开发。

安装PSQL客户端

在使用PSQL客户端之前需要官网下载并安装。若您已经安装好PSQL客户端,可忽略本步骤,安装步骤如下。

  1. 下载PSQL客户端

    您需要进入Postgres官网,下载与电脑系统相匹配的PostgreSQL 11及以上版本的客户端安装包,并根据提示安装。

  2. 设置环境变量

    • Windows系统。

      1. 系统属性 > 高级系统设置界面,单击环境变量

      2. 添加PostgreSQL的bin文件路径至Path中。

      3. 单击确定

    • 设置macOS系统的环境变量,一般无需设置环境变量,如果需要请参见设置环境变量

连接Hologres并开发

下载安装完成PSQL客户端之后,可以连接Hologres实例并进行开发。

  1. 连接Hologres

    进入PSQL客户端命令行界面,输入连接信息,语法与连接PostgreSQL数据库一致。

    • Linux系统语句如下。

      psql -h <Endpoint> -p <Port> -U <AccessKey ID> -d <Database>

      执行完上述语句后,您需要输入AccessKey Secret。

      LIN

    • macOS系统语句如下。

      PGUSER=<AccessKey ID> PGPASSWORD=<AccessKey Secret> psql -p <Port> -h <Endpoint> -d <Database>

      linux

    • Windows系统语句如下。

      Server [localhost]: Endpoint
      Database [postgres]: Database
      Port [5432]: Port
      Username [postgres]: <AccessKey ID>
      用户 <AccessKey ID> 的口令:<AccessKey Secret>

      连接psql

    参数

    描述

    AccessKey ID

    • 阿里云账号:当前阿里云账号的AccessKey ID。您可以单击AccessKey 管理,获取AccessKey ID。

    • 自定义账号:自定义账号的用户名,例如BASIC$abc。

    AccessKey Secret

    • 阿里云账号:当前阿里云账号的AccessKey Secret。

    • 自定义账号:自定义账号的密码。

    Port

    Hologres实例的公共网络或VPC网络端口。

    示例取值80

    说明

    公网详情请参见实例配置

    Endpoint

    Hologres实例的公共网络或VPC网络地址。

    示例取值xxx-cn-hangzhou.hologres.aliyuncs.com

    说明

    公网详情请参见实例配置

    Database

    Hologres的数据库名称。

    开通Hologres实例后,系统自动创建postgres数据库。

    您可以使用postgres数据库链接Hologres,但是该数据库分配到的资源较少,开发实际业务建议您新建数据库。详情请参见创建数据库

    示例取值mydb

    使用样例

    • 使用阿里云账号登录,语句如下:

      PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-xxx-cn-hangzhou.hologres.aliyuncs.com -p 80 -d demo

      阿里云账号登录

    • 使用自定义账号登录

      • 如果自定义账号用户名为abc,如下图所示。自定义登录

      • 登录语句如下:

        PGUSER="BASIC\$abc" PGPASSWORD="xxx" psql -h hgpostcn-cn-xxx-cn-hangzhou.hologres.aliyuncs.com -p 80 -d demo

        自定义账号登录

    说明

    您也可以使用熟悉的开发工具连接Hologres,例如使用DataWorks或HoloWeb进行数据开发,详情请参见DataWorks快速入门连接HoloWeb并执行查询

  2. (可选)创建数据库

    开通Hologres实例后,系统自动创建postgres数据库。该数据库分配到的资源较少,仅用于运维管理,开发实际业务建议您新建数据库。

    说明

    若您在此之前已经创建业务数据库,可忽略此步骤。

    • 命令语法。

      CREATE Database <DatabaseName>;

      DatabaseName为要创建的数据库名称。

    • 使用示例。

      --创建一个名为test的数据库。
      CREATE Database test; 
  3. 数据开发

    使用标准的PostgreSQL语句,在PSQL客户端进行数据开发。

    示例在数据库中创建一张表并写入数据,SQL语句如下。

    BEGIN;
    CREATE TABLE nation (
      n_nationkey bigint NOT NULL,
      n_name text NOT NULL,
      n_regionkey bigint NOT NULL,
      n_comment text NOT NULL,
      PRIMARY KEY (n_nationkey)
    );
    CALL SET_TABLE_PROPERTY('nation', 'bitmap_columns', 'n_nationkey,n_name,n_regionkey');
    CALL SET_TABLE_PROPERTY('nation', 'dictionary_encoding_columns', 'n_name,n_comment');
    CALL SET_TABLE_PROPERTY('nation', 'time_to_live_in_seconds', '31536000');
    COMMIT;
    
    INSERT INTO nation VALUES
    (11,'zRAQ', 4,'nic deposits boost atop the quickly final requests? quickly regula'),
    (22,'RUSSIA', 3  ,'requests against the platelets use never according to the quickly regular pint'),
    (2,'BRAZIL',  1 ,'y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special '),
    (5,'ETHIOPIA',  0 ,'ven packages wake quickly. regu'),
    (9,'INDONESIA', 2  ,'slyly express asymptotes. regular deposits haggle slyly. carefully ironic hockey players sleep blithely. carefull'),
    (14,'KENYA',  0  ,'pending excuses haggle furiously deposits. pending, express pinto beans wake fluffily past t'),
    (3,'CANADA',  1 ,'eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold'),
    (4,'EGYPT', 4 ,'y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d'),
    (7,'GERMANY', 3 ,'l platelets. regular accounts x-ray: unusual, regular acco'),
    (20 ,'SAUDI ARABIA',  4 ,'ts. silent requests haggle. closely express packages sleep across the blithely');
    
    SELECT * FROM nation;

    您可以根据业务场景进行作业开发,示例如下。