fluent-plugin-bigquery 2.0.0.beta → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: '07998acf05ddb3e647da13a4b5c734dc16f8cc77'
4
- data.tar.gz: 1fce9fc906cbf72083a4f8132c0ac1d985a95d6d
2
+ SHA256:
3
+ metadata.gz: da6ea2c72e47fb9193731dd419914e5e0a7974a4a4b7013299547856efa94efe
4
+ data.tar.gz: fc240aa17d7896d58f56e87a1c23dccad6850ecfa580c195c2cd1448ff7ba5f7
5
5
  SHA512:
6
- metadata.gz: 04cfd6d3080d9424e25bd75ae1a9600259fe94ed933adceab66c02eb11afdb49eeddc393c305f0927dd64f967d1e72835fde9566cd54b2e53805e85ffe7a1516
7
- data.tar.gz: 8de74527cf12be2c6553e4a582cc25c47a1773cdc165800f212aae563f7ffa048679260515a51f55e244b641b968badeaa4349cf4369ad2363d22aff1c1cbe7d
6
+ metadata.gz: f115777a0f822c01872d9ee0e9bbc8f7da409dd4f69937a5518d82c302b42c8332775e199819830856f11ce21ec1661577fce29af25a09651e228567414384bf
7
+ data.tar.gz: b2b210f0f04f7e5490dc9853cbd3ccbbf6e295a5d01eebe9052d54afdcbe4694b66cc2ea50693481a79450bdada838c9d6c73f1329f1ce8f14a0abed23dfbf5d
@@ -1,10 +1,9 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.2
5
- - 2.3.3
6
- - 2.4.3
7
- - 2.5.0
4
+ - 2.3.7
5
+ - 2.4.4
6
+ - 2.5.1
8
7
 
9
8
  gemfile:
10
9
  - Gemfile
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # fluent-plugin-bigquery
2
2
 
3
- **This README is for v2.0.0.beta. but it is not released yet. sorry.**
3
+ **This README is for v2.0.0.beta**
4
4
 
