embulk-input-rediskeys 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/README.md +11 -3
- data/embulk-input-rediskeys.gemspec +5 -5
- data/lib/embulk/input/rediskeys.rb +36 -1
- metadata +29 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41601c5fa9eda35e65873002cad2872a1aecc8ad
|
4
|
+
data.tar.gz: d787b379178986f2757693681e53f58d12f1ca18
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 856d69a4322eb58a5ffe4857e7a44310f6a43f68801cdc89492ef1a163366523933322c2ea22a1dd0687f7a08f55ef96bffc7fdd96b04c526d322e8a3eef282d
|
7
|
+
data.tar.gz: 5e7e0f25da7d293ef9b706f9d7ad15b9af385b0aa1719444eca2cea85b5d4d5676e3a83bfdff31962c28f6a9de9a129903b3bb1ea4033d359f56977a23562b74
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jruby-9.
|
1
|
+
jruby-9.1.2.0
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -9,11 +9,19 @@
|
|
9
9
|
|
10
10
|
## Configuration
|
11
11
|
|
12
|
-
-
|
12
|
+
- key_prefix: Prefix of column name to read (string, required).
|
13
|
+
- host: Redis hostname (string, default: localhost).
|
13
14
|
- port: Redis port number (int, default: 6379).
|
14
15
|
- db: Number of Redis DB to dump columns (int, default: 0).
|
15
|
-
-
|
16
|
-
- encode: Type of eoncoding of data to read (string, default:json).
|
16
|
+
- match_key_as_key: Use matche key for key (bool, default: true).
|
17
|
+
- encode: Type of eoncoding of data to read (string, default: json).
|
18
|
+
- colmuns: List of column name. Set match_key_as_key true, must be required(list, default: null).
|
19
|
+
|
20
|
+
Supported encode type are:
|
21
|
+
|
22
|
+
- json
|
23
|
+
- list
|
24
|
+
- hash
|
17
25
|
|
18
26
|
## Example
|
19
27
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
Gem::Specification.new do |spec|
|
3
3
|
spec.name = "embulk-input-rediskeys"
|
4
|
-
spec.version = "0.
|
4
|
+
spec.version = "0.2.0"
|
5
5
|
spec.authors = ["dokuma"]
|
6
6
|
spec.summary = "Redis input plugin for Embulk"
|
7
7
|
spec.description = "Loads records from Redis."
|
@@ -13,8 +13,8 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.test_files = spec.files.grep(%r{^(test|spec)/})
|
14
14
|
spec.require_paths = ["lib"]
|
15
15
|
|
16
|
-
spec.add_dependency 'redis', ['
|
17
|
-
spec.add_development_dependency 'embulk', ['
|
18
|
-
spec.add_development_dependency 'bundler', ['
|
19
|
-
spec.add_development_dependency 'rake', ['
|
16
|
+
spec.add_dependency 'redis', ['~> 3.0']
|
17
|
+
spec.add_development_dependency 'embulk', ['~> 0.8']
|
18
|
+
spec.add_development_dependency 'bundler', ['~> 1.10']
|
19
|
+
spec.add_development_dependency 'rake', ['~> 10.0']
|
20
20
|
end
|
@@ -14,6 +14,7 @@ module Embulk
|
|
14
14
|
'port' => config.param('port', :integer, :default => 6379),
|
15
15
|
'db' => config.param('db', :integer, :default => 0),
|
16
16
|
'key_prefix' => config.param('key_prefix', :string, :default => ''),
|
17
|
+
'match_key_as_key' => config.param('match_key_as_key', :bool, :default => true),
|
17
18
|
'encode' => config.param('encode', :string, :default => 'json')
|
18
19
|
}
|
19
20
|
|
@@ -104,12 +105,14 @@ module Embulk
|
|
104
105
|
end
|
105
106
|
end
|
106
107
|
|
107
|
-
def
|
108
|
+
def match_key_as_key
|
108
109
|
records = []
|
109
110
|
@redis.keys("#{@task['key_prefix']}*").each do |k|
|
110
111
|
case @task['encode']
|
111
112
|
when 'json'
|
112
113
|
v = @redis.get(k)
|
114
|
+
when 'list'
|
115
|
+
v = @redis.lrange(k, 0, -1)
|
113
116
|
when 'hash'
|
114
117
|
v = @redis.hgetall(k).to_json
|
115
118
|
end
|
@@ -119,6 +122,38 @@ module Embulk
|
|
119
122
|
@rows += 1
|
120
123
|
end
|
121
124
|
@page_builder.add(records)
|
125
|
+
end
|
126
|
+
|
127
|
+
def expect_value_is_json
|
128
|
+
@redis.keys("#{@task['key_prefix']}*").each do |k|
|
129
|
+
case @task['encode']
|
130
|
+
when 'json'
|
131
|
+
@page_builder.add(JSON.parse(@redis.get(k)).each_with_object({}) {|(key, value), new_hash|
|
132
|
+
new_hash[key] = deserialize_element(key, value)
|
133
|
+
}.values)
|
134
|
+
@rows += 1
|
135
|
+
when 'list'
|
136
|
+
@redis.lrange(k, 0, -1).each do |r|
|
137
|
+
@page_builder.add(JSON.parse(r).each_with_object({}) {|(key, value), new_hash|
|
138
|
+
new_hash[key] = deserialize_element(key, value)
|
139
|
+
}.values)
|
140
|
+
@rows += 1
|
141
|
+
end
|
142
|
+
when 'hash'
|
143
|
+
@page_builder.add(JSON.parse(@redis.hgetall(k).to_json).each_with_object({}) {|(key, value), new_hash|
|
144
|
+
new_hash[key] = deserialize_element(key, value)
|
145
|
+
}.values)
|
146
|
+
@rows += 1
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def run
|
152
|
+
if @task['match_key_as_key'] then
|
153
|
+
match_key_as_key()
|
154
|
+
else
|
155
|
+
expect_value_is_json()
|
156
|
+
end
|
122
157
|
@page_builder.finish # don't forget to call finish :-)
|
123
158
|
|
124
159
|
task_report = {
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-rediskeys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dokuma
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: redis
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.0
|
20
|
-
|
18
|
+
version: '3.0'
|
19
|
+
name: redis
|
21
20
|
prerelease: false
|
21
|
+
type: :runtime
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.0
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: embulk
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
|
-
- - "
|
30
|
+
- - "~>"
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.8
|
34
|
-
|
32
|
+
version: '0.8'
|
33
|
+
name: embulk
|
35
34
|
prerelease: false
|
35
|
+
type: :development
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.8
|
40
|
+
version: '0.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: bundler
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
|
-
- - "
|
44
|
+
- - "~>"
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.10
|
48
|
-
|
46
|
+
version: '1.10'
|
47
|
+
name: bundler
|
49
48
|
prerelease: false
|
49
|
+
type: :development
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.10
|
54
|
+
version: '1.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
|
-
- - "
|
58
|
+
- - "~>"
|
60
59
|
- !ruby/object:Gem::Version
|
61
60
|
version: '10.0'
|
62
|
-
|
61
|
+
name: rake
|
63
62
|
prerelease: false
|
63
|
+
type: :development
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
69
|
description: Loads records from Redis.
|
@@ -85,7 +85,7 @@ homepage: https://github.com/dokuma/embulk-input-rediskeys
|
|
85
85
|
licenses:
|
86
86
|
- MIT
|
87
87
|
metadata: {}
|
88
|
-
post_install_message:
|
88
|
+
post_install_message:
|
89
89
|
rdoc_options: []
|
90
90
|
require_paths:
|
91
91
|
- lib
|
@@ -100,9 +100,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
requirements: []
|
103
|
-
rubyforge_project:
|
104
|
-
rubygems_version: 2.
|
105
|
-
signing_key:
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 2.6.4
|
105
|
+
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: Redis input plugin for Embulk
|
108
108
|
test_files: []
|