Class: Embulk::Input::InputBigquery
- Inherits:
-
InputPlugin
- Object
- InputPlugin
- Embulk::Input::InputBigquery
- Defined in:
- lib/embulk/input/bigquery.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.transaction(config) {|task, columns, 1| ... } ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/embulk/input/bigquery.rb', line 9 def self.transaction(config, &control) task = {project: config[:project], keyfile: config[:keyfile], sql: config[:sql], columns: config[:columns]} columns = [] config[:columns].each_with_index do |c, i| columns << Column.new(i, c['name'], c['type'].to_sym) end yield(task, columns, 1) return {} end |
Instance Method Details
#run ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/embulk/input/bigquery.rb', line 22 def run bq = Google::Cloud::Bigquery.new(project: @task[:project], keyfile: @task[:keyfile]) rows = bq.query(@task[:sql]) rows.each do |row| columns = [] @task[:columns].each do |c| columns << row[c['name']] end @page_builder.add(columns) end @page_builder.finish return {} end |