fluent-plugin-mysql-replicator 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  ## Overview
4
4
 
5
5
  Fluentd input plugin to track insert/update/delete event from MySQL database server.
6
- Not only that, it could multiple table replication into Elasticsearch/Solr.
6
+ Not only that, it could multiple table replication into single or multi Elasticsearch/Solr.
7
7
  It's comming support replicate to another RDB/noSQL.
8
8
 
9
9
  ## Installation
@@ -14,8 +14,15 @@ gem install fluent-plugin-mysql-replicator
14
14
 
15
15
  ### td-agent gem
16
16
  /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-mysql-replicator
17
+
18
+ ### RPM
19
+ ### package availables at https://github.com/y-ken/yamabiko/releases
17
20
  `````
18
21
 
22
+ **Note:** RPM package available which does not conflict system installed Ruby or td-agent.
23
+ https://github.com/y-ken/yamabiko/releases
24
+
25
+
19
26
  ## Included plugins
20
27
 
21
28
  * Input Plugin: mysql_replicator
@@ -112,8 +119,10 @@ On syncing 300 million rows table, it will consume around 800MB of memory with r
112
119
  # Set frequency of sending bulk request to Elasticsearch node.
113
120
  flush_interval 5s
114
121
 
115
- # Queued chunks are flushed at shutdown process.
122
+ # Queued chunks are flushed at shutdown process. (recommend for more stability)
116
123
  flush_at_shutdown yes
124
+ buffer_type file
125
+ buffer_path /var/log/td-agent/buffer/mysql_replicator_elasticsearch
117
126
  </store>
118
127
  </match>
119
128
  `````
@@ -186,9 +195,9 @@ VALUES
186
195
 
187
196
  it is a sample which you have inserted row.
188
197
 
189
- | id | is_active | name | host | port | username | password | database | query | interval | primary_key | enable_delete |enable_loose_insert |enable_loose_delete |
190
- |----|-----------|--------------|-----------------|------|-----------|---------------|----------|------------------------------|----------|-------------|---------------|
191
- | 1 | 1 | mydb.mytable | 192.168.100.221 | 3306 | mysqluser | mysqlpassword | mydb | SELECT id, text from mytable; | 5 | id | 1 | 0 | 0 |
198
+ | id | is_active | name | host | port | username | password | database | query | interval | primary_key | enable_delete | enable_loose_insert | enable_loose_delete |
199
+ |----|-----------|--------------|-----------------|------|-----------|---------------|----------|------------------------------|----------|-------------|---------------|----|----|
200
+ | 1 | 1 | mydb.mytable | 192.168.100.221 | 3306 | mysqluser | mysqlpassword | mydb | SELECT id, text from mytable; | 5 | id | 1 | 0 | 0 |
192
201
 
193
202
  ### configuration
194
203
 
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "fluent-plugin-mysql-replicator"
4
- s.version = "0.3.0"
4
+ s.version = "0.3.1"
5
5
  s.authors = ["Kentaro Yoshida"]
6
6
  s.email = ["y.ken.studio@gmail.com"]
7
7
  s.homepage = "https://github.com/y-ken/fluent-plugin-mysql-replicator"
@@ -20,7 +20,6 @@ module Fluent
20
20
 
21
21
  def configure(conf)
22
22
  super
23
- @reconnect_interval = Config.time_value('10sec')
24
23
  if @tag.nil?
25
24
  raise Fluent::ConfigError, "mysql_replicator_multi: missing 'tag' parameter. Please add following line into config like 'tag replicator.${name}.${event}.${primary_key}'"
26
25
  end
@@ -243,10 +242,8 @@ module Fluent
243
242
  :stream => false,
244
243
  :cache_rows => false
245
244
  )
246
- rescue Exception => e
247
- $log.warn "mysql_replicator_multi: #{e}"
248
- sleep @reconnect_interval
249
- retry
245
+ rescue Mysql2::Error => e
246
+ raise "mysql_replicator_multi: #{e}"
250
247
  end
251
248
  end
252
249
 
@@ -263,10 +260,8 @@ module Fluent
263
260
  :stream => true,
264
261
  :cache_rows => false
265
262
  )
266
- rescue Exception => e
267
- $log.warn "mysql_replicator_multi: #{e}"
268
- sleep @reconnect_interval
269
- retry
263
+ rescue Mysql2::Error => e
264
+ raise "mysql_replicator_multi: #{e}"
270
265
  end
271
266
  end
272
267
  end
@@ -1,4 +1,5 @@
1
1
  require 'rsolr'
2
+ require 'uri'
2
3
 
3
4
  class Fluent::MysqlReplicatorSolrOutput < Fluent::BufferedOutput
4
5
  Fluent::Plugin.register_output('mysql_replicator_solr', self)
@@ -42,7 +43,7 @@ class Fluent::MysqlReplicatorSolrOutput < Fluent::BufferedOutput
42
43
  tag_parts = tag.match(@tag_format)
43
44
  id_key = tag_parts['primary_key']
44
45
  core_name = tag_parts['core_name'].nil? ? '' : tag_parts['core_name']
45
- url = "http://#{@host}:#{@port}/solr/#{core_name}"
46
+ url = "http://#{@host}:#{@port}/solr/#{URI.escape(core_name)}"
46
47
  solr_connection[url] = RSolr.connect(:url => url) if solr_connection[url].nil?
47
48
  if tag_parts['event'] == 'delete'
48
49
  solr_connection[url].delete_by_id record[id_key]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-mysql-replicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-19 00:00:00.000000000 Z
12
+ date: 2014-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake