fluent-plugin-redshift-out 0.0.1 → 0.1.0
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 +3 -3
- data/VERSION +1 -1
- data/fluent-plugin-redshift-out.gemspec +4 -2
- data/lib/fluent/plugin/out_redshift.rb +6 -4
- metadata +68 -22
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Amazon Redshift output plugin uploads event logs to an Amazon Redshift Cluster.
|
|
14
14
|
Format:
|
15
15
|
|
16
16
|
<match my.tag>
|
17
|
-
type redshift
|
17
|
+
type redshift-out
|
18
18
|
|
19
19
|
# s3 (for copying data to redshift)
|
20
20
|
aws_key_id YOUR_AWS_KEY_ID
|
@@ -52,7 +52,7 @@ Example (watch and upload json formatted apache log):
|
|
52
52
|
</source>
|
53
53
|
|
54
54
|
<match redshift.json>
|
55
|
-
type redshift
|
55
|
+
type redshift-out
|
56
56
|
|
57
57
|
# s3 (for copying data to redshift)
|
58
58
|
aws_key_id YOUR_AWS_KEY_ID
|
@@ -78,7 +78,7 @@ Example (watch and upload json formatted apache log):
|
|
78
78
|
buffer_chunk_limit 1g
|
79
79
|
<match>
|
80
80
|
|
81
|
-
+ `type` (required) : The value must be `redshift`.
|
81
|
+
+ `type` (required) : The value must be `redshift-out`.
|
82
82
|
|
83
83
|
+ `aws_key_id` (required) : AWS access key id to access s3 bucket.
|
84
84
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.email = ["nao.bear@gmail.com"]
|
9
9
|
gem.description = %q{Amazon Redshift output plugin for Fluentd}
|
10
10
|
gem.summary = gem.description
|
11
|
-
gem.homepage = "https://github.com/sakuma/fluent-plugin-redshift"
|
11
|
+
gem.homepage = "https://github.com/sakuma/fluent-plugin-redshift-out"
|
12
12
|
gem.has_rdoc = false
|
13
13
|
|
14
14
|
gem.files = `git ls-files`.split($/)
|
@@ -17,7 +17,9 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
|
19
19
|
gem.add_dependency "fluentd", "~> 0.10.0"
|
20
|
-
gem.add_dependency "aws-sdk", "
|
20
|
+
gem.add_dependency "aws-sdk", "~> 1.60"
|
21
|
+
gem.add_dependency "multi_json", "~> 1.10"
|
22
|
+
gem.add_dependency "oj", "~> 2.11"
|
21
23
|
gem.add_dependency "pg", "~> 0.17.0"
|
22
24
|
gem.add_development_dependency "rake"
|
23
25
|
gem.add_development_dependency "simplecov", ">= 0.5.4"
|
@@ -2,7 +2,7 @@ module Fluent
|
|
2
2
|
|
3
3
|
|
4
4
|
class RedshiftOutput < BufferedOutput
|
5
|
-
Fluent::Plugin.register_output('redshift', self)
|
5
|
+
Fluent::Plugin.register_output('redshift-out', self)
|
6
6
|
|
7
7
|
# ignore load table error. (invalid data format)
|
8
8
|
IGNORE_REDSHIFT_ERROR_REGEXP = /^ERROR: Load into table '[^']+' failed\./
|
@@ -14,8 +14,10 @@ class RedshiftOutput < BufferedOutput
|
|
14
14
|
require 'time'
|
15
15
|
require 'tempfile'
|
16
16
|
require 'pg'
|
17
|
-
require 'json'
|
18
17
|
require 'csv'
|
18
|
+
require 'multi_json'
|
19
|
+
require 'oj'
|
20
|
+
::MultiJson.use(:oj)
|
19
21
|
end
|
20
22
|
|
21
23
|
config_param :record_log_tag, :string, :default => 'log'
|
@@ -228,7 +230,7 @@ class RedshiftOutput < BufferedOutput
|
|
228
230
|
def json_to_hash(json_text)
|
229
231
|
return nil if json_text.to_s.empty?
|
230
232
|
|
231
|
-
|
233
|
+
MultiJson.load(json_text)
|
232
234
|
rescue => e
|
233
235
|
$log.warn format_log("failed to parse json. "), :error => e.to_s
|
234
236
|
nil
|
@@ -240,7 +242,7 @@ class RedshiftOutput < BufferedOutput
|
|
240
242
|
# extract values from hash
|
241
243
|
val_list = redshift_table_columns.collect do |cn|
|
242
244
|
val = hash[cn]
|
243
|
-
val =
|
245
|
+
val = MultiJson.dump(val) if val.kind_of?(Hash) or val.kind_of?(Array)
|
244
246
|
|
245
247
|
if val.to_s.empty?
|
246
248
|
nil
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-redshift-out
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Naohiro Sakuma
|
@@ -13,85 +14,129 @@ dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: fluentd
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.10.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.10.0
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: aws-sdk
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
37
|
+
version: '1.60'
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
45
|
+
version: '1.60'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: multi_json
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.10'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.10'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: oj
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.11'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2.11'
|
41
78
|
- !ruby/object:Gem::Dependency
|
42
79
|
name: pg
|
43
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
44
82
|
requirements:
|
45
|
-
- -
|
83
|
+
- - ~>
|
46
84
|
- !ruby/object:Gem::Version
|
47
85
|
version: 0.17.0
|
48
86
|
type: :runtime
|
49
87
|
prerelease: false
|
50
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
51
90
|
requirements:
|
52
|
-
- -
|
91
|
+
- - ~>
|
53
92
|
- !ruby/object:Gem::Version
|
54
93
|
version: 0.17.0
|
55
94
|
- !ruby/object:Gem::Dependency
|
56
95
|
name: rake
|
57
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
58
98
|
requirements:
|
59
|
-
- -
|
99
|
+
- - ! '>='
|
60
100
|
- !ruby/object:Gem::Version
|
61
101
|
version: '0'
|
62
102
|
type: :development
|
63
103
|
prerelease: false
|
64
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
65
106
|
requirements:
|
66
|
-
- -
|
107
|
+
- - ! '>='
|
67
108
|
- !ruby/object:Gem::Version
|
68
109
|
version: '0'
|
69
110
|
- !ruby/object:Gem::Dependency
|
70
111
|
name: simplecov
|
71
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
72
114
|
requirements:
|
73
|
-
- -
|
115
|
+
- - ! '>='
|
74
116
|
- !ruby/object:Gem::Version
|
75
117
|
version: 0.5.4
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
79
122
|
requirements:
|
80
|
-
- -
|
123
|
+
- - ! '>='
|
81
124
|
- !ruby/object:Gem::Version
|
82
125
|
version: 0.5.4
|
83
126
|
- !ruby/object:Gem::Dependency
|
84
127
|
name: flexmock
|
85
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
86
130
|
requirements:
|
87
|
-
- -
|
131
|
+
- - ! '>='
|
88
132
|
- !ruby/object:Gem::Version
|
89
133
|
version: 1.3.1
|
90
134
|
type: :development
|
91
135
|
prerelease: false
|
92
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
93
138
|
requirements:
|
94
|
-
- -
|
139
|
+
- - ! '>='
|
95
140
|
- !ruby/object:Gem::Version
|
96
141
|
version: 1.3.1
|
97
142
|
description: Amazon Redshift output plugin for Fluentd
|
@@ -101,7 +146,7 @@ executables: []
|
|
101
146
|
extensions: []
|
102
147
|
extra_rdoc_files: []
|
103
148
|
files:
|
104
|
-
-
|
149
|
+
- .gitignore
|
105
150
|
- Gemfile
|
106
151
|
- README.md
|
107
152
|
- Rakefile
|
@@ -110,28 +155,29 @@ files:
|
|
110
155
|
- lib/fluent/plugin/out_redshift.rb
|
111
156
|
- test/plugin/test_out_redshift.rb
|
112
157
|
- test/test_helper.rb
|
113
|
-
homepage: https://github.com/sakuma/fluent-plugin-redshift
|
158
|
+
homepage: https://github.com/sakuma/fluent-plugin-redshift-out
|
114
159
|
licenses: []
|
115
|
-
metadata: {}
|
116
160
|
post_install_message:
|
117
161
|
rdoc_options: []
|
118
162
|
require_paths:
|
119
163
|
- lib
|
120
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
121
166
|
requirements:
|
122
|
-
- -
|
167
|
+
- - ! '>='
|
123
168
|
- !ruby/object:Gem::Version
|
124
169
|
version: '0'
|
125
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
126
172
|
requirements:
|
127
|
-
- -
|
173
|
+
- - ! '>='
|
128
174
|
- !ruby/object:Gem::Version
|
129
175
|
version: '0'
|
130
176
|
requirements: []
|
131
177
|
rubyforge_project:
|
132
|
-
rubygems_version:
|
178
|
+
rubygems_version: 1.8.23
|
133
179
|
signing_key:
|
134
|
-
specification_version:
|
180
|
+
specification_version: 3
|
135
181
|
summary: Amazon Redshift output plugin for Fluentd
|
136
182
|
test_files:
|
137
183
|
- test/plugin/test_out_redshift.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 56faedeeaa87b321e1ac1497d19cf1fc32e5ff75
|
4
|
-
data.tar.gz: b1fd7371a3c521f2aeeafa5a49fac2282a297d7f
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 070545fa09280904936742b02465c3c9b7c796b050f1fa5dbf8294687282468174ff8e7b5139c036ea2b7857c896c49b1899e76f4f18489a68783161dc5604fa
|
7
|
-
data.tar.gz: cf5634049a45f03f322361c093c8a5910e033e0b1be46213769fe81269ca569a3cf960f616625bf6d7a2bb5f15c1c06ecbe5ebe6e61b11c756f5ea1545916e3e
|