fluent-plugin-mysql 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +15 -0
- data/README.md +84 -1
- data/fluent-plugin-mysql.gemspec +1 -1
- data/lib/fluent/plugin/out_mysql_bulk.rb +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46b2ab27b2b88e54ba4f7ca82307f817d62ec94e
|
4
|
+
data.tar.gz: 402da207e1091d937b39c8e6d64d19f7b44183a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f32a22df72c4b9bb20167e3cf0f9b803c04b579185675fe7820face0ddb4bfe00d7c97dfc43500d1979ee07fd6b181deb055136ea4422b295c75f1515840a768
|
7
|
+
data.tar.gz: 32d688f19e937d51943db69c85e643955810d160d02f4e2490911efb41a60833e9f3d239816af4af824a5a5d918d8bcb33c58f17745d69794e4a8da70539f66d
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
# fluent-plugin-mysql, a plugin for [Fluentd](http://fluentd.org)
|
2
|
+
# fluent-plugin-mysql, a plugin for [Fluentd](http://fluentd.org) [![Build Status](https://secure.travis-ci.org/tagomoris/fluent-plugin-mysql.png?branch=master)](http://travis-ci.org/tagomoris/fluent-plugin-mysql)
|
3
3
|
|
4
4
|
fluent plugin mysql bulk insert is high performance and on duplicate key update respond.
|
5
5
|
|
@@ -142,7 +142,90 @@ then result becomes as below (indented):
|
|
142
142
|
+-----+-----------+---------------------+---------------------+
|
143
143
|
```
|
144
144
|
|
145
|
+
## Configuration Example(bulk insert, time complement)
|
145
146
|
|
147
|
+
```
|
148
|
+
<match mysql.input>
|
149
|
+
@type mysql_bulk
|
150
|
+
host localhost
|
151
|
+
database test_app_development
|
152
|
+
username root
|
153
|
+
password hogehoge
|
154
|
+
column_names id,user_name,created_at
|
155
|
+
key_names id,user,${time}
|
156
|
+
table users
|
157
|
+
flush_interval 10s
|
158
|
+
</match>
|
159
|
+
```
|
160
|
+
|
161
|
+
Assume following input is coming:
|
162
|
+
|
163
|
+
```js
|
164
|
+
2014-01-03 21:35:15+09:00: mysql.input: {"user":"toyama","dummy":"hogehoge"}
|
165
|
+
2014-01-03 21:35:21+09:00: mysql.input: {"user":"toyama2","dummy":"hogehoge"}
|
166
|
+
2014-01-03 21:35:27+09:00: mysql.input: {"user":"toyama3","dummy":"hogehoge"}
|
167
|
+
```
|
168
|
+
|
169
|
+
then `created_at` column is set from time attribute in a fluentd packet:
|
170
|
+
|
171
|
+
```sql
|
172
|
+
+-----+-----------+---------------------+
|
173
|
+
| id | user_name | created_at |
|
174
|
+
+-----+-----------+---------------------+
|
175
|
+
| 1 | toyama | 2014-01-03 21:35:15 |
|
176
|
+
| 2 | toyama2 | 2014-01-03 21:35:21 |
|
177
|
+
| 3 | toyama3 | 2014-01-03 21:35:27 |
|
178
|
+
+-----+-----------+---------------------+
|
179
|
+
```
|
180
|
+
|
181
|
+
## Configuration Example(bulk insert, time complement with specific timezone)
|
182
|
+
|
183
|
+
As described above, `${time}` placeholder sets time with `Time.at(time).strftime("%Y-%m-%d %H:%M:%S")`.
|
184
|
+
This handles the time with fluentd server default timezone.
|
185
|
+
If you want to use the specific timezone, you can use the include_time_key feature.
|
186
|
+
This is useful in case fluentd server and mysql have different timezone.
|
187
|
+
You can use various timezone format. See below.
|
188
|
+
http://docs.fluentd.org/articles/formatter-plugin-overview
|
189
|
+
|
190
|
+
```
|
191
|
+
<match mysql.input>
|
192
|
+
@type mysql_bulk
|
193
|
+
host localhost
|
194
|
+
database test_app_development
|
195
|
+
username root
|
196
|
+
password hogehoge
|
197
|
+
|
198
|
+
include_time_key yes
|
199
|
+
timezone +00
|
200
|
+
time_format %Y-%m-%d %H:%M:%S
|
201
|
+
time_key created_at
|
202
|
+
|
203
|
+
column_names id,user_name,created_at
|
204
|
+
key_names id,user,created_at
|
205
|
+
table users
|
206
|
+
flush_interval 10s
|
207
|
+
</match>
|
208
|
+
```
|
209
|
+
|
210
|
+
Assume following input is coming(fluentd server is using JST +09 timezone):
|
211
|
+
|
212
|
+
```js
|
213
|
+
2014-01-03 21:35:15+09:00: mysql.input: {"user":"toyama","dummy":"hogehoge"}
|
214
|
+
2014-01-03 21:35:21+09:00: mysql.input: {"user":"toyama2","dummy":"hogehoge"}
|
215
|
+
2014-01-03 21:35:27+09:00: mysql.input: {"user":"toyama3","dummy":"hogehoge"}
|
216
|
+
```
|
217
|
+
|
218
|
+
then `created_at` column is set from time attribute in a fluentd packet with timezone converted to +00 UTC:
|
219
|
+
|
220
|
+
```sql
|
221
|
+
+-----+-----------+---------------------+
|
222
|
+
| id | user_name | created_at |
|
223
|
+
+-----+-----------+---------------------+
|
224
|
+
| 1 | toyama | 2014-01-03 12:35:15 |
|
225
|
+
| 2 | toyama2 | 2014-01-03 12:35:21 |
|
226
|
+
| 3 | toyama3 | 2014-01-03 12:35:27 |
|
227
|
+
+-----+-----------+---------------------+
|
228
|
+
```
|
146
229
|
|
147
230
|
|
148
231
|
## spec
|
data/fluent-plugin-mysql.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
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.2"
|
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}
|
@@ -3,6 +3,8 @@ module Fluent
|
|
3
3
|
class Fluent::MysqlBulkOutput < Fluent::BufferedOutput
|
4
4
|
Fluent::Plugin.register_output('mysql_bulk', self)
|
5
5
|
|
6
|
+
include Fluent::SetTimeKeyMixin
|
7
|
+
|
6
8
|
config_param :host, :string, default: '127.0.0.1',
|
7
9
|
:desc => "Database host."
|
8
10
|
config_param :port, :integer, default: 3306,
|
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.2
|
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-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -90,6 +90,7 @@ extensions: []
|
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
92
|
- ".gitignore"
|
93
|
+
- ".travis.yml"
|
93
94
|
- Gemfile
|
94
95
|
- LICENSE.txt
|
95
96
|
- README.md
|