点击上方蓝字关注我们

1
环境准备
psql -h 192.168.40.152 -p 47001 postgrescreate user kunlun_test with password 'kunlun';create database test_db with owner kunlun_test encoding utf8 template template0;\qpsql -h 192.168.40.152 -p 47001 -U kunlun_test test_db
create table sales_order(order_number INT NOT NULL AUTO_INCREMENT,customer_number INT NOT NULL,product_code INT NOT NULL,order_date DATETIME NOT NULL,entry_date DATETIME NOT NULL,order_amount DECIMAL(18,2) NOT NULL,primary key(order_number,order_date)) ;create or replace procedure generate_order_data()AS $$DECLAREv_customer_number integer;v_product_code integer;v_order_date date;v_amount integer;start_date date := to_date('2021-01-01','yyyy-mm-dd');i integer :=1;BEGINwhile i<=10000 loopv_customer_number := FLOOR(1+RANDOM()*6);v_product_code := FLOOR(1+RANDOM()*500);v_order_date := to_date('2021-01-01','yyyy-mm-dd') + CAST(FLOOR(RANDOM()*365) AS INT);v_amount := FLOOR(1000+RANDOM()*9000);INSERT INTO sales_order VALUES (i,v_customer_number,v_product_code,v_order_date,v_order_date,v_amount);commit;i := i+1;end loop;END; $$LANGUAGE plpgsql;set statement_timeout=0;call generate_order_data();test_db=> select count(*) from sales_order;count-------10000(1 row)
create table sales_order_new(order_number INT NOT NULL AUTO_INCREMENT,customer_number INT NOT NULL,product_code INT NOT NULL,order_date DATETIME NOT NULL,entry_date DATETIME NOT NULL,order_amount DECIMAL(18,2) NOT NULL,primary key(order_number,order_date)) partition by range(order_date);create table sales_order_p0 partition of sales_order_newfor values from ('2021-01-01') to ('2021-05-01');create table sales_order_p1 partition of sales_order_newfor values from ('2021-05-01') to ('2021-09-01');create table sales_order_p2 partition of sales_order_newfor values from ('2021-09-01') to ('2022-01-01');
2
准备一个Python程序kinsert.py,模拟一直运行在sales_order表上的插入应用。
import psycopg2.extrasimport timeconn = psycopg2.connect(database='test_db',user='kunlun_test',password='kunlun',host='192.168.40.152',port='47001')cursor = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)# insert sales_order tableinsert_sql = '''INSERT INTO sales_order VALUES (%s,FLOOR(1+RANDOM()*6), FLOOR(1+RANDOM()*3),to_date('2021-01-01','yyyy-mm-dd') + CAST(FLOOR(RANDOM()*365) AS INT),to_date('2021-01-01','yyyy-mm-dd') + CAST(FLOOR(RANDOM()*365) AS INT),FLOOR(1000+RANDOM()*9000));;'''#print("Press Enter to continue.")input('Press any key and Enter to continue ~!')i = 10001while (i < 20001) :cursor.execute(insert_sql,[i])conn.commit()print("order_number:",i," is inserted.")i = i+1cursor.close()conn.close()
[klbase@server-0 ~]$ python kinsert.pyPress any key and Enter to continue ~!
3
在XPanel界面进行表重分布的操作



[klbase@server-0 ~]$ python kinsert.pyPress any key and Enter to continue ~!order_number: 10001 is inserted.order_number: 10002 is inserted.order_number: 10003 is inserted.order_number: 10004 is inserted.order_number: 10005 is inserted.order_number: 10006 is inserted.order_number: 10007 is inserted.order_number: 10008 is inserted.order_number: 10009 is inserted.order_number: 10010 is inserted.order_number: 10011 is inserted.order_number: 10012 is inserted.order_number: 10013 is inserted.order_number: 10014 is inserted.order_number: 10015 is inserted.order_number: 10016 is inserted.
order_number: 10281 is inserted.order_number: 10282 is inserted.order_number: 10283 is inserted.order_number: 10284 is inserted.order_number: 10285 is inserted.order_number: 10286 is inserted.order_number: 10287 is inserted.order_number: 10288 is inserted.order_number: 10289 is inserted.order_number: 10290 is inserted.order_number: 10291 is inserted.order_number: 10292 is inserted.order_number: 10293 is inserted.order_number: 10294 is inserted.order_number: 10295 is inserted.order_number: 10296 is inserted.order_number: 10297 is inserted.Traceback (most recent call last):File "kinsert.py", line 22, in <module>cursor.execute(insert_sql,[i])File "/usr/local/lib64/python3.6/site-packages/psycopg2/extras.py", line 236, in executereturn super().execute(query, vars)psycopg2.errors.UndefinedTable: relation "sales_order" does not existLINE 1: INSERT INTO sales_order VALUES (10298,

4
检查目标表和源表的情况


test_db=> select count(*) from sales_order;count-------10297(1 row)
彩
蛋


文章转载自KunlunBase 昆仑数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




