PostgresSQL 每天將分割槽表加入集群環境

2021-08-29 16:37:25 字數 1749 閱讀 8377

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 = <= '$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);

eofmy $cmd_tmpl = <

execute script ( set id = 1, event node = 1, filename='$sql_file');

_eof_

eofopen 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,定時呼叫。

每天10分鐘 10 25

1.hadoop一般廣義和狹義分別指什麼 hadoop生態圈,hadoop軟體2.hadoop軟體哪三個組成 hdfs yarn mapreduce3.hdfs偽分布式的程序簡寫分別是什麼?nn,dn,snn4.yarn偽分布的程序簡寫分別是什麼?nm,rm5.nn節點是幹什麼的 記錄資料節點,維護...

每天10分鐘 10 26

1.我們學習的是sqoop1 那麼匯入匯出,是mysql到hive,是匯出嗎 匯入2.sqoop匯入到hive,能夠根據寫sql來導嗎 可以3.hive內部表和外部表什麼區別 內部表刪除的時候元資料和hdfs路徑也將被刪除,外部表只刪除元資料hdfs保留4.什麼是分割槽表 乙個表按照字段分割槽的表,...

每天10分鐘 10 19

1.當前目錄命令是什麼 pwd2.什麼是叫絕對路徑 什麼是相對路徑 絕對路徑是從根目錄下開始的,而相對路徑是從當前目錄開始的3.切換目錄,那麼切換到上一次和上一層目錄命令是什麼 cd cd 4.資料夾建立命令和及聯建立的命令引數 mkdir mkdir p5.說說你們認為建立檔案的 哪些命令 vi ...