@@ -30,24 +30,28 @@ def cwd(path):
30
30
os .chdir (curdir )
31
31
32
32
33
- async def insert_data (con , files , table_name , table_name_c ):
34
- while True :
35
- try :
36
- filename = files .pop ()
33
+ async def insert_data (node , files , table_name , table_name_c ):
34
+ sql = 'insert into {} values ($1)'
35
+ sql1 = sql .format (table_name )
36
+ sql2 = sql .format (table_name_c )
37
+
38
+ async with node .connect () as con :
39
+ while True :
40
+ try :
41
+ filename = files .pop ()
42
+ except IndexError :
43
+ break
44
+
37
45
print (filename )
38
- except IndexError :
39
- break
40
46
41
- with open (filename , 'r' ) as f :
42
- data = json .load (f )
47
+ with open (filename , 'r' ) as f :
48
+ data = json .load (f )
43
49
44
- if isinstance (data , dict ):
45
- if 'rounds' in data :
46
- for obj in data ['rounds' ]:
47
- sql = 'insert into {} values ($1)'
48
- for i in range (100 ):
49
- await con .execute (sql .format (table_name ), json .dumps (obj ))
50
- await con .execute (sql .format (table_name_c ), json .dumps (obj ))
50
+ if isinstance (data , dict ):
51
+ if 'rounds' in data :
52
+ for obj in data ['rounds' ]:
53
+ await con .execute (sql1 , json .dumps (obj ))
54
+ await con .execute (sql2 , json .dumps (obj ))
51
55
52
56
53
57
def main (loop ):
@@ -58,8 +62,6 @@ def main(loop):
58
62
59
63
node .safe_psql ('postgres' , 'create extension jsonbd' )
60
64
61
- connections = [node .connect () for i in range (3 )]
62
-
63
65
for name , root_dir in sources :
64
66
table_name = name
65
67
table_name_c = '%s_c' % name
@@ -68,20 +70,21 @@ def main(loop):
68
70
node .safe_psql ('postgres' , 'create table %s(a jsonb compression jsonbd)' % table_name_c )
69
71
node .safe_psql ('postgres' , 'alter table %s alter column a set storage external' % table_name )
70
72
71
- files = []
72
73
with cwd (os .path .abspath (root_dir )):
74
+ files = []
73
75
for filename in glob .iglob ('**/*.json' , recursive = True ):
74
76
if filename == 'package.json' :
75
77
continue
76
78
77
79
files .append (filename )
78
80
79
- coroutines = [insert_data (con , files , table_name , table_name_c )
80
- for con in connections ]
81
+ print (len (files ))
82
+ coroutines = [insert_data (node , files , table_name , table_name_c )
83
+ for i in range (4 )]
81
84
loop .run_until_complete (asyncio .gather (* coroutines ))
82
85
83
- print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name ))
84
- print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name_c ))
86
+ print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name ))
87
+ print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name_c ))
85
88
86
89
87
90
if __name__ == '__main__' :
0 commit comments