postgres扩展:citusDB分析处理大数据

单机citus安装
环境
  • centos6.5
  • postgres9.5
  • citus5.2
安装postgres (yum安装方式:https://yum.postgresql.org/repopackages.php)
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 节点 和增加分布表获取更大的性能

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值