Quantcast
Channel: CodeSection,代码区,数据库(综合) - CodeSec
Viewing all articles
Browse latest Browse all 6262

postgres扩展:citusDB分析处理大数据 数据库 数据库学习 数据库知识 postgres扩展

$
0
0
单机citus安装
环境
centos6.5 postgres9.5 citus5.2
安装postgres (yum安装方式:https://yum.postgresql.org/repopackages.php)
cd /opt wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-3.noarch.rpm rpm -ivh pgdg-centos95-9.5-3.noarch.rpm yum list postgresql* yum install postgresql95.x86_64 postgresql95-contrib.x86_64 postgresql95-libs.x86_64 postgresql95-server.x86_64 默认安装在/usr/pgsql-9.5
vim /etc/profile(可以修改自己用户环境变量)
#postgres
export LD_LIBRARY_PATH=/usr/pgsql-9.5/lib:$LD_LIBRARY_PATH
export PATH=/usr/pgsql-9.5/bin:$PATH
初始化数据库 service postgresql-9.5 initdb (也可以自定义目录initdb -D ) 默认在/var/lib/pgsql 目录下面
到此数据库安装完成
安装citus
https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/ (自己找citus5.2的安装rpm包) cd /opt rpm -ivh citus_95-5.2.2-1.rhel6.x86_64.rpm yum list citus* yum install citus_95.x86_64 (切换用户) sudo su - postgres export PATH=$PATH:/usr/pgsql-9.6/bin cd ~ (创建目录)mkdir -p citus/master citus/worker1 citus/worker2 (初始化主节点) initdb -D citus/master (初始化子节点) initdb -D citus/worker1 (初始化子节点) initdb -D citus/worker2 修改配置文件
echo "shared_preload_libraries = 'citus'" >> citus/master/postgresql.conf
echo "shared_preload_libraries = 'citus'" >> citus/worker1/postgresql.conf
echo "shared_preload_libraries = 'citus'" >> citus/worker2/postgresql.conf
Start the master and workers
pg_ctl -D citus/master -o "-p 9700" -l master_logfile start
pg_ctl -D citus/worker1 -o "-p 9701" -l worker1_logfile start
pg_ctl -D citus/worker2 -o "-p 9702" -l worker2_logfile start
创建扩展 这里自动在postgres数据库创建的
psql -p 9700 -c "CREATE EXTENSION citus;"
psql -p 9701 -c "CREATE EXTENSION citus;"
psql -p 9702 -c "CREATE EXTENSION citus;"
查看当前几个worker
psql -p 9700 -c “select * from master_get_active_worker_nodes();”
citus 知识点
不支持在已有数据的表上做分表 需要先再maste节点创建主表不存储数据,只有元数据 分布式列选取推荐使用hash方式还有append的方式
使用 citus步骤
在master创建主表 创建分布式列
SELECT create_distributed_table(‘tableName’, ‘column’); SELECT master_create_worker_shards(‘tableName’, 16, 1);
第二个参数是多少个分片,副本数量 从maste导入数据可以使用csv 方式导入,导出 #导出成csv
COPY (select * from tableName) to ‘/opt/a.csv’ with csv ; #导入csv
\COPY tableNameFROM ‘/opt/a.csv’ WITH (format CSV)

query测试比单个postgres提高72.95%以上 citus可以横向扩展worker 节点 和增加分布表获取更大的性能


Viewing all articles
Browse latest Browse all 6262

Trending Articles