gp建表的实例
        gp 创建外部表的实例:(外部表不能建立分布键)
             CREATE EXTERNAL TABLE user_app_tag ( 
             user_id bigint, 
             tag4 int, 
             tgi text, 
             duration bigint, 
             open_time int, 
             tag_deadline int, 
             load_time text, 
             tag int) 
             LOCATION ('gpfdist://mdw:8081/000000.csv') 
             FORMAT 'CSV' ( DELIMITER ',') 
             LOG ERRORS INTO err_customer SEGMENT REJECT LIMIT 5;
      内部表带分布键的实例:(数据量大的表一定要有分布键,且要设置合理)
             CREATE TABLE user_app_tag_dis ( 

user_id bigint, 
             tag4 int, 
             tgi text, 
             duration bigint, 
             open_time int, 
             tag_deadline int, 
             load_time text, 
             tag int) 
             DISTRIBUTED BY (user_id);

加载数据流程:可以先创建外部表然后再通过 insert into 内部表 (field1,field2,...,field) select * from 外部表。
psql -h 192.168.200.140 -p 5432  -d eamp -U yg_fz
1 命令行登录数据库
有两种方式,一是直接在系统shell下执行psql命令;而是先进入psql环境,然后再连接数据库。下面分别给出实例:
(1)直接登录
执行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username为数据库用户名,dbname为要连接的数据库名,执行后提示输入密码如下:
Password for user username: (在此输入密码)
输入密码后即可进入psql环境了。
(2)切换数据库
有时候需要在psql环境下切换数据库,此时执行如下psql命令:
\c dbname username serverIP port
其中除了数据库名外,其他的参数都是可选的,如果使用默认值可以使用-作为占位符
执行这个命令后,也是提示输入密码。
2 查看帮助
psql提供了很好的在线帮助文档,总入口命令是help,输入这个命令就可以看到
vsb9=# help
You are using psql, the command-line interface to PostgreSQL.
Type:  \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
可以看到,标准SQL命令的帮助和psql特有命令的帮助是分开的。输入\?查看psql命令,会发现所有的psql命令都是以\开头,这就很容易和标准的SQL命令进行区分开来。
3 常用命令
为了便于记忆,这里把对应的mysql命令也列出来了。
(1)列出所有的数据库
mysql: show databases
psql: \l或\list
(2)切换数据库
mysql: use dbname
psql: \c dbname
(3)列出当前数据库下的数据表
mysql: show tables
psql: \d
(4)列出指定表的所有字段
mysql: show columns from table name
psql: \d tablename
(5)查看指定表的基本情况
mysql: describe tablename
psql: \d+ tablename
(6)退出登录
mysql: quit 或者\q
psql:\q
1.createdb 数据库名称
产生数据库
2.dropdb  数据库名称
删除数据库
3.CREATE USER 用户名称
创建用户
4.drop User 用户名称
删除用户
5.SELECT usename FROM pg_user;
查看系统用户信息
\du
7.SELECT version();
查看版本信息
8.psql 数据库名
打开psql交互工具
9.mydb=> \i basics.sql
\i 命令从指定的文件中读取命令。
10.COPY weather FROM '/home/user/weather.txt';
批量将文本文件中内容导入到wether表
11.SHOW search_path;
显示搜索路径
12.创建用户
CREATE USER 用户名 WITH PASSWORD '密码'
13.创建模式
CREATE SCHEMA myschema;
14.删除模式
DROP SCHEMA myschema;
15.查看搜索模式
SHOW search_path;
16.设置搜索模式
SET search_path TO myschema,public;
17.创建表空间
create tablespace 表空间名称 location '文件路径';
18.显示默认表空间
show default_tablespace;
19.设置默认表空间
set default_tablespace=表空间名称;
20.指定用户登录
psql MTPS  -u
21.显示当前系统时间、
now()
22.配置plpgsql语言
CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler
23.删除规则
DROP RULE name ON relation [ CASCADE | RESTRICT ]
输入
name
要删除的现存的规则.
relation
该规则应用的关系名字(可以有大纲修饰).
CASCADE
自动删除依赖于此规则的对象。
RESTRICT
如果有任何依赖对象,则拒绝删除此规则。这个是缺省。
24.日期格式函数
select 'P'||to_char(current_date,'YYYYMMDD')||'01'
25.产生组
Create Group 组名称
26.修改用户归属组
Alter Group 组名称 add user 用户名称
26.为组赋值权限
grant 操作 On 表名称  to group 组名称:
27.创建角色
Create Role 角色名称
28.删除角色
Drop Role 角色名称
29.获得当前postgresql版本
SELECT version();
30.在linux中执行计划任务
通过crontab执行
su root -c "psql -p 5433 -U developer MTPS -c'select test()'"
developer用户的密码存储于环境变量PGPASSWORD中。
31.查询表是否存在
select * from pg_statio_user_tables where relname='你的表名';
32.为用户复制SCHEMA权限
grant all on SCHEMA 作用域名称 to 用户名称
33.整个数据库导出
pg_dumpall -D -p 端口号 -h 服务器IP -U postgres(用户名) > /home/xiaop/all.bak
34.数据库备份恢复
psql -h 192.168.0.48 -p 5433  -U postgres
35.当前日期函数
current_date
36.返回第十条开始的5条记录
select   *   from   tabname   limit   5   offset   10;
37.为用户赋模式权限
Grant   on schema developer  to UDataHouse
38.将字符转换为日期时间
select  to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss')
39.数据库备份
pg_dumpall   -h 192.168.0.4 -p 5433 -U postgres   >/DataBack/Postgresql2010012201.dmp
如8.1以后多次输入密码
40.\dn
查看schema
41.删除schema
drop schema _clustertest cascade;
42.导出表
./pg_dump -p 端口号 -U 用户 -t 表名称 -f 备份文件位置 数据库  ;
43.字符串操作函数
select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2));
44.删除表主键
alter table 表名 drop CONSTRAINT 主键名称;
45.创建表空间
create tablespace 空间名称 location '路径'
46.查看表结构
select * from information_schema.columns
./postgres -D /usr/local/src/data
or
./pg_ctl -D /usr/local/src/data -l logfile start
47.查看数据库大小
SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize;
48.查看数据库表大小
SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize,
pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize
49.设置执行超过指定秒数的sql语句输出到日志
log_min_duration_statement = 3
50.超过一定秒数sql自动执行执行计划
shared_preload_libraries = 'auto_explain'
custom_variable_classes = 'auto_explain'
auto_explain.log_min_duration = 4s
51.数据库备份
select pg_start_backup('backup baseline');
select pg_stop_backup();
recovery.conf
restore_command='cp /opt/buxlog/%f %p'
52.重建索引
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]
INDEX
重新建立声明了的索引。
TABLE
重新建立声明的表的所有索引。如果表有个从属的"TOAST"表,那么这个表也会重新索引。
DATABASE
重建当前数据库里的所有索引。 除非在独立运行模式下,会忽略在共享系统表上的索引(见下文)。
SYSTEM
在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 另外,除了是在单主机模式下,共享的系统表也会被忽略(见下文)。
name
需要重建索引的索引,表或者数据库的名称。 表和索引名可以有模式修饰。 目前,REINDEX DATABASE 和 REINDEX SYSTEM 只能重建当前数据库的索引, 因此其参数必须匹配当前数据库的名字。
FORCE
这是一个废弃的选项,如果声明,会被忽略。
54.数据字典查看表结构
SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train';
52.查看被锁定表
SELECT pg_class.relname AS table, pg_database.datname AS database,  pid, mode, granted
FROM pg_locks, pg_class, pg_database
WHERE pg_locks.relation = pg_class.oid
AND pg_locks.database = pg_database.oid;
53.查看客户端连接情况
SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity;
54.常看数据库.conf配置
show all
55.修改数据库postgresql.conf参数
修改postgresql.conf内容
pg_ctl reload
56.回滚日志强制恢复
pg_resetxlog -f 数据库文件路径
idvalue  | remark
----------+--------
33953557 | inser
57.当前日期属于一年中第几周
select EXTRACT(week from TIMESTAMP '2010-10-22');
58.显示最近执行命令
\s
I. SQL 命令
ABORT — 退出当前事务
ALTER AGGREGATE — 修改一个聚集函数的定义
ALTER CONVERSION — 修改一个编码转换的定义
ALTER DATABASE — 修改一个数据库
ALTER DOMAIN — 改变一个域的定义
ALTER FUNCTION — 修改一个函数的定义
ALTER GROUP — 修改一个用户组
ALTER INDEX — 改变一个索引的定义
ALTER LANGUAGE — 修改一个过程语言的定义
ALTER OPERATOR — 改变一个操作符的定义
ALTER OPERATOR CLASS — 修改一个操作符表的定义
ALTER ROLE — 修改一个数据库角色
ALTER SCHEMA — 修改一个模式的定义
ALTER SEQUENCE — 更改一个序列生成器的定义
ALTER TABLE — 修改表的定义
ALTER TABLESPACE — 改变一个表空间的定义
ALTER TRIGGER — 改变一个触发器的定义
ALTER TYPE — 改变一个类型的定义
ALTER USER — 改变数据库用户帐号
ANALYZE — 收集与数据库有关的统计
BEGIN — 开始一个事务块
CHECKPOINT — 强制一个事务日志检查点
CLOSE — 关闭一个游标
CLUSTER — 根据一个索引对某个表集簇
COMMENT — 定义或者改变一个对象的评注
COMMIT — 提交当前事务
COMMIT PREPARED — 提交一个早先为两阶段提交准备好的事务
COPY — 在表和文件之间拷贝数据
CREATE AGGREGATE — 定义一个新的聚集函数
CREATE CAST — 定义一个用户定义的转换
CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器
CREATE CONVERSION — 定义一个新的的编码转换
CREATE DATABASE — 创建新数据库
CREATE DOMAIN — 定义一个新域
CREATE FUNCTION — 定义一个新函数
CREATE GROUP — 定义一个新的用户组
CREATE INDEX — 定义一个新索引
CREATE LANGUAGE — 定义一种新的过程语言
CREATE OPERATOR — 定义一个新的操作符
CREATE OPERATOR CLASS — 定义一个新的操作符表
CREATE ROLE — define a new database role
CREATE RULE — 定义一个新的重写规则
CREATE SCHEMA — 定义一个新的模式
CREATE SEQUENCE — 创建一个新的序列发生器
CREATE TABLE — 定义一个新表
CREATE TABLE AS — 从一条查询的结果中定义一个新表
CREATE TABLESPACE — 定义一个新的表空间
CREATE TRIGGER — 定义一个新的触发器
CREATE TYPE — 定义一个新的数据类型
CREATE USER — 创建一个新的数据库用户帐户
CREATE VIEW — 定义一个视图
DEALLOCATE — 删除一个准备好的查询
DECLARE — 定义一个游标
DELETE — 删除一个表中的行
DROP AGGREGATE — 删除一个用户定义的聚集函数
DROP CAST — 删除一个用户定义的类型转换
DROP CONVERSION — 删除一个用户定义的编码转换
DROP DATABASE — 删除一个数据库
DROP DOMAIN — 删除一个用户定义的域
DROP FUNCTION — 删除一个函数
DROP GROUP — 删除一个用户组
DROP INDEX — 删除一个索引
DROP LANGUAGE — 删除一个过程语言
DROP OPERATOR — 删除一个操作符
DROP OPERATOR CLASS — 删除一个操作符表
DROP ROLE — 删除一个数据库角色
DROP RULE — 删除一个重写规则
DROP SCHEMA — 删除一个模式
DROP SEQUENCE — 删除一个序列
DROP TABLE — 删除一个表
DROP TABLESPACE — 删除一个表空间
DROP TRIGGER — 删除一个触发器定义
DROP TYPE — 删除一个用户定义数据类型
DROP USER — 删除一个数据库用户帐号
DROP VIEW — 删除一个视图
END — 提交当前的事务
EXECUTE — 执行一个准备好的查询
EXPLAIN — 显示语句执行规划
FETCH — 用游标从查询中抓取行
GRANT — 定义访问权限
INSERT — 在表中创建新行
LISTEN — 监听一个通知
LOAD — 装载或重载一个共享库文件
LOCK — 明确地锁定一个表
MOVE — 重定位一个游标
NOTIFY — 生成一个通知
PREPARE — 创建一个准备好的查询
PREPARE TRANSACTION — 为当前事务做两阶段提交的准备
REINDEX — 重建索引
RELEASE SAVEPOINT — 删除一个前面定义的保存点
RESET — 把一个运行时参数值恢复为缺省值
REVOKE — 删除访问权限
ROLLBACK — 退出当前事务
ROLLBACK PREPARED — 取消一个早先为两阶段提交准备好的事务
ROLLBACK TO — 回滚到一个保存点
SAVEPOINT — 在当前事务里定义一个新的保存点
SELECT — 从表或视图中取出若干行
SELECT INTO — 从一个查询的结果中定义一个新表
SET — 改变运行时参数
SET CONSTRAINTS — 设置当前事务的约束检查模式
SET ROLE — set the current user identifier of the current session
SET SESSION AUTHORIZATION — 为当前会话设置会话用户标识符和当前用户标识符
SET TRANSACTION — 设置当前事务的特性
SHOW — 显示运行时参数的数值
START TRANSACTION — 开始一个事务块
TRUNCATE — 清空一个或者一堆表
UNLISTEN — 停止监听通知信息
UPDATE — 更新一个表中的行
VACUUM — 垃圾收集以及可选地分析一个数据库
II. 客户端应用
clusterdb — 对一个PostgreSQL数据库进行建簇
createdb — 创建一个新的 PostgreSQL 数据库
createlang — 定义一种新的 PostgreSQL 过程语言
createuser — 定义一个新的 PostgreSQL 用户帐户
dropdb — 删除一个现有 PostgreSQL 数据库
droplang — 删除一种 PostgreSQL 过程语言
dropuser — 删除一个 PostgreSQL 用户帐户
ecpg — 嵌入的 SQL C 预处理器
pg_config — 检索已安装版本的 PostgreSQL 的信息
pg_dump — 将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中
pg_dumpall — 抽出一个 PostgreSQL 数据库集群到脚本文件中
pg_restore — 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。
psql — PostgreSQL 交互终端
vacuumdb — 收集垃圾并且分析一个PostgreSQL 数据库
III. PostgreSQL 服务器应用
initdb — 创建一个新的 PostgreSQL数据库集群
ipcclean — 从失效的PostgreSQL服务器中删除共享内存和信号灯
pg_controldata — 显示一个 PostgreSQL 集群的控制信息
pg_ctl — 启动,停止和重起 PostgreSQL
pg_resetxlog — 重置一个 PostgreSQL 数据库集群的预写日志以及其它控制内容
postgres — 以单用户模式运行一个 PostgreSQL服务器
postmaster — PostgreSQL多用户数据库服务器
59.导出数据库角色
/data/pgsql/bin/pg_dumpall -p 5432 -U postgres -r >/tmp/postgres_8.3_role.bak
60.修改sequence所有者
grant all on sequence名称 to 所有者;
61.修改sequence初始值
Alter SEQUENCE  sequencename START  value;
62.查看sequence当前值
SELECT currval('sequencename');
63.查看sequence下一值
SELECT nextval('sequencename');
64.设置sequence当前值
alter SEQUENCE  sequencename  restart with  startvalue;
SELECT nextval('sequencename');
65.查询表结构
SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a
.atttypmod AS lengthvar,a.attnotnull AS notnull
FROM pg_class c,pg_attribute a,pg_type t
WHERE c.relname=表名称and  a.attnum > 0  and  a.attrelid = c.oid and a
.atttypid = t.oid
66.将查询结果直接输出到文件
在psql中
\o 文件路径
select datname,rolname from pg_database  a left outer join pg_roles b on a.datdba=b.oid ;
\o
67.查询数据库所有则
select datname,rolname from pg_database  a left outer join pg_roles b on a.datdba=b.oid ;
68.结束正在执行的事务
SELECT * from  pg_stat_activity;
select pg_cancel_backend('procpid');
60.结束session
SELECT * from  pg_stat_activity;
select  pg_terminate_backend('procpid');
61.postgresql取消转义字符功能
将postgresql.conf文件中的standard_conforming_strings设置为on
62.查询正在执行SQL
SELECT
procpid,
start,
now() - start AS lap,
current_query
FROM
(SELECT
backendid,
pg_stat_get_backend_pid(S.backendid) AS procpid,
pg_stat_get_backend_activity_start(S.backendid) AS start,
pg_stat_get_backend_activity(S.backendid) AS current_query
FROM
(SELECT pg_stat_get_backend_idset() AS backendid) AS S
) AS S
WHERE
current_query <> ''
ORDER BY
lap DESC;

