fluent-plugin-bigquery 0.0.7 → 0.0.8
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/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
|