欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 如何為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的表自動添加分區的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久久久国产精品人| 精品一区二区综合| 99久久精品99国产精品| 亚洲黄色网址大全| 久久久久久99精品| 免费成人av在线播放| 久久久老熟女一区二区三区91| 欧美亚洲一区三区| 一区二区三区在线免费| 99精品久久99久久久久| 色欲综合视频天天天| 亚洲视频在线观看三级| 99re热这里只有精品免费视频| www.av视频| 亚洲女人小视频在线观看| 99精品欧美一区二区三区综合在线| 一级黄色片日本| 国产精品久久久久久久久动漫| 国产91在线观看| 色综合天天综合狠狠| 亚洲三级理论片| 中文字幕乱妇无码av在线| 欧美日韩一区久久| 五月天欧美精品| 免费看污片网站| 久久精品在线免费观看| 国产91精品久久久久久久网曝门 | 精品黑人一区二区三区观看时间| 3atv在线一区二区三区| 美女任你摸久久| 黄色片在线观看免费| 国产亚洲va综合人人澡精品| 国产suv一区二区三区88区| 色综合久久中文综合久久97| 亚洲女人****多毛耸耸8| 亚洲熟女一区二区| 精品成人a区在线观看| 国产寡妇亲子伦一区二区| 色综合色综合色综合 | 国产精品国产三级国产a| a级高清视频欧美日韩| 欧美日韩免费高清一区色橹橹 | 欧美成人在线直播| 国产激情一区二区三区| 91九色最新地址| 日韩精品电影在线| 日韩亚洲欧美中文字幕| 一区二区三区精密机械公司| 男人的天堂影院| 国产欧美一区在线| 91麻豆蜜桃一区二区三区| 欧美不卡在线视频| 成人一区在线看| 91精品国产色综合久久不卡电影 | 久久久精品人妻一区二区三区| 777午夜精品视频在线播放| 精品亚洲成a人| 在线免费观看日本欧美| 日av在线不卡| 一本大道久久精品懂色aⅴ| 日本亚洲欧美天堂免费| 人妻久久一区二区| 日韩精品视频网| 99久久99久久精品国产| 天天色天天操综合| 午夜精品一区二区三级视频| 天天影视网天天综合色在线播放| 亚洲女人久久久| 奇米影视一区二区三区| 麻豆精品一区二区三区视频| 日本不卡不码高清免费观看| 色综合天天综合网天天狠天天| 日本vs亚洲vs韩国一区三区二区| 69av视频在线| 精品亚洲国产成人av制服丝袜 | 色综合久久综合网欧美综合网| 日韩av二区在线播放| 国产成人无码aa精品一区| 蜜乳av一区二区三区| 在线观看成人免费视频| 激情综合网av| 538prom精品视频线放| 午夜欧美在线一二页| 无码人中文字幕| 蜜臀av一区二区| 老妇女50岁三级| 国产在线观看一区二区| 欧美电影在线免费观看| 成人动漫精品一区二区| 久久亚洲一级片| 成人精品在线观看视频| 一区二区三区在线视频免费观看| 国产精品1区2区3区4区| 秋霞影院一区二区| 欧美美女一区二区在线观看| 99视频在线观看一区三区| 国产日韩精品一区二区浪潮av| 亚洲第一黄色网址| 亚洲二区在线观看| 91九色02白丝porn| 成人av资源在线观看| 国产三级精品在线| 国产综合精品在线| 免费一级片91| 制服丝袜中文字幕一区| 国产成人精品综合久久久久99 | 国产1区2区3区4区| 国产一级精品在线| 欧美精品一区二区三区四区| 中文乱码人妻一区二区三区视频| 一区二区三区欧美| 欧洲一区二区三区在线| www.综合网.com| 国产精品美女久久久久aⅴ国产馆| 少妇无套高潮一二三区| 美女视频黄免费的久久| 欧美一区二区成人| 艳妇乳肉豪妇荡乳xxx| 亚洲一区二区黄色| 欧美剧在线免费观看网站| 色诱av手机版| 亚洲国产人成综合网站| 女同毛片一区二区三区| 精品在线一区二区三区| 2022国产精品视频| 91久久久久久久久久久久久久| 久久电影网站中文字幕| 欧美亚洲高清一区二区三区不卡| 99精品视频一区| 国产午夜亚洲精品羞羞网站| 欧美一级片在线免费观看| 亚洲国产欧美另类丝袜| 久久嫩草精品久久久久| aaaaa黄色片| 一区二区三区成人| 欧美视频在线一区| 91麻豆swag| 亚洲成人一二三| 欧美一级片免费看| 国产中年熟女高潮大集合| 激情综合网av| 国产精品久久久久影院色老大| 紧缚奴在线一区二区三区| 欧美v日韩v国产v| 五月天精品视频| 国产精品一区免费在线观看| 欧美国产精品久久| 日本韩国一区二区三区视频| 日韩毛片精品高清免费| 51午夜精品国产| 一本久道久久综合中文字幕 | 欧洲国产伦久久久久久久| 激情伊人五月天久久综合| 国产午夜精品一区二区三区嫩草| 成人av在线播放网站| 亚洲欧洲综合另类| 欧美日韩电影在线| 丰满少妇一区二区三区| 激情六月婷婷久久| 国产精品另类一区| 欧美日韩一区二区在线视频| 国产白嫩美女无套久久| 国产精品亚洲午夜一区二区三区 | 久久久久无码国产精品一区李宗瑞 | 日韩和欧美一区二区| 久久久久久一二三区| 成熟的女同志hd| 国产污在线观看| 精品无人码麻豆乱码1区2区 | 欧美系列在线观看| 丰满少妇一区二区| 北岛玲一区二区三区四区| 亚洲成人动漫av| 久久九九全国免费| 亚洲在线观看免费视频| 99re视频这里只有精品| 亚洲第四色夜色| 久久色在线观看| 欧美色大人视频| 人人妻人人澡人人爽| av在线这里只有精品| 免费在线成人网| 亚洲人成网站精品片在线观看| 欧美一区二区三区公司| www.毛片com| 无码人妻aⅴ一区二区三区| 国产精品18久久久久久久久| 亚洲国产欧美在线人成| 国产日韩精品一区二区三区| 欧美日韩卡一卡二| 任你操精品视频| 亚洲少妇18p| 成人免费黄色在线| 老司机精品视频一区二区三区| 亚洲日韩欧美一区二区在线| 日韩精品一区二区三区视频播放 | 小早川怜子一区二区的演员表| 91九色蝌蚪porny| 成人永久aaa| 久久国产精品72免费观看|