婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何為PostgreSQL的表自動添加分區

如何為PostgreSQL的表自動添加分區

熱門標簽:漯河外呼電話系統 打電話智能電銷機器人授權 海豐有多少商家沒有地圖標注 美容工作室地圖標注 辦公外呼電話系統 合肥公司外呼系統運營商 外呼調研系統 重慶自動外呼系統定制 地圖標注和圖片名稱的區別

PostgreSQL 引進“分區”表特性,解放了之前采用“表繼承”+ “觸發器”來實現分區表的繁瑣、低效。而添加分區,都是手動執行 SQL。

演示目的:利用 python 來為 PostgreSQL 的表自動添加分區。

python版本: python3+

pip3 install psycopg2

一、配置數據源

database.ini 文件:記錄數據庫連接參數

[adsas]
host=192.168.1.201
database=adsas
user=adsas
password=adsas123
port=5432
[test]
host=192.168.1.202
database=adsas
user=adsas
password=adsas123
port=5432

二、config 腳本

config.py 文件:下面的config() 函數讀取database.ini文件并返回連接參數。config() 函數位于config.py文件中

#!/usr/bin/python3
from configparser import ConfigParser
 
def config(section ,filename='database.ini'):
  # create a parser
  parser = ConfigParser()
  # read config file
  parser.read(filename)
 
  # get section, default to postgresql
  db = {}
  if parser.has_section(section):
    params = parser.items(section)
    for param in params:
      db[param[0]] = param[1]
  else:
    raise Exception('Section {0} not found in the {1} file'.format(section, filename))
 
  return db

三、創建子表腳本

pg_add_partition_table.py 文件:其中 create_table函數是創建子表SQL。其中參數

參數名 含義
db 指向數據庫
table 主表
sub_table 正要新建的子表名
start_date 范圍分界開始值
end_date 范圍分界結束值

#!/usr/bin/python3
import psycopg2
from config import config
# example: create table tbl_game_android_step_log_2021_07 PARTITION OF tbl_game_android_step_log FOR VALUES FROM ('2021-07-01') TO ('2021-08-01');
def create_table(db, table, sub_table, start_date, end_date):
  """ create subtable in the PostgreSQL database"""
  command = "create table {0} PARTITION OF {1} FOR VALUES FROM ('{2[0]}') TO ('{2[1]}');".format(sub_table, table, (start_date, end_date)) 
  conn = None
  try:
    # read the connection parameters
    params = config(section = db)
    # connect to the PostgreSQL server
    conn = psycopg2.connect(**params)
    cur = conn.cursor()
    # create table one by one
    cur.execute(command)
    # close communication with the PostgreSQL database server
    cur.close()
    # commit the changes
    conn.commit()
  except (Exception, psycopg2.DatabaseError) as error:
    print(error)
  finally:
    if conn is not None:
      conn.close()

四、執行文件main.py

main.py:主文件;通過執行main生成分區表。

示例:

#!/usr/bin/python3
import datetime
from datetime import date
from dateutil.relativedelta import *
from pg_add_partition_table import create_table
# Get the 1st day of the next month
def get_next_month_first_day(d):
  return date(d.year + (d.month == 12), d.month == 12 or d.month + 1 , 1)
  
def create_sub_table(db, table):
  # Get current date
  d1 = date.today()
  # Get next month's date
  d2 = d1 + relativedelta(months=+1)
  # Get the 1st day of the next month;As the starting value of the partitioned table
  start_date = get_next_month_first_day(d1)
  # Gets the 1st of the next two months as the end value of the partitioned table
  end_date = get_next_month_first_day(d2)
  # get sub table name
  getmonth = datetime.datetime.strftime(d2, '%Y_%m')
  sub_table = table + '_' + getmonth
  create_table(db, table, sub_table, start_date, end_date)
	
if __name__ == '__main__':
  create_sub_table('test', 'tbl_game_android_step_log');

上面示例單獨為表tbl_game_android_step_log;創建分區;若多個表;用for語句處理

 # 多表操作
  for table in ['tbl_game_android_step_log', 'tbl_game_android_game_log','tbl_game_android_pay_log']:
    create_sub_table('test', table);

]

演示之前:

adsas=> select * from pg_partition_tree('tbl_game_android_step_log');
        relid        |    parentrelid    | isleaf | level 