5
5
  [Fluentd](http://fluentd.org) output plugin to load/insert data into Google BigQuery.
6
6
 
@@ -18,11 +18,13 @@
18
18
  Current version of this plugin supports Google API with Service Account Authentication, but does not support
19
19
  OAuth flow for installed applications.
20
20
 
21
- ## Version Information
22
- v1.0.0 or later supports fluentd-0.14.0 or later.
23
- If you use fluentd-0.12.x, please use v0.4.x.
21
+ ## Support Version
24
22
 
25
- I recommend to update fluentd version to v0.14.x or later.
23
+ | plugin version | fluentd version | ruby version |
24
+ | :----------- | :----------- | :----------- |
25
+ | v0.4.x | 0.12.x | 2.0 or later |
26
+ | v1.x.x | 0.14.x or later | 2.2 or later |
27
+ | v2.x.x | 0.14.x or later | 2.3 or later |
26
28
 
27
29
  ## With docker image
28
30
  If you use official alpine based fluentd docker image (https://github.com/fluent/fluentd-docker-image),
@@ -58,6 +60,7 @@ Because embbeded gem dependency sometimes restricts ruby environment.
58
60
  | request_timeout_sec | integer | no | no | nil | Bigquery API response timeout |
59
61
  | request_open_timeout_sec | integer | no | no | 60 | Bigquery API connection, and request timeout. If you send big data to Bigquery, set large value. |
60
62
  | time_partitioning_type | enum | no (either day) | no | nil | Type of bigquery time partitioning feature(experimental feature on BigQuery). |
63
+ | time_partitioning_field | string | no | no | nil | Field used to determine how to create a time-based partition(experimental feature on BigQuery). |
61
64
  | time_partitioning_expiration | time | no | no | nil | Expiration milliseconds for bigquery time partitioning. (experimental feature on BigQuery) |
62
65
 
63
66
  #### bigquery_insert
@@ -1,5 +1,5 @@
1
1
  module Fluent
2
2
  module BigQueryPlugin
3
- VERSION = "2.0.0.beta".freeze
3
+ VERSION = "2.0.0".freeze
4
4
  end
5
5
  end
@@ -37,6 +37,7 @@ module Fluent
37
37
  if @options[:time_partitioning_type]
38
38
  definition[:time_partitioning] = {
39
39
  type: @options[:time_partitioning_type].to_s.upcase,
40
+ field: @options[:time_partitioning_field] ? @options[:time_partitioning_field].to_s : nil,
40
41
  expiration_ms: @options[:time_partitioning_expiration] ? @options[:time_partitioning_expiration] * 1000 : nil
41
42
  }.select { |_, value| !value.nil? }
42
43
  end
@@ -227,9 +228,10 @@ module Fluent
227
228
  end
228
229
  end
229
230
 
231
+ # `stats` can be nil if we receive a warning like "Warning: Load job succeeded with data imported, however statistics may be lost due to internal error."
230
232
  stats = response.statistics.load
231
233
  duration = (response.statistics.end_time - response.statistics.creation_time) / 1000.0
232
- log.debug "load job finished", id: job_id, state: response.status.state, input_file_bytes: stats.input_file_bytes, input_files: stats.input_files, output_bytes: stats.output_bytes, output_rows: stats.output_rows, bad_records: stats.bad_records, duration: duration.round(2), project_id: project, dataset: dataset, table: table_id
234
+ log.debug "load job finished", id: job_id, state: response.status.state, input_file_bytes: stats&.input_file_bytes, input_files: stats&.input_files, output_bytes: stats&.output_bytes, output_rows: stats&.output_rows, bad_records: stats&.bad_records, duration: duration.round(2), project_id: project, dataset: dataset, table: table_id
233
235
  @num_errors_per_chunk.delete(chunk_id_hex)
234
236
  end
235
237
 
@@ -67,6 +67,7 @@ module Fluent
67
67
 
68
68
  ## Partitioning
69
69
  config_param :time_partitioning_type, :enum, list: [:day], default: nil
70
+ config_param :time_partitioning_field, :string, default: nil
70
71
  config_param :time_partitioning_expiration, :time, default: nil
71
72
 
72
73
  ## Formatter
@@ -138,6 +139,7 @@ module Fluent
138
139
  prevent_duplicate_load: @prevent_duplicate_load,
139
140
  auto_create_table: @auto_create_table,
140
141
  time_partitioning_type: @time_partitioning_type,
142
+ time_partitioning_field: time_partitioning_field,
141
143
  time_partitioning_expiration: @time_partitioning_expiration,
142
144
  timeout_sec: @request_timeout_sec,
143
145
  open_timeout_sec: @request_open_timeout_sec,
@@ -182,7 +184,7 @@ module Fluent
182
184
  table_schema.load_schema(schema)
183
185
  @fetched_schemas["#{project}.#{dataset}.#{table_id}"] = table_schema
184
186
  else
185
- if @fetched_schemas["#{project}.#{dataset}.#{table_id}"].empty?
187
+ if @fetched_schemas["#{project}.#{dataset}.#{table_id}"].nil?
186
188
  raise "failed to fetch schema from bigquery"
187
189
  else
188
190
  log.warn "#{table_id} uses previous schema"
@@ -401,6 +401,7 @@ class BigQueryInsertOutputTest < Test::Unit::TestCase
401
401
  schema_path #{File.join(File.dirname(__FILE__), "testdata", "apache.schema")}
402
402
 
403
403
  time_partitioning_type day
404
+ time_partitioning_field time
404
405
  time_partitioning_expiration 1h
405
406
  CONFIG
406
407
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-bigquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naoya Ito
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-03-29 00:00:00.000000000 Z
12
+ date: 2018-09-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -179,12 +179,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
179
  version: '0'
180
180
  required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  requirements:
182
- - - ">"
182
+ - - ">="
183
183
  - !ruby/object:Gem::Version
184
- version: 1.3.1
184
+ version: '0'
185
185
  requirements: []
186
186
  rubyforge_project:
187
- rubygems_version: 2.6.12
187
+ rubygems_version: 2.7.7
188
188
  signing_key:
189
189
  specification_version: 4
190
190
  summary: Fluentd plugin to store data on Google BigQuery