oushudb笔记
1.启动 HDFS:start-dfs.sh
2.停止 HDFS:stop-dfs.sh
3.启动 OushuDB 集群:hawq start cluster -a --with_magma #(含 Magma 服务)
也可分别启动 master 和 segment
hawq start master #启动 master
master hawq start segment #启动 segment
4.停止或重启 OushuDB 集群:hawq stop cluster -a --with_magma #(含 Magma 服务)
hawq restart cluster #重启 OushuDB 集群
hawq stop cluster #停止 OushuDB 集群
也可以分别操作 master 和 segment
hawq restart master #重启本机的 OushuDB master
hawq restartt segment #重启本机的 OushuDB segment
hawq stop master #停止本机 OushuDB master
hawq stop segment #停止本机 OushuDB segment
5.hdfs dfsadmin -report
6.登录数据库:psql -d postgres
\q #登出
7.创建数据库:create database testdb;
create database dbnew template postgres;(用 postgres 模板创建库)
8.连接数据库:\c testdb
9.创建表:create table foo(id int,name varchar);
显示表\d
10.往表里插入数据:insert into foo values(1,'hawq'),(2,'hdfs');
11.查询表里的数据:select * from foo;
删除表里的数据:delete from foo;
删除表:drop database testdb;
12.查看查询执行情况
\timing on
SQL 语句
\timing off # 关闭时间输出
13.使用 explain 语句可以显示出查询计划:test=# explain select count(*) from foo;
QUERY PLAN
14.\l 查看数据库清单
15.指定 ORC 格式建表:create table test_orc(i int) with (appendonly=true, orientation=orc); # 在
postgres 数据库中创建 ORC 格式表
16.\d 显示当前库的表清单
17.\dn 查看 schema 模式清单
18.检查集群可用性:test=# select * from gp_segment_configuration;
19.检查集群节点状态历史 test=# select * from gp_configuration_history;
20.检查资源队列定义 test=# select * from pg_resqueue;
21.检查资源队列状态 test=# select * from pg_resqueue_status;
22.常见状态监控命令:命令行检测 hawq state
23.SQL 检测 est=# select * from gp_segment_configuration;
24.数据库连接数检查 test=# select count(1) from pg_stat_activity;count
select count(1) from pg_stat_activity where current_query<>'' and procpid <> pg_backend_pid();
count
25.==================数据库备份================
1.通过 gpfdist 外部表导入数据
2.通过 gpfdist 外部表导出数据
3.hdfs 外部表导入数据
4.hdfs 外部表导出数据
5.使用 COPY 命令导入导出数据(COPY TO 表内容至文件,COPY FROM 文件至表内容)
6.使用 pg_dump 和 pg_restore
查看数据库大小:
test=# SELECT sodddatsize FROM hawq_toolkit.hawq_size_of_database WHERE sodddatname=' mydb';
26.=================COPY===============
COPY (SELECT * FROM country) TO 'list_countires.copy';
COPY customers to stdout(delimiter '|') #拷贝表至控制台
COPY customers TO '/database/data/test_data.copy' (DELIMITTER ' '); #拷贝表至文件
COPY customers FROM 'database/data/test_data.popy' (DELIMITER ' '); #从文件拷贝至表
COPY (select * from customers where name like 'A%') TO '/datga/test_data.copy'; #导出查询结果至文件
COPY customers TO PROGRAM 'gzip > /data/test_data.copy.gz';#导出时压缩
COPY customers(col1,col2) TO '/data/test_data.copy' DELIMITER ' ';导出部分列
27.=================pg_dump&pg_restore==================
适合非常小量的数据备份和恢复
pg_dump -Ft -f mydb.tar mydb
pg_dump -Fc -Z3 -f mydb.dump mydb
pg_restore -d new_db mydb.dump
28.=================gpfdist 外部表导入=============
hawq load 命令行工具,是对 gpfdist 外部表的一个封装
29.=================JDBC 连接 OushuDB============
1.加载驱动程序:
Class.forName("com.postgresql.Driver");
2.获得数据库连接:
DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","ChangLei","Password");
3.创建 StatementlPreparedStatement 对象:
conn.createStatement();
conn.prepareStatement(sql);
完整示例:
public static Connection getConn(){
Connection conn null;
try {
Class. forName ("org. postgresql. Driver");
String url = "jdbc: postgresql://localhost:5432/postgres";
try{
conn = DriverManager. getConnection (url, "ChangLei", "");
}
catch (SQLException e){
e. printstackTrace ();
}
}
catch (ClassNotFoundException e){
e. printstackTrace ();
}
return conn;
}
30.======================打印输出数据=======================
public static void main(String[] args){
Connection conn-getConn();
string sql-"deletefrom department where d_id-101";
try {
Statement stmt = conn.createstatement();
//准备 Statement
int rs = stmt.executeUpdate();
//执行 sq1 操作,获取受影响行数
catch (SQLException e){
e.printStackTrace();
}
if(rs > 0){
return true;
//如果受影响行数超过 1 行,则认为操作成功
}
return false;
//默认返回失败,只有受影响函数大于 0 时才返回 true
/实际环境中并不一定必须要受影响行数大于 0 才算执行成功,需根据实际情况判断,这里的方法只是例子/
}