fluent-plugin-bigquery 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fluent/plugin/bigquery/version.rb +1 -1
- data/lib/fluent/plugin/out_bigquery.rb +12 -4
- data/test/plugin/test_out_bigquery.rb +63 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ff7b10c800f4cdee7cc503d0991d101c4fe0b91
|
4
|
+
data.tar.gz: f1cdcd51c9d0016e8c6367dd3c9903903fd0bb78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81168a787618c6687f2cb806d3e69feca256cf4a78f7ccb07bf3af161c7d16a59b34bc70be907909335568adfb38907281175f203fd57bae10be50855791fd5c
|
7
|
+
data.tar.gz: c821cf46374222afb0b69cef16243c8f0889f217b5d59b9480461cddbef7cce7384c96648d00a600e9f8d6ad07e7971e0c64367556d45676131157ccecdff95d
|
@@ -154,22 +154,22 @@ module Fluent
|
|
154
154
|
end
|
155
155
|
if @field_string
|
156
156
|
@field_string.split(',').each do |fieldname|
|
157
|
-
@fields.register_field fieldname, :string
|
157
|
+
@fields.register_field fieldname.strip, :string
|
158
158
|
end
|
159
159
|
end
|
160
160
|
if @field_integer
|
161
161
|
@field_integer.split(',').each do |fieldname|
|
162
|
-
@fields.register_field fieldname, :integer
|
162
|
+
@fields.register_field fieldname.strip, :integer
|
163
163
|
end
|
164
164
|
end
|
165
165
|
if @field_float
|
166
166
|
@field_float.split(',').each do |fieldname|
|
167
|
-
@fields.register_field fieldname, :float
|
167
|
+
@fields.register_field fieldname.strip, :float
|
168
168
|
end
|
169
169
|
end
|
170
170
|
if @field_boolean
|
171
171
|
@field_boolean.split(',').each do |fieldname|
|
172
|
-
@fields.register_field fieldname, :boolean
|
172
|
+
@fields.register_field fieldname.strip, :boolean
|
173
173
|
end
|
174
174
|
end
|
175
175
|
|
@@ -324,6 +324,14 @@ module Fluent
|
|
324
324
|
unless [:nullable, :required, :repeated].include?(mode)
|
325
325
|
raise ConfigError, "Unrecognized mode for #{name}: #{mode}"
|
326
326
|
end
|
327
|
+
### https://developers.google.com/bigquery/docs/tables
|
328
|
+
# Each field has the following properties:
|
329
|
+
#
|
330
|
+
# name - Field names are any combination of uppercase and/or lowercase letters (A-Z, a-z),
|
331
|
+
# digits (0-9) and underscores, but no spaces. The first character must be a letter.
|
332
|
+
unless name =~ /^[A-Za-z][_A-Za-z0-9]*$/
|
333
|
+
raise Fluent::ConfigError, "invalid bigquery field name: '#{name}'"
|
334
|
+
end
|
327
335
|
|
328
336
|
@name = name
|
329
337
|
@mode = mode
|
@@ -75,6 +75,69 @@ class BigQueryOutputTest < Test::Unit::TestCase
|
|
75
75
|
driver.instance.client()
|
76
76
|
end
|
77
77
|
|
78
|
+
def test_configure_fieldname_stripped
|
79
|
+
driver = create_driver(%[
|
80
|
+
table foo
|
81
|
+
email foo@bar.example
|
82
|
+
private_key_path /path/to/key
|
83
|
+
project yourproject_id
|
84
|
+
dataset yourdataset_id
|
85
|
+
|
86
|
+
time_format %s
|
87
|
+
time_field time
|
88
|
+
|
89
|
+
field_integer time , status , bytes
|
90
|
+
field_string vhost ,path,method,protocol, agent,referer, remote.host ,remote.ip,remote.user
|
91
|
+
field_float requesttime
|
92
|
+
field_boolean bot_access , loginsession
|
93
|
+
])
|
94
|
+
fields = driver.instance.instance_eval{ @fields }
|
95
|
+
|
96
|
+
assert (not fields['time ']), "tailing spaces must be stripped"
|
97
|
+
assert fields['time']
|
98
|
+
assert fields['status']
|
99
|
+
assert fields['bytes']
|
100
|
+
assert fields['vhost']
|
101
|
+
assert fields['protocol']
|
102
|
+
assert fields['agent']
|
103
|
+
assert fields['referer']
|
104
|
+
assert fields['remote']['host']
|
105
|
+
assert fields['remote']['ip']
|
106
|
+
assert fields['remote']['user']
|
107
|
+
assert fields['requesttime']
|
108
|
+
assert fields['bot_access']
|
109
|
+
assert fields['loginsession']
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_configure_invalid_fieldname
|
113
|
+
base = %[
|
114
|
+
table foo
|
115
|
+
email foo@bar.example
|
116
|
+
private_key_path /path/to/key
|
117
|
+
project yourproject_id
|
118
|
+
dataset yourdataset_id
|
119
|
+
|
120
|
+
time_format %s
|
121
|
+
time_field time
|
122
|
+
]
|
123
|
+
|
124
|
+
assert_raises(Fluent::ConfigError) do
|
125
|
+
create_driver(base + "field_integer time field\n")
|
126
|
+
end
|
127
|
+
assert_raises(Fluent::ConfigError) do
|
128
|
+
create_driver(base + "field_string my name\n")
|
129
|
+
end
|
130
|
+
assert_raises(Fluent::ConfigError) do
|
131
|
+
create_driver(base + "field_string remote.host name\n")
|
132
|
+
end
|
133
|
+
assert_raises(Fluent::ConfigError) do
|
134
|
+
create_driver(base + "field_float request time\n")
|
135
|
+
end
|
136
|
+
assert_raises(Fluent::ConfigError) do
|
137
|
+
create_driver(base + "field_boolean login session\n")
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
78
141
|
def test_format_stream
|
79
142
|
now = Time.now
|
80
143
|
input = [
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-bigquery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|