您在创建好数据仓库集群,开始使用数据库服务前,需要使用数据库客户端连接到数据库。请参考以下指导,使用 psql 客户端工具连接数据库。
1. 获取集群访问地址:通过集群 JDBC URL 中的 IP 和端口连接数据库。
2. 连接到集群数据库:安装客户端并连接集群数据库。
前提条件
1. 已获取腾讯云数据仓库 TCHouse-P 集群的数据库管理员密码。数据库管理员密码为开始创建集群时设置的管理员账号密码。
2. 已获取创建好的腾讯云数据仓库 TCHouse-P 集群的访问 IP、端口以及 VPC 和子网。
获取集群访问地址和本地网络
选择对应的集群,详细信息如图所示,获取 VPC 网络:vpc-aejsd98p,子网:subnet-83knqldq。链接 Snova 的 IP 为10.0.6.10,端口为5432,登录帐户为 lambuser。
![](https://qcloudimg.tencent-cloud.cn/image/document/cf0b61ee902974ae94e34f2e9467f1b1.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/cf0b61ee902974ae94e34f2e9467f1b1.png)
命令行连接到集群数据库
在获取的 VPC 网络:vpc-aejsd98p,子网:subnet-83knqldq 中选择一台 CVM 服务器(如果不存在,则购买一台即可)。登录该服务器,执行以下命令,即可安装 PostgreSQL 客户端。
yum install -y postgresql.x86_64
执行下面的 SQL 命令,然后输入创建集群时输入的密码,即可登录成功。
psql –h10.0.6.10 –p5432 –dpostgres –Ulambuser
JDBC 连接数据库
或者在 pom.xml 文件中添加如下配置:
<dependencies><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.2</version></dependency></dependencies>
示例代码
package com.qcloud.snova_conn;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;import java.sql.Timestamp;import java.util.ArrayList;import java.util.List;import java.util.Properties;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import com.yammer.metrics.core.Meter;public class SnovaConn {/** args: vip vport user pwd*/public static void main(String[] args) throws ClassNotFoundException, SQLException {if (args.length < 4){System.out.println("args err");return;}String vip = args[0];String vport = args[1];String userName = args[2];String userPwd = args[3];System.out.printf("vip:%s, vport:%s, userName:%s, userPwd:%s\\n",vip, vport, userName, userPwd);String jdbcUrl = "jdbc:postgresql://" + vip+":"+vport+"/maxluo";System.out.printf("jdbcUrl:%s \\n",jdbcUrl);Class.forName("org.postgresql.Driver");Connection snova = DriverManager.getConnection(jdbcUrl,userName,userPwd);Statement st = snova.createStatement();ResultSet rs = st.executeQuery("select * from test;");while (rs.next()) {System.out.print(rs.getString(1));System.out.print("\\n");}rs.close();st.close();}}
pom.xml 配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.qcloud</groupId><artifactId>snova-conn</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>snova-conn</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.2</version></dependency><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>6.4.0.jre8</version></dependency><dependency><groupId>com.yammer.metrics</groupId><artifactId>metrics-core</artifactId><version>2.2.0</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.9</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><excludes><exclude>*.properties</exclude><exclude>*.xml</exclude><exclude>*.json</exclude><exclude>*.sh</exclude></excludes></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><type>jar</type><includeTypes>jar</includeTypes><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins></build></project>
然后采用 Maven 打包生成 jar 文件,并把该 jar 包上传至 CVM 服务器(该腾讯云数据仓库 TCHouse-P 集群所在 VPC 子网中的任意一台 CVM 均可)。
执行以下命令安装 jdk。
yum install java
执行命令:
java –cp snova-conn-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.qcloud.snova_conn.SnovaConn 10.0.8.5 5436 lambuser lambpwd11
注意
VIP 和端口分别为腾讯云数据仓库 TCHouse-P 集群链接地址,用户名和密码分别是创建集群时填写的信息,具体获取方式见前文。
通过命令行方式建立数据库和数据表,并插入一定量的数据。
查询结果如下,可以读取到事先建立的数据库 maxluo 中表 test 中的数据:
![](https://qcloudimg.tencent-cloud.cn/image/document/470457422909532454e2475106bfdb84.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/470457422909532454e2475106bfdb84.png)