File tree 6 files changed +44
-21
lines changed 6 files changed +44
-21
lines changed Original file line number Diff line number Diff line change 2
2
3
3
sudo bash -c " echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse"
4
4
5
- python3 main.py \
5
+ python3 main.py ${ *: 1} \
6
6
--src-resume \
7
7
--src-wait \
8
8
--src-host=127.0.0.1 \
Original file line number Diff line number Diff line change 2
2
3
3
sudo bash -c " echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse"
4
4
5
- python3.6 main.py \
5
+ python3.6 main.py ${ *: 1} \
6
6
--src-resume \
7
7
--src-wait \
8
8
--nice-pause=1 \
9
+ --log-level=info \
9
10
--src-host=127.0.0.1 \
10
11
--src-user=root \
11
12
--dst-host=127.0.0.1 \
@@ -21,3 +22,4 @@ python3.6 main.py \
21
22
# --dst-schema=db
22
23
# --dst-table=datatypes
23
24
# --csvpool-keep-files
25
+ # --log-level=info \
Original file line number Diff line number Diff line change @@ -10,6 +10,10 @@ class Event(object):
10
10
# table name
11
11
table = None
12
12
13
+ #for row in mysql_event.rows:
14
+ # event.rows.append(row['values'])
15
+ mysql_event = None
16
+
13
17
# {'id':1, 'col1':1}
14
18
row = None
15
19
@@ -22,14 +26,33 @@ class Event(object):
22
26
# ['id', 'col1', 'col2']
23
27
fieldnames = None
24
28
25
- def first (self ):
26
- if self .rows is None :
27
- return self .row
29
+ _iter = None
30
+
31
+ def __iter__ (self ):
32
+ if self .mysql_event is not None :
33
+ self ._iter = iter (self .mysql_event .rows )
34
+
35
+ elif self .row is not None :
36
+ self ._iter = iter ([self .row ])
37
+
28
38
else :
29
- return self .rows [0 ]
39
+ self ._iter = iter (self .rows )
40
+
41
+ return self
30
42
31
- def all (self ):
32
- if self .rows is None :
33
- return [self .row ]
43
+ def __next__ (self ):
44
+ item = next (self ._iter )
45
+
46
+ if self .mysql_event is not None :
47
+ return item ['values' ]
34
48
else :
35
- return self .rows
49
+ return item
50
+
51
+ def column_names (self ):
52
+ if self .mysql_event is not None :
53
+ return self .mysql_event .rows [0 ]['values' ].keys ()
54
+
55
+ if self .row is not None :
56
+ return self .row .keys ()
57
+
58
+ return self .rows [0 ].keys ()
Original file line number Diff line number Diff line change @@ -87,9 +87,7 @@ def read(self):
87
87
event = Event ()
88
88
event .schema = mysql_event .schema
89
89
event .table = mysql_event .table
90
- event .rows = []
91
- for row in mysql_event .rows :
92
- event .rows .append (row ['values' ])
90
+ event .mysql_event = mysql_event
93
91
self .notify ('WriteRowsEvent' , event = event )
94
92
95
93
if self .subscribers ('WriteRowsEvent.EachRow' ):
Original file line number Diff line number Diff line change @@ -42,12 +42,12 @@ def insert(self, event_or_events=None):
42
42
43
43
logging .debug ('class:%s insert %d rows' , __class__ , len (events ))
44
44
45
- values = []
45
+ rows = []
46
46
event_converted = None
47
47
for event in events :
48
48
event_converted = self .convert (event )
49
- for value in event_converted . all () :
50
- values .append (value )
49
+ for row in event_converted :
50
+ rows .append (row )
51
51
52
52
schema = self .dst_schema if self .dst_schema else event_converted .schema
53
53
table = self .dst_table if self .dst_table else event_converted .table
@@ -56,13 +56,13 @@ def insert(self, event_or_events=None):
56
56
sql = 'INSERT INTO `{0}`.`{1}` ({2}) VALUES' .format (
57
57
schema ,
58
58
table ,
59
- ', ' .join (map (lambda column : '`%s`' % column , values [0 ].keys ()))
59
+ ', ' .join (map (lambda column : '`%s`' % column , rows [0 ].keys ()))
60
60
)
61
- self .client .execute (sql , values )
61
+ self .client .execute (sql , rows )
62
62
except :
63
63
print ('QUERY FAILED -------------------------' )
64
64
print (sql )
65
- print (values )
65
+ print (rows )
66
66
67
67
68
68
if __name__ == '__main__' :
Original file line number Diff line number Diff line change @@ -79,7 +79,7 @@ def insert(self, event_or_events):
79
79
self .open ()
80
80
81
81
if not self .writer :
82
- self .fieldnames = sorted (events [0 ].first (). keys ())
82
+ self .fieldnames = sorted (events [0 ].column_names ())
83
83
if self .dst_schema is None :
84
84
self .dst_schema = events [0 ].schema
85
85
if self .dst_table is None :
@@ -90,7 +90,7 @@ def insert(self, event_or_events):
90
90
self .writer .writeheader ()
91
91
92
92
for event in events :
93
- for row in event . all () :
93
+ for row in event :
94
94
self .writer .writerow (self .convert (row ))
95
95
96
96
def push (self ):
You can’t perform that action at this time.
0 commit comments