-----------------------------------+---------------------------+--------+-------
 tbl_game_android_step_log     |              | f   |   0
 tbl_game_android_step_log_2020_12 | tbl_game_android_step_log | t   |   1
(2 rows)

演示之后:

adsas=> select * from pg_partition_tree('tbl_game_android_step_log');
        relid        |    parentrelid    | isleaf | level 
-----------------------------------+---------------------------+--------+-------
 tbl_game_android_step_log     |              | f   |   0
 tbl_game_android_step_log_2020_12 | tbl_game_android_step_log | t   |   1
 tbl_game_android_step_log_2021_01 | tbl_game_android_step_log | t   |   1
Partition key: RANGE (visit_time)
Partitions: tbl_game_android_step_log_2020_12 FOR VALUES FROM ('2020-12-01 00:00:00') TO ('2021-01-01 00:00:00'),
      tbl_game_android_step_log_2021_01 FOR VALUES FROM ('2021-01-01 00:00:00') TO ('2021-02-01 00:00:00')

五、加入定時任務

到此這篇關于如何為PostgreSQL的表自動添加分區的文章就介紹到這了,更多相關PostgreSQL的表添加分區內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PostgreSQL LIST、RANGE 表分區的實現方案
  • PostgreSQL 創建表分區
  • 淺析postgresql 數據庫 TimescaleDB 修改分區時間范圍
  • 利用python為PostgreSQL的表自動添加分區
  • 淺談PostgreSQL 11 新特性之默認分區
  • PostgreSQL之分區表(partitioning)
  • PostgreSQL分區表(partitioning)應用實例詳解
  • PostgreSQL教程(三):表的繼承和分區表詳解
  • 淺談PostgreSQL表分區的三種方式

標簽:晉城 衡陽 株洲 錦州 烏海 珠海 來賓 蚌埠

