`
lovejuan1314
  • 浏览: 342695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PostgresSQL 每天将分区表加入集群环境

阅读更多
1.编写脚本AddTableToPartition.sh
该脚本每天自动生成两个文件,一个是数据库建表以及规则的DDL脚本
一个是调用slony集群命令slonik的脚本

#!/usr/bin/perl -w
#
#
use strict;
use POSIX qw(strftime);

$| = 1;


my $tk = time;
my $date = strftime "%Y%m%d", localtime($tk);
my $date_2 = strftime "%Y-%m-%d", localtime($tk);

my $sql_file = 'CreateTable.sql';
my $cmd_file = 'slonik.sh';

my $SQL_TMPL = <<EOF;
------Create table
CREATE TABLE views_$date
(
   CHECK (crdate >= '$date_2'::date AND crdate < ('$date_2'::date + 1))
) INHERITS (views)
WITHOUT OIDS;
ALTER TABLE views_$date ADD PRIMARY KEY (id);
ALTER TABLE views_$date OWNER TO slony;
-------Create Rule
CREATE OR REPLACE RULE view_rule_$date AS
    ON INSERT TO views
   WHERE new.crdate >= '$date_2'::date AND new.crdate < ('$date_2'::date + 1) DO INSTEAD  INSERT INTO views_$date (crdate, ad_id, client_ip, fb_uid, bebo_uid, earn_id, referer, agent, ms_uid, hi5_uid)
  VALUES (new.crdate, new.ad_id, new.client_ip, new.fb_uid, new.bebo_uid, new.earn_id, new.referer, new.agent, new.ms_uid, new.hi5_uid);
select "_BeboFace".replicate_partition((SELECT COALESCE(MAX(tab_id), 0) + 1 FROM "_BeboFace".sl_table), 'public'::text, 'views_$date'::text, NULL::text, 'Views Partition for $date'::text);

EOF

my $CMD_TMPL = <<EOF;
#!/bin/sh
slonik  <<_EOF_
include <data.nfo>
execute script ( set id = 1, event node = 1, filename='$sql_file');
_EOF_

EOF

open F,">$sql_file" or die "Can't open file $sql_file: $!";
print F $SQL_TMPL;
close F;

open F,">$cmd_file" or die "Can't open file $cmd_file: $!";
print F $CMD_TMPL;
close F;

#my $res = `$cmd_file`;
#print "$res";



2,生成脚本后,将执行slonik脚本的命令加入crontab,定时调用。
分享到:
评论

相关推荐

    Postgres-XL安装使用说明

    通过以上步骤,我们可以在CentOS 6.4环境下成功安装并使用Postgres-XL,同时实现了基本的集群管理和高可用性配置。这些操作不仅为Postgres-XL的高效稳定运行打下了坚实的基础,也为后续的应用开发和运维工作提供了...

    postgres分布式数据库学习资料

    - **Citus扩展**:Citus是Postgres的一个分布式扩展,将单个Postgres实例转变为分布式数据库集群,支持实时分析和大规模数据处理。 3. **分布式数据库设计** - **数据分布策略**:理解哈希、范围和列表分区等方法...

    藏经阁-Major Features_ Postgres 10.pdf

    分区表的结构如下所示: \d+ numbers Table "public.numbers" Column | Type| Collation | Nullable | Default | … --------+---------+-----------+----------+---------+… x | integer || not null | | ...

    Postgres-XC Concept, Implementation and Achievements

    例如,某些类型的操作可能在分区表上不支持,或者复制过程中的延迟可能会对性能产生影响。 ###### 1.3.7 Postgres-XC的全局事务管理 全局事务管理(GTM)是Postgres-XC的一个关键组成部分,负责跨节点的事务协调。...

    postgres9.6 rpm包.zip

    其丰富的功能集,如窗口函数、递归查询、分区表和强大的SQL标准支持,使其成为企业级数据库系统的理想选择。 总之,"postgres9.6 rpm包.zip"提供了在Linux环境中部署PostgreSQL 9.6的简便途径,通过使用RPM包管理和...

    pg11rpm.zip

    - **分区改进**:表分区功能进一步增强,支持范围和列表分区,以及更灵活的分区策略。 - **窗口函数优化**:增加了新的窗口函数,如 `LEAD()` 和 `LAG()`,以及在窗口函数中使用表达式的优化。 - **存储过程语言*...

    postgresql-10.5-1-windows-x64-binaries.zip

    - **表分区**:对于大数据量的表,可以通过分区策略提高查询效率和管理便利性。 - **窗口函数优化**:提升了窗口函数的执行效率,使得在复杂分析场景下表现更佳。 了解并掌握这些基本概念和操作,能帮助你更好地...

    postgresql-11.4.tar.gz

    1. 增强的分区表:11.4版本增强了分区表功能,支持更多的分区策略,如范围和列表分区,提升了大数据处理效率。 2. 引入物化视图:物化视图可以预先计算查询结果并存储,以提高查询性能。 3. 改进的性能:包括优化的...

    pgsql安装记录中所需11.6版本

    2. **改进的分区表**:在11.6中,分区表功能更加成熟,支持更多的数据类型和操作,使得大型数据集的管理更为灵活,有效降低了数据维护的复杂性。 3. **即时分析(Just-in-Time, JIT)编译**:此版本开始支持JIT编译...

    postgresql-9.6.1-1-windows-x64

    pgAdmin是一款图形用户界面(GUI)工具,允许用户通过友好的界面来创建、管理和维护PostgreSQL数据库,包括创建数据库、表、索引、视图,执行SQL查询,以及进行用户管理等操作。对于不熟悉命令行界面的用户,pgAdmin...

    Postgresql-10安装包

    2. **分区表**:新版本支持范围和列表分区,允许用户根据特定字段值将数据划分为多个子表,便于管理和优化查询性能。 3. **临时表空间**:PostgreSQL 10 支持为每个会话创建临时表空间,增强了对临时对象的管理,...

    postgreSQL window 终端

    - **分区表**:对于大数据处理,可以创建分区表来优化查询性能。 - **触发器**:允许在特定事件(如插入、更新、删除)发生时执行自定义逻辑。 - **存储过程**:用户自定义的可重复使用的SQL代码块,提高代码复用和...

    PostgreSQL 10.1中文手册-高清-非扫描版-文字可复制

    2. **分区表**:增强了分区表功能,支持范围和列表分区,便于管理大量数据。 3. **短事务**:优化了短事务的性能,降低了写入锁定的时间。 4. **自动统计分析**:改进了自动统计分析机制,提高了查询计划的准确性。 ...

    PostgreSQL 数据库系统 45页介绍.pdf

    - **可扩展性**:支持多版本并发控制(MVCC)、表分区、表空间、外部数据包装器(Foreign Data Wrappers, FDWs)和分片等特性。 ### PostgreSQL的高级特性 - **安全性**:支持基于主机的访问控制、对象级和行级...

    关于postgresql、Python100道题

    8. **分区表** - 分区是将大表划分为更小、更易管理的部分,改善查询性能。 - 时间、范围、列表、哈希等多种分区策略。 9. **复制与集群** - 异步复制实现主从架构,保障数据安全和高可用性。 - 流复制...

    Greenplum技术深入介绍及产品规划.pptx

    - **存储与访问**:混合存储引擎支持行存和列存,多级分区表和多种索引类型如B树、位图和GiST,增强查询性能。 - **安全性**:提供标准SQL支持和SQL2003 OLAP扩展,以及扩展编程语言,如支持R语言。 **Greenplum ...

    PostgreSQL2

    2. 分区表:对于大数据量表,可以使用分区策略提高查询效率。 3. 统计信息:定期收集统计信息,帮助优化器做出更好的执行计划。 五、复制与高可用 1. 基于日志的复制(WAL):通过流式复制实现主备节点间的实时...

    postgresql-10.12-1-linux-x64-binaries.tar.gz

    3. **强大的SQL支持:** 支持标准SQL92及后续版本,包括窗口函数、递归查询、分区表等高级特性。 4. **数据类型丰富:** 包括基本类型如整数、浮点数、字符串,还有时间日期、数组、JSON、HSTORE(键值对)等复杂...

    PostgreSQL8中文件手册.rar

    5. **分区表**:对于大数据量的表,可以使用分区技术提高查询性能。 6. **全文搜索**:PostgreSQL 8 提供了简单的全文搜索功能,可以通过 `to_tsvector` 和 `ts_match` 函数实现。 7. **复制与并行备份**:支持...

Global site tag (gtag.js) - Google Analytics