- pg操作手册:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
- psql命令
:https://ywnz.com/linux/psql/
- 线上sql已经开发完成
- 测试数据库环境搭建完成
- ods表结构:从源库导入
- 中间表表结构:从线上pg库导入
- 保留用户标签需要的源表和数仓中间表:
文档底部列出用户标签的相关的源表和中间表清单:
- 只导表数据,全量抽取,抽取前清空数据
supress_data: false supress_ddl: true force_truncate: true
开发负责的表均替换成正式命名的表:
tag_user_temp
tag_member_temp
tag_user
中间表:f_order_item,d_user,f_user_list有调整(删除跟用户标签取值不相关的源表),其余中间表etl脚本与线上一致。
etl脚本需要单独从git_lab:bi_etl_dev/etl
导到测试服务器。
- tag_user表:1 会员属性的标签全量更新。2 普通用户的标签必须增量更新
- 其余中间表全量更新。
测试调度任务脚本mysql2udw_dev.sh:
/data/scripts/mysql2udw_dev.sh源数据抽取配置文件yaml:
/home/hjmrunning/bi_etl_dev/ods_mysql2udw/
维度表:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_demension事实表:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_fact
git_lab:bi_etl_dev/mysql2udw_dev.sh >> 10.10.184.217:/data/scripts/ 维度表2张: d_product d_user 路径: git_lab:bi_etl_dev/etl >> 10.10.184.217:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_demension/ 事实表3张: f_user_list f_order_itme f_app_log_item 路径: git_lab:bi_etl_dev/etl/ >> 10.10.184.217:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_fact/
mysql2udw -v -f /home/hjmrunning/bi_etl_dev/ods_mysql2udw/h_goods.yaml
/usr/bin/psql -U admin -d ahaschool_udw -h 127.0.0.1 -p 5432 passwd: WZgNV0Pcp0
nohup /data/scripts/mysql2udw_dev.sh >> /data/logs/cron_day.log 2>&1 &
- IP:10.10.184.217
- 用户名:hjmrunning
- 通过dev:120.132.70.125 跳转
ssh hjmrunning@120.132.70.125 ssh hjmrunning@10.10.184.217
host:10.10.82.107 database:hjm_dev password:hjm_dev
数据库: 数据库用户名:admin 密码:WZgNV0Pcp0 主机:10.10.184.217 端口:5432 数据库:postgres
步骤一:本地:
scp -r /Users/cheney/git_work/bi_etl_product/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev/
步骤二:dev120.132.70.125:
scp -r /home/hjmrunning/bi_etl_dev/* hjmrunning@10.10.184.217:/home/hjmrunning/bi_etl_dev/
scp hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev2/ scp -r /home/hjmrunning/bi_etl_dev/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev2/
登录控制台:psql postgres 退出: \q
- 命令行连接数据库控制台:
psql -h 127.0.0.1 -d ahaschool_udw -U admin psql -h 10.10.184.217 -d ahaschool_udw -U admin
- 查询所连接数据库的IP地址与端口
SELECT inet_server_addr(), inet_server_port();
## 4.1. 创建pg数据库
- 连接:psql postgres
这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。
- 第一件事是使用\password命令,为postgres用户设置一个密码:
\password postgres
- 第二件事是创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:
CREATE USER admin WITH PASSWORD 'WZgNV0Pcp0';
- 第三件事是创建用户数据库,这里为exampledb,并指定所有者为dbuser:
create database ahaschool_udw owner admin;
- 第四件事是将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:
GRANT ALL PRIVILEGES ON DATABASE ahaschool_udw to admin;
- 查看pg服务器版本: psql --version
停止服务: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log stop 启动服务: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log start 查看数据库状态: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log status
- 卸载的话,直接删除/data/下的postgresql文件夹
- 然后把/etc/profile文件里的,postgresql的export HOME注释掉就可以了
- 源码安装方式:
wget https://ftp.postgresql.org/pub/source/v8.4.20/postgresql-8.4.20.tar.gz
scp -r postgresql-8.4.20.tar.gz hjmrunning@120.132.70.125:/home/hjmrunning/ scp -r /home/hjmrunning/postgresql-8.4.20.tar.gz hjmrunning@10.10.184.217:/data/
tar -zxvf postgresql-8.4.20.tar.gz /data/
- 指定安装路径
指定安装路径:
./configure --help --prefix=dir可以指定安装目录 ./configure --prefix=/data/postgresql
执行make,从Makefile中读取指令,编译源码
make
执行make install,将软件安装至指定目录
make install 显示:PostgreSQL installation complete. 安装成功
mkdir /data/postgresql/data
初始化数据库并生成:data/postgres/data/postgresql.conf等pg等配置文件
/data/postgresql/bin/initdb -D /data/postgresql/data
listen_addresses配置监听地址范围,改为*则为所有: listen_addresses = '*' port = 5432
vim /data/postgresql/data/pg_hba.conf
TYPE | DATABASE | USER | ADDRES | METHOD |
---|---|---|---|---|
host | all | all | 0.0.0.0/0 | trust |
需要所有IP都可以访问则对应为0.0.0.0/0
chkconfig --add postgresql
报错:
postgres cannot access the server configuration file "/data/postgresql/data/postgresql.conf": No such file or directory
- 原因分析:未初始化数据库
查看指定文件路径
sudo find / -name postgresql.conf