greenplum的用法相关推荐

  1. Greenplum 表空间和filespace的用法

    Greenplum支持表空间,创建表空间时,需要指定filespace. postgres=# \h create tablespace; Command: CREATE TABLESPACE Des ...

  2. oom 如何避免 高并发_【转载】如何避免OOM?看Greenplum的最佳实践

    导致数据库 OOM 报错的原因可能有: 数据库节点内存不足 操作系统内存相关的内核参数配置不当 数据倾斜,导致某些查询时,某个 SEGMENT 需要申请的内存超大 查询倾斜,例如某些聚合.窗口函数的分 ...

  3. 《Greenplum企业应用实战》一2.3 畅游Greenplum

    本节书摘来自华章出版社<Greenplum企业应用实战>一书中的第2章,第2.3节,作者 何勇 陈晓峰,更多章节内容可以访问云栖社区"华章计算机"公众号查看 2.3 畅 ...

  4. Greenplum 2000亿 近似度查询 性能 以及注意事项

    greenplum和PostgreSQL一样,都是通过pg_trgm来支持近似度查询的. 原理是将字符串前加2空格,末尾加1空格,然后按照3个连续的字符串为一组,打散成多个字符串.然后计算字符串的重复 ...

  5. Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦

    Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦 作者 digoal 日期 2016-10-11 标签 Greenplum , PostgreSQL , ...

  6. 【SQL编程】Greenplum 数据库通过 timestamp 类型字段值实现数据的(日期时段筛选+时间时段筛选)跨天时段及不跨天时段SQL详情

    why 最近在开发数据中台项目,其他平台的部分业务要迁移到中台实现,其他平台使用的数据库是 MySQL.Oracle 而中台使用的是 Greenplum 数据库,各个数据库都有各自的函数和字段类型,以 ...

  7. greenplum列存

    Greenplum既支持行存储,也支持列存储. 行存储优劣分析 Greenplum行存储(堆表)的优势 数据顺序写入BLOCK中,持续写入的情况下,一条记录命中在一个块中,IO开销相对比较小,速度较快 ...

  8. Greenplum 6.9 资源组中文文档

    本文更新版本:http://www.200yi.com/ff_internal/wiki.php?id=wiki:Database:Greenplum:资源管理:Greenplum%206.9%20资 ...

  9. GreenPlum 安装

    GreenPlum 安装 1. Greenplum数据库简介 Greenplum是基于开源PostgreSQL的分布式数据库,采用shared-nothing架构,即主机.操作系统.内存.存储都是每台 ...