巨人網絡通訊聲明:本文標題《如何為PostgreSQL的表自動添加分區》,本文關鍵詞  如,何為,PostgreSQL,的,表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何為PostgreSQL的表自動添加分區》相關的同類信息!
  • 本頁收集關于如何為PostgreSQL的表自動添加分區的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲人精品午夜| 国产激情精品久久久第一区二区| 亚洲chinese男男1069| 精品一区二区久久久| 97se亚洲国产综合自在线观| 日韩你懂的在线观看| 亚洲黄网站在线观看| 国产成人免费高清| 欧美嫩在线观看| 亚洲男人天堂av| 久久成人精品无人区| 在线观看国产日韩| 亚洲视频免费在线观看| 国产精品一区二区在线观看网站| 欧美午夜不卡在线观看免费| 日本一区二区电影| 精品一区二区免费| 欧美一区二区久久久| 亚洲动漫第一页| 91黄视频在线| 亚洲精品少妇30p| 91丨九色丨尤物| 国产精品久久久久久久久久久免费看| 久久国产精品露脸对白| 欧美丰满一区二区免费视频| 一区二区三区在线观看网站| 91亚洲大成网污www| 中文字幕一区二区三| 不卡的av在线| 国产精品毛片a∨一区二区三区| 国产一区二区精品久久91| 久久免费看少妇高潮| 久久精品国产精品亚洲红杏 | 99久久婷婷国产综合精品电影| 精品欧美一区二区久久| 久久激情五月激情| 精品国精品自拍自在线| 激情都市一区二区| 久久综合国产精品| 成人激情电影免费在线观看| 中文字幕一区在线观看| 一本久久精品一区二区| 亚洲午夜久久久久中文字幕久| 欧美性极品少妇| 免费久久精品视频| 国产亚洲欧美激情| 91免费版pro下载短视频| 一区二区三区小说| 欧美一级片在线观看| 麻豆精品视频在线观看视频| 久久久久国产精品麻豆ai换脸| 成人爽a毛片一区二区免费| 国产精品国产精品国产专区不片| 99精品国产视频| 日欧美一区二区| 久久久综合九色合综国产精品| 国产不卡在线一区| 洋洋av久久久久久久一区| 欧美日韩二区三区| 国产成人av电影在线观看| 亚洲欧美一区二区不卡| 555夜色666亚洲国产免| 成人久久久精品乱码一区二区三区 | 色94色欧美sute亚洲线路一久 | 欧美大片在线观看一区二区| 国产不卡视频在线播放| 亚洲精品写真福利| 久久综合一区二区| 欧美性做爰猛烈叫床潮| 国产自产2019最新不卡| 一区二区三区四区精品在线视频| 91精品国产一区二区三区香蕉| 精品中文字幕一区二区小辣椒| 中文字幕欧美国产| 日韩视频中午一区| 91最新地址在线播放| 久久国产精品72免费观看| 亚洲国产精品v| 91精品国产一区二区三区 | 欧美日韩大陆一区二区| 国产一区二区免费视频| 亚洲成人动漫在线免费观看| 国产精品不卡视频| 久久先锋影音av鲁色资源| 欧美系列日韩一区| 97久久超碰国产精品| 国产成人综合视频| 经典一区二区三区| 亚洲18女电影在线观看| 国产精品国产三级国产普通话99| 精品福利一区二区三区免费视频| 91福利资源站| aa级大片欧美| 成人激情开心网| 成人一二三区视频| 国产专区欧美精品| 激情综合一区二区三区| 日韩中文字幕亚洲一区二区va在线| 亚洲日本va午夜在线影院| 国产日韩欧美电影| 久久精品人人做人人爽97| 日韩小视频在线观看专区| 欧美视频一区在线观看| 欧美影院一区二区三区| 91麻豆国产福利在线观看| 成人av免费网站| 99视频在线精品| 91美女精品福利| av电影在线不卡| 99久久久久免费精品国产| 99国产精品久| 色综合天天性综合| 色综合久久久久综合体| 在线视频国产一区| 欧美日韩日日摸| 日韩视频123| 久久综合九色综合97_久久久| 精品粉嫩aⅴ一区二区三区四区 | 国产99久久久精品| 成人精品视频.| 91国偷自产一区二区三区成为亚洲经典| 91麻豆免费视频| 欧美日韩你懂得| 日韩欧美激情一区| 久久久久国产精品免费免费搜索| 国产亚洲精品中文字幕| 中文字幕欧美一| 一区二区三区在线观看视频| 视频一区二区国产| 久久成人免费电影| www.日韩精品| 欧美日韩亚洲综合在线| 日韩欧美视频在线| 国产精品美女www爽爽爽| 伊人色综合久久天天| 日本亚洲一区二区| 国产成人日日夜夜| 欧美特级限制片免费在线观看| 欧美一区二区视频网站| 久久久精品一品道一区| 亚洲激情男女视频| 久久精品国产免费看久久精品| 国产精品亚洲成人| 欧洲国产伦久久久久久久| 精品少妇一区二区三区视频免付费| 国产午夜精品久久久久久免费视| 国产精品全国免费观看高清 | 成人免费视频一区| 7777精品伊人久久久大香线蕉经典版下载| 欧美成人性福生活免费看| 亚洲女同ⅹxx女同tv| 久久精品国产一区二区三 | 欧美影片第一页| 久久蜜桃av一区精品变态类天堂| 亚洲另类春色国产| 理论电影国产精品| 色婷婷综合久久久中文一区二区 | 26uuu色噜噜精品一区| 亚洲欧洲中文日韩久久av乱码| 久久精品国产第一区二区三区| 一本到不卡免费一区二区| 日韩免费视频一区| 亚洲国产日日夜夜| 成人免费av网站| 日韩视频一区二区三区在线播放| 亚洲精品日韩综合观看成人91| 久久99久久99精品免视看婷婷| 欧美网站大全在线观看| 国产精品麻豆视频| 国产一区二区三区精品欧美日韩一区二区三区 | 成人国产精品免费观看| 欧美成人一区二区三区片免费 | 中文一区在线播放| 久久精品国内一区二区三区 | 日本高清不卡一区| 欧美激情一区二区三区在线| 久久国产婷婷国产香蕉| 91精品婷婷国产综合久久| 亚洲综合精品久久| 91视频91自| 国产欧美一区二区三区在线看蜜臀 | 亚洲电影欧美电影有声小说| 99久久99久久久精品齐齐| 国产亚洲自拍一区| 精品制服美女久久| 日韩女优电影在线观看| 日韩精品视频网| 91精品国产欧美日韩| 亚洲bt欧美bt精品777| 欧美日韩视频在线第一区| 亚洲国产一区二区在线播放| 色天使色偷偷av一区二区| 国产精品国产a| 94-欧美-setu| 亚洲三级小视频| 欧美在线免费播放| 亚洲一区二区三区三| 欧美日韩aaaaa| 久久电影国产免费久久电影| 欧美一区二区视频在线观看|