fluent-plugin-mysql 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/fluent-plugin-mysql.gemspec +2 -2
- data/lib/fluent/plugin/out_mysql_bulk.rb +7 -0
- data/test/plugin/test_out_mysql_bulk.rb +30 -0
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6779a8acd14cbc9c3506aad17847d6bf805b1ba5
|
|
4
|
+
data.tar.gz: b399a06594b6957f4ca308f7fb8c088bf5906835
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 53792258fcb40362c7cb913fdac21cd1c6e69db6141120c190b2eda54765542eb72259c062f5f9b10a4beff04a832715fb74e9a4cd4f2003f6931066bb763276
|
|
7
|
+
data.tar.gz: e02269391bf5bbf7ee5b3a27299583ad9b19bf08ef5f75e956567f48997c16f8cd5921a8bc7b8facb0dda24fa21418e2fe214bf6595d2d0116b13c448739563d
|
data/README.md
CHANGED
|
@@ -27,7 +27,7 @@ on_duplicate_update_keys|on duplicate key update column, comma separator
|
|
|
27
27
|
|
|
28
28
|
```
|
|
29
29
|
<match mysql.input>
|
|
30
|
-
type mysql_bulk
|
|
30
|
+
@type mysql_bulk
|
|
31
31
|
host localhost
|
|
32
32
|
database test_app_development
|
|
33
33
|
username root
|
|
@@ -68,7 +68,7 @@ INSERT INTO users (id,user_name,created_at,updated_at) VALUES (NULL,'toyama','20
|
|
|
68
68
|
|
|
69
69
|
```
|
|
70
70
|
<match mysql.input>
|
|
71
|
-
type mysql_bulk
|
|
71
|
+
@type mysql_bulk
|
|
72
72
|
host localhost
|
|
73
73
|
database test_app_development
|
|
74
74
|
username root
|
|
@@ -110,7 +110,7 @@ if duplicate id , update username and updated_at
|
|
|
110
110
|
|
|
111
111
|
```
|
|
112
112
|
<match mysql.input>
|
|
113
|
-
type mysql_bulk
|
|
113
|
+
@type mysql_bulk
|
|
114
114
|
host localhost
|
|
115
115
|
database test_app_development
|
|
116
116
|
username root
|
data/fluent-plugin-mysql.gemspec
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
Gem::Specification.new do |gem|
|
|
3
3
|
gem.name = "fluent-plugin-mysql"
|
|
4
|
-
gem.version = "0.1.
|
|
4
|
+
gem.version = "0.1.1"
|
|
5
5
|
gem.authors = ["TAGOMORI Satoshi", "Toyama Hiroshi"]
|
|
6
6
|
gem.email = ["tagomoris@gmail.com", "toyama0919@gmail.com"]
|
|
7
7
|
gem.description = %q{fluent plugin to insert mysql as json(single column) or insert statement}
|
|
8
8
|
gem.summary = %q{fluent plugin to insert mysql}
|
|
9
9
|
gem.homepage = "https://github.com/tagomoris/fluent-plugin-mysql"
|
|
10
|
-
gem.license = "
|
|
10
|
+
gem.license = "Apache-2.0"
|
|
11
11
|
|
|
12
12
|
gem.files = `git ls-files`.split($\)
|
|
13
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
|
@@ -20,6 +20,8 @@ module Fluent
|
|
|
20
20
|
:desc => <<-DESC
|
|
21
21
|
Value key names, ${time} is placeholder Time.at(time).strftime("%Y-%m-%d %H:%M:%S").
|
|
22
22
|
DESC
|
|
23
|
+
config_param :json_key_names, :string, default: nil,
|
|
24
|
+
:desc => "Key names which store data as json"
|
|
23
25
|
config_param :table, :string,
|
|
24
26
|
:desc => "Bulk insert table."
|
|
25
27
|
|
|
@@ -63,6 +65,7 @@ DESC
|
|
|
63
65
|
|
|
64
66
|
@column_names = @column_names.split(',')
|
|
65
67
|
@key_names = @key_names.nil? ? @column_names : @key_names.split(',')
|
|
68
|
+
@json_key_names = @json_key_names.split(',') if @json_key_names
|
|
66
69
|
end
|
|
67
70
|
|
|
68
71
|
def start
|
|
@@ -129,6 +132,10 @@ DESC
|
|
|
129
132
|
else
|
|
130
133
|
value = record[key].slice(0, @max_lengths[i])
|
|
131
134
|
end
|
|
135
|
+
|
|
136
|
+
if @json_key_names && @json_key_names.include?(key)
|
|
137
|
+
value = value.to_json
|
|
138
|
+
end
|
|
132
139
|
end
|
|
133
140
|
values << value
|
|
134
141
|
end
|
|
@@ -112,6 +112,18 @@ class MysqlBulkOutputTest < Test::Unit::TestCase
|
|
|
112
112
|
on_duplicate_update_keys user_name,updated_at
|
|
113
113
|
]
|
|
114
114
|
end
|
|
115
|
+
|
|
116
|
+
assert_nothing_raised(Fluent::ConfigError) do
|
|
117
|
+
d = create_driver %[
|
|
118
|
+
database test_app_development
|
|
119
|
+
username root
|
|
120
|
+
password hogehoge
|
|
121
|
+
key_names id,url,request_headers,params,created_at,updated_at
|
|
122
|
+
column_names id,url,request_headers_json,params_json,created_date,updated_date
|
|
123
|
+
json_key_names request_headers,params
|
|
124
|
+
table access
|
|
125
|
+
]
|
|
126
|
+
end
|
|
115
127
|
end
|
|
116
128
|
|
|
117
129
|
def test_variables
|
|
@@ -127,6 +139,7 @@ class MysqlBulkOutputTest < Test::Unit::TestCase
|
|
|
127
139
|
|
|
128
140
|
assert_equal ['id','user_name','created_at','updated_at'], d.instance.key_names
|
|
129
141
|
assert_equal ['id','user_name','created_at','updated_at'], d.instance.column_names
|
|
142
|
+
assert_equal nil, d.instance.json_key_names
|
|
130
143
|
assert_equal " ON DUPLICATE KEY UPDATE user_name = VALUES(user_name),updated_at = VALUES(updated_at)", d.instance.instance_variable_get(:@on_duplicate_key_update_sql)
|
|
131
144
|
|
|
132
145
|
d = create_driver %[
|
|
@@ -139,6 +152,7 @@ class MysqlBulkOutputTest < Test::Unit::TestCase
|
|
|
139
152
|
|
|
140
153
|
assert_equal ['id','user_name','created_at','updated_at'], d.instance.key_names
|
|
141
154
|
assert_equal ['id','user_name','created_at','updated_at'], d.instance.column_names
|
|
155
|
+
assert_equal nil, d.instance.json_key_names
|
|
142
156
|
assert_nil d.instance.instance_variable_get(:@on_duplicate_key_update_sql)
|
|
143
157
|
|
|
144
158
|
d = create_driver %[
|
|
@@ -152,6 +166,22 @@ class MysqlBulkOutputTest < Test::Unit::TestCase
|
|
|
152
166
|
|
|
153
167
|
assert_equal ['id','user_name','created_at','updated_at'], d.instance.key_names
|
|
154
168
|
assert_equal ['id','user','created_date','updated_date'], d.instance.column_names
|
|
169
|
+
assert_equal nil, d.instance.json_key_names
|
|
170
|
+
assert_nil d.instance.instance_variable_get(:@on_duplicate_key_update_sql)
|
|
171
|
+
|
|
172
|
+
d = create_driver %[
|
|
173
|
+
database test_app_development
|
|
174
|
+
username root
|
|
175
|
+
password hogehoge
|
|
176
|
+
key_names id,url,request_headers,params,created_at,updated_at
|
|
177
|
+
column_names id,url,request_headers_json,params_json,created_date,updated_date
|
|
178
|
+
json_key_names request_headers,params
|
|
179
|
+
table access
|
|
180
|
+
]
|
|
181
|
+
|
|
182
|
+
assert_equal ['id','url','request_headers','params','created_at','updated_at'], d.instance.key_names
|
|
183
|
+
assert_equal ['id','url','request_headers_json','params_json','created_date','updated_date'], d.instance.column_names
|
|
184
|
+
assert_equal ['request_headers','params'], d.instance.json_key_names
|
|
155
185
|
assert_nil d.instance.instance_variable_get(:@on_duplicate_key_update_sql)
|
|
156
186
|
end
|
|
157
187
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fluent-plugin-mysql
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- TAGOMORI Satoshi
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2016-
|
|
12
|
+
date: 2016-03-09 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: fluentd
|
|
@@ -103,7 +103,7 @@ files:
|
|
|
103
103
|
- test/plugin/test_out_mysql_bulk.rb
|
|
104
104
|
homepage: https://github.com/tagomoris/fluent-plugin-mysql
|
|
105
105
|
licenses:
|
|
106
|
-
-
|
|
106
|
+
- Apache-2.0
|
|
107
107
|
metadata: {}
|
|
108
108
|
post_install_message:
|
|
109
109
|
rdoc_options: []
|
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
121
121
|
version: '0'
|
|
122
122
|
requirements: []
|
|
123
123
|
rubyforge_project:
|
|
124
|
-
rubygems_version: 2.4.
|
|
124
|
+
rubygems_version: 2.4.8
|
|
125
125
|
signing_key:
|
|
126
126
|
specification_version: 4
|
|
127
127
|
summary: fluent plugin to insert mysql
|