最新文章

  1. 判断输入是否为中文的函数
  2. CVS/SVN 托管服务
  3. python自学步骤-怎么自学python,大概要多久?
  4. 自定义Adapter中实现startActivityForResult的分析
  5. Ext JS 4 Beta 3 今天可以下载了
  6. 阿里云天池发布完整开源数据集!实测可下!
  7. 社交网络图中结点的“重要性”计算 (30 分)【最高效解法】
  8. paddlenlp 任务清单 中文分词、中文纠错、文本相似度、情感分析、词性标注等一键
  9. Dubbo下一站:Apache顶级项目
  10. C#中的深度学习:Keras.NET中的硬币识别,第一部分
  11. 记一次 GitHub 出现 ^M 符号的解决办法
  12. Python中类和对象的概念,面向对象编程
  13. 改完计算机名自动重启 vbs,ghost后自动修改IP和计算机名的VBS脚本
  14. paip.提升开发效率之查询界面
  15. 发票分类代码地区代码列表
  16. Java实现家庭账户收支记录表
  17. 香港公司章程中英文样本
  18. windows10中最强大王爽汇编语言学习环境
  19. 计算机网络顺口溜,一到十的顺口溜祝福语
  20. 福特汉姆大学计算机科学专业,福特汉姆大学计算机研究生

热门文章

  1. WIN10 DOS命令
  2. oppok3如何刷机_[oppok3刷机教程]oppok3怎么刷机
  3. UVa 1645 - Count(递推)
  4. Java课后题第十三章:13.4(显示日历)
  5. 十万部冷知识:“沙特”为什么能赢“阿根廷”
  6. 【训练日记】20161028
  7. c语言中单词的作用与形式,C语言基础教程:单词的用法与规则
  8. Tetgen软件学习和使用
  9. 2015年8月25号申请入驻一点资讯自媒体平台
  10. Kettle基本使用(三) —— 转换的使用