Skip to content

Commit 06a19d0

Browse files
committed
Added support to insert/update and CSV
1 parent 10e9c15 commit 06a19d0

19 files changed

+509
-619
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,5 @@ _build
4646

4747
# Tinibird
4848
bl-*
49-
out-*
49+
out-*
50+
.e

clickhouse_mysql/clioptions.py

+23
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ class CLIOptions(Options):
9393
#
9494
# general app section
9595
#
96+
97+
'tb_host': 'https://ui.tinybird.co',
98+
'tb_token': None,
99+
96100
'config_file': '/etc/clickhouse-mysql/clickhouse-mysql.conf',
97101
'log_file': None,
98102
'log_level': None,
@@ -171,6 +175,20 @@ def options(self):
171175
#
172176
# general app section
173177
#
178+
argparser.add_argument(
179+
'--tb-host',
180+
type=str,
181+
default=self.default_options['tb_host'],
182+
help='Tinybird host'
183+
)
184+
185+
argparser.add_argument(
186+
'--tb-token',
187+
type=str,
188+
default=self.default_options['tb_token'],
189+
help='Tinybird host'
190+
)
191+
174192
argparser.add_argument(
175193
'--config-file',
176194
type=str,
@@ -508,6 +526,11 @@ def options(self):
508526
#
509527
# general app section
510528
#
529+
530+
'tb_host': args.tb_host,
531+
'tb_token': args.tb_token,
532+
533+
511534
'config_file': args.config_file,
512535
'log_file': args.log_file,
513536
'log_level': args.log_level,

clickhouse_mysql/config.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from clickhouse_mysql.writer.chwriter import CHWriter
88
from clickhouse_mysql.writer.csvwriter import CSVWriter
9-
from clickhouse_mysql.writer.chcsvwriter import CHCSVWriter
9+
from clickhouse_mysql.writer.tbcsvwriter import TBCSVWriter
1010
from clickhouse_mysql.writer.poolwriter import PoolWriter
1111
from clickhouse_mysql.writer.processwriter import ProcessWriter
1212
from clickhouse_mysql.objectbuilder import ObjectBuilder
@@ -61,6 +61,10 @@ def __init__(self):
6161
#
6262
#
6363
#
64+
'tinybird': {
65+
'host': self.options['tb_host'],
66+
'token': self.options['tb_token'],
67+
},
6468
'app': {
6569
'config_file': self.options['config_file'],
6670
'log_file': self.options['log_file'],
@@ -359,8 +363,11 @@ def writer_builder_csvpool(self):
359363
'dst_table': self.config['writer']['file']['dst_table'],
360364
'dst_table_prefix': self.config['writer']['file']['dst_table_prefix'],
361365
'next_writer_builder': ObjectBuilder(
362-
class_name=CHCSVWriter,
363-
constructor_params=self.config['writer']['clickhouse']
366+
class_name=TBCSVWriter,
367+
constructor_params={
368+
'tb_host': self.config['tinybird']['host'],
369+
'tb_token': self.config['tinybird']['token']
370+
}
364371
),
365372
'converter_builder': self.converter_builder(CONVERTER_CSV),
366373
})

clickhouse_mysql/event/event.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@ def __next__(self):
6464

6565
if self.pymysqlreplication_event is not None:
6666
# in native replication event actual data are in row['values'] dict item
67-
return item['values']
67+
if 'after_values' in item:
68+
return item['after_values']
69+
else:
70+
return item['values']
71+
6872
else:
6973
# local-kept data
7074
return item

clickhouse_mysql/reader/mysqlreader.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ def process_update_rows_event(self, mysql_event):
316316
return
317317

318318
# statistics
319-
#self.stat_write_rows_event_calc_rows_num_min_max(rows_num_per_event=len(mysql_event.rows))
319+
self.stat_write_rows_event_calc_rows_num_min_max(rows_num_per_event=len(mysql_event.rows))
320320

321321
if self.subscribers('UpdateRowsEvent'):
322322
# dispatch event to subscribers
@@ -330,7 +330,7 @@ def process_update_rows_event(self, mysql_event):
330330
event.table = mysql_event.table
331331
event.pymysqlreplication_event = mysql_event
332332

333-
#self.process_first_event(event=event)
333+
self.process_first_event(event=event)
334334
self.notify('UpdateRowsEvent', event=event)
335335

336336
# self.stat_write_rows_event_finalyse()

clickhouse_mysql/writer/chcsvwriter.py

-222
This file was deleted.

0 commit comments

Comments
 (0)