如何連線到HybridDB(Greenplum)
雲資料庫 HybridDB 基於開源資料庫Greenplum Database,而Greenplum 基於 PostgreSQL 8.2 分支開發,完整相容其訊息協議。因此,HybridDB 使用者可以直接使用支援 PostgreSQL 8.2 訊息協議的工具,例如 libpq、JDBC、ODBC、psycopg2、pgadmin III 等。
HybridDB提供了Redhat平臺的二進位制psql程式下載連結。Greenplum 官網也提供了一個安裝包,包含 JDBC、ODBC 和 libpq,方便安裝和使用,詳情請參見Greenplum 官方文件。
psql
psql 是 Greenplum 中比較常用的工具,提供了豐富的命令,其二進位制檔案在 Greenplum 安裝後的 BIN 目錄下。使用步驟如下所示:
通過如下任意一種方式進行連線
-
連線串的方式
psql "host=yourgpdbaddress.gpdb.rds.aliyuncs.com port=3568 dbname=postgres user=gpdbaccount password=gpdbpassword" postgres=> select version(); version ----------------------------------------------------------------------------------------------- PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59 (1 row)
-
指定引數的方式
psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3568 -d postgres -U gpdbaccount
-
輸入密碼,進入 psql 的 Shell 介面。
postgres=> select version(); version ----------------------------------------------------------------------------------------------- PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59 (1 row)
引數說明:
- -h:指定主機地址。
- -p:指定埠號。
- -d:指定資料庫(預設的資料庫是 postgres),
- -U:指定連線的使用者。
- 可以通過`psql --help`檢視更多選項。在 psql 中,可以執行`?`檢視更多 psql 中支援的命令。
參考文件
- 關於 Greenplum 的 psql 的更多使用方法,請參見文件“psql”。
- 也可以使用 PostgreSQL 的 psql 命令,請注意使用細節上的差異。詳情請參見“PostgreSQL 8.3.23 Documentation — psql”。
pgAdmin III
pgAdmin III 是PostgreSQL圖形客戶端,可以直接用於連線HybridDB。詳情請參見這裡。
pgAdmin III 1.6.3可以從PostgreSQL官網下載。pgAdmin III 1.6.3支援各種平臺(Windows、MacOS、Linux)。注意,HybridDB與PostgreSQL 8.2版本相容,因此必須使用pgAdmin III 1.6.3或之前的版本才能連線HybridDB(pgAdmin 4也是不支援的)。下載安裝後,開啟”檔案”->”新增伺服器”選單,可以看到配置連線的視窗。按如下圖類似的方式,填入”名稱“、”主機地址”、“埠號”、“資料庫”、“使用者名稱”、“密碼”等資訊,點選“確定”即可連線到HybridDB。
其他更多圖形客戶端,請參考 下載連結。
JDBC
JDBC 採用 PostgreSQL 的即可。下載方法如下:
- 單擊這裡,下載 PostgreSQL 的官方 JDBC,下載之後加入到環境變數中。
- 也可採用 Greenplum 官網提供的工具包,詳情請參見“Greenplum Database 4.3 Connectivity Tools for UNIX”。
程式碼案例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class gp_conn {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection("jdbc:postgresql://mygpdbpub.gpdb.rds.aliyuncs.com:3568/postgres","mygpdb","mygpdb");
Statement st = db.createStatement();
ResultSet rs = st.executeQuery("select * from gp_segment_configuration;");
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(" | ");
System.out.print(rs.getString(2));
System.out.print(" | ");
System.out.print(rs.getString(3));
System.out.print(" | ");
System.out.print(rs.getString(4));
System.out.print(" | ");
System.out.print(rs.getString(5));
System.out.print(" | ");
System.out.print(rs.getString(6));
System.out.print(" | ");
System.out.print(rs.getString(7));
System.out.print(" | ");
System.out.print(rs.getString(8));
System.out.print(" | ");
System.out.print(rs.getString(9));
System.out.print(" | ");
System.out.print(rs.getString(10));
System.out.print(" | ");
System.out.println(rs.getString(11));
}
rs.close();
st.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
詳細文件,請參見“The PostgreSQL JDBC Interface”。
Python
Python 連線 Greenplum 和 PostgreSQL 用的庫是 psycopg2。使用步驟如下:
安裝 psycopg2
在 CentOS 下,有如下三種安裝方法:
-
方法一,執行如下命令:
yum -y install python-psycopg2
-
方法二,執行如下命令:
pip install psycopg2
-
從原始碼安裝:
yum install -y postgresql-devel* wget http://initd.org/psycopg/tarballs/PSYCOPG-2-6/psycopg2-2.6.tar.gz tar xf psycopg2-2.6.tar.gz cd psycopg2-2.6 python setup.py build sudo python setup.py install
安裝後,設定 PYTHONPATH,之後就可以引用,如:
import psycopg2
sql = `select * from gp_segment_configuration;`
conn = psycopg2.connect(database=`gpdb`, user=`mygpdb`, password=`mygpdb`, host=`mygpdbpub.gpdb.rds.aliyuncs.com`, port=3568)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
print row
conn.commit()
conn.close()
會得到類似以下的結果:
(1, -1, `p`, `p`, `s`, `u`, 3022, `192.168.2.158`, `192.168.2.158`, None, None)
(6, -1, `m`, `m`, `s`, `u`, 3019, `192.168.2.47`, `192.168.2.47`, None, None)
(2, 0, `p`, `p`, `s`, `u`, 3025, `192.168.2.148`, `192.168.2.148`, 3525, None)
(4, 0, `m`, `m`, `s`, `u`, 3024, `192.168.2.158`, `192.168.2.158`, 3524, None)
(3, 1, `p`, `p`, `s`, `u`, 3023, `192.168.2.158`, `192.168.2.158`, 3523, None)
(5, 1, `m`, `m`, `s`, `u`, 3026, `192.168.2.148`, `192.168.2.148`, 3526, None)
libpq
libpq 是 PostgreSQL 資料庫的 C 語言介面,在 C 程式中通過 libpq 庫訪問 PostgreSQL 資料庫並進行資料庫操作。在安裝了 Greenplum 或者 PostgreSQL 之後,在其 lib 目錄下可以找到其靜態庫和動態庫。
相關案例請參見這裡,此處不再列舉。
關於 libpq 詳情,請參見“PostgreSQL 9.4.10 Documentation — Chapter 31. libpq – C Library”。
ODBC
PostgreSQL 的 ODBC 是基於 LGPL(GNU Lesser General Public License)協議的開源版本,可以在 PostgreSQL 官網下載,可以單擊這裡。
-
安裝驅動
yum install -y unixODBC.x86_64 yum install -y postgresql-odbc.x86_64
-
檢視驅動配置
cat /etc/odbcinst.ini # Example driver definitions # Driver from the postgresql-odbc package # Setup from the unixODBC package [PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/psqlodbcw.so Setup = /usr/lib/libodbcpsqlS.so Driver64 = /usr/lib64/psqlodbcw.so Setup64 = /usr/lib64/libodbcpsqlS.so FileUsage = 1 # Driver from the mysql-connector-odbc package # Setup from the unixODBC package [MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1
-
配置DSN
[mygpdb] Description = Test to gp Driver = PostgreSQL Database = **** Servername = ****.gpdb.rds.aliyuncs.com UserName = **** Password = **** Port = **** ReadOnly = 0
將這裡的“****”改成對應的連線資訊。
-
測試連通性
echo "select count(*) from pg_class" | isql mygpdb +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select count(*) from pg_class +---------------------+ | count | +---------------------+ | 388 | +---------------------+ SQLRowCount returns 1 1 rows fetched
到這裡ODBC即已連線上例項,應用連線ODBC即可,可以參考這裡和C#連線到PostgreSQL。
參考文件
相關文章
- Mysql同步到GreenplumMySql
- 如何將MacBook連線到電視?Mac
- 如何將 MacBook 連線到電視,怎麼把蘋果電腦連線到電視機Mac蘋果
- 如何從 Windows 上用 SSH 連線到 LinuxWindowsLinux
- 如何從 InfluxDB/OpenTSDB 無縫連線到 TDengineUX
- 華為手機如何連線到電腦
- macw教程:如何如何阻止AirPods自動連線到MacMacAI
- VNC連線,VNC如何連線WindowsVNCWindows
- 如何在linux上手動連線到網際網路Linux
- 【greenplum】greenplum叢集搭建
- sdwan如何連線
- 如何將藍芽滑鼠或觸控板連線到 iPad藍芽iPad
- Azure web 連線到Azure databaseWebDatabase
- dbForge Studio for SQL Server入門教程:如何連線到資料庫SQLServer資料庫
- BIRT 如何連線 MongoDBMongoDB
- DBeaver如何連線impala
- 2.4.7 Step 6: 連線到例項
- 如何遠端連線 遠端桌面軟體連線
- vps如何遠端連線,遠端桌面連線vps
- phpStorm 如何用 FTP,SSH 連線到虛擬機器 Linux 系統?PHPORMFTP虛擬機Linux
- 無法連線到代理伺服器win10怎麼辦_win10無法連線到代理伺服器如何解決伺服器Win10
- win10無法連線到這個網路怎麼辦_win10無法連線到這個網路如何解決Win10
- 如何除錯SSH連線除錯
- win10系統寬頻連線出現“錯誤769無法連線到指定目標”如何解決Win10
- win10突然無法連線wifi怎麼辦_win10突然無法連線到wifi如何解決Win10WiFi
- 如何遠端連線 桌面設定遠端桌面連線
- 用 gpss 從 kafka 消費資料載入到 greenplumKafka
- VNC遠端連線,如何VNC遠端連線伺服器VNC伺服器
- SQL Server如何判斷哪些會話/連線是長連線?SQLServer會話
- 內連線、左連線、右連線
- PD虛擬機器教程:如何在PD虛擬機器中設定連線隨身碟時直接連線到mac?虛擬機Mac
- 如何連線MySQL資料庫MySql資料庫
- 如何對Wormhole進行連線Worm
- 如何用Java連線Aurora MySQLJavaMySql
- 教你如何用node連線redisRedis
- 如何透過DBeaver 連線 TDengine?
- 如何管理多個 SSH 連線
- PL/SQL Developer連線到Oracle 12cSQLDeveloperOracle
- 連線到一個Office 365組 - 配置方式