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,定时调用。
分享到:
相关推荐
通过以上步骤,我们可以在CentOS 6.4环境下成功安装并使用Postgres-XL,同时实现了基本的集群管理和高可用性配置。这些操作不仅为Postgres-XL的高效稳定运行打下了坚实的基础,也为后续的应用开发和运维工作提供了...
- **Citus扩展**:Citus是Postgres的一个分布式扩展,将单个Postgres实例转变为分布式数据库集群,支持实时分析和大规模数据处理。 3. **分布式数据库设计** - **数据分布策略**:理解哈希、范围和列表分区等方法...
分区表的结构如下所示: \d+ numbers Table "public.numbers" Column | Type| Collation | Nullable | Default | … --------+---------+-----------+----------+---------+… x | integer || not null | | ...
例如,某些类型的操作可能在分区表上不支持,或者复制过程中的延迟可能会对性能产生影响。 ###### 1.3.7 Postgres-XC的全局事务管理 全局事务管理(GTM)是Postgres-XC的一个关键组成部分,负责跨节点的事务协调。...
其丰富的功能集,如窗口函数、递归查询、分区表和强大的SQL标准支持,使其成为企业级数据库系统的理想选择。 总之,"postgres9.6 rpm包.zip"提供了在Linux环境中部署PostgreSQL 9.6的简便途径,通过使用RPM包管理和...
- **分区改进**:表分区功能进一步增强,支持范围和列表分区,以及更灵活的分区策略。 - **窗口函数优化**:增加了新的窗口函数,如 `LEAD()` 和 `LAG()`,以及在窗口函数中使用表达式的优化。 - **存储过程语言*...
- **表分区**:对于大数据量的表,可以通过分区策略提高查询效率和管理便利性。 - **窗口函数优化**:提升了窗口函数的执行效率,使得在复杂分析场景下表现更佳。 了解并掌握这些基本概念和操作,能帮助你更好地...
1. 增强的分区表:11.4版本增强了分区表功能,支持更多的分区策略,如范围和列表分区,提升了大数据处理效率。 2. 引入物化视图:物化视图可以预先计算查询结果并存储,以提高查询性能。 3. 改进的性能:包括优化的...
2. **改进的分区表**:在11.6中,分区表功能更加成熟,支持更多的数据类型和操作,使得大型数据集的管理更为灵活,有效降低了数据维护的复杂性。 3. **即时分析(Just-in-Time, JIT)编译**:此版本开始支持JIT编译...
pgAdmin是一款图形用户界面(GUI)工具,允许用户通过友好的界面来创建、管理和维护PostgreSQL数据库,包括创建数据库、表、索引、视图,执行SQL查询,以及进行用户管理等操作。对于不熟悉命令行界面的用户,pgAdmin...
2. **分区表**:新版本支持范围和列表分区,允许用户根据特定字段值将数据划分为多个子表,便于管理和优化查询性能。 3. **临时表空间**:PostgreSQL 10 支持为每个会话创建临时表空间,增强了对临时对象的管理,...
- **分区表**:对于大数据处理,可以创建分区表来优化查询性能。 - **触发器**:允许在特定事件(如插入、更新、删除)发生时执行自定义逻辑。 - **存储过程**:用户自定义的可重复使用的SQL代码块,提高代码复用和...
2. **分区表**:增强了分区表功能,支持范围和列表分区,便于管理大量数据。 3. **短事务**:优化了短事务的性能,降低了写入锁定的时间。 4. **自动统计分析**:改进了自动统计分析机制,提高了查询计划的准确性。 ...
- **可扩展性**:支持多版本并发控制(MVCC)、表分区、表空间、外部数据包装器(Foreign Data Wrappers, FDWs)和分片等特性。 ### PostgreSQL的高级特性 - **安全性**:支持基于主机的访问控制、对象级和行级...
8. **分区表** - 分区是将大表划分为更小、更易管理的部分,改善查询性能。 - 时间、范围、列表、哈希等多种分区策略。 9. **复制与集群** - 异步复制实现主从架构,保障数据安全和高可用性。 - 流复制...
- **存储与访问**:混合存储引擎支持行存和列存,多级分区表和多种索引类型如B树、位图和GiST,增强查询性能。 - **安全性**:提供标准SQL支持和SQL2003 OLAP扩展,以及扩展编程语言,如支持R语言。 **Greenplum ...
2. 分区表:对于大数据量表,可以使用分区策略提高查询效率。 3. 统计信息:定期收集统计信息,帮助优化器做出更好的执行计划。 五、复制与高可用 1. 基于日志的复制(WAL):通过流式复制实现主备节点间的实时...
3. **强大的SQL支持:** 支持标准SQL92及后续版本,包括窗口函数、递归查询、分区表等高级特性。 4. **数据类型丰富:** 包括基本类型如整数、浮点数、字符串,还有时间日期、数组、JSON、HSTORE(键值对)等复杂...
5. **分区表**:对于大数据量的表,可以使用分区技术提高查询性能。 6. **全文搜索**:PostgreSQL 8 提供了简单的全文搜索功能,可以通过 `to_tsvector` 和 `ts_match` 函数实现。 7. **复制与并行备份**:支持...