Class: Blazer::Adapters::BigQueryAdapter
Instance Attribute Summary
Attributes inherited from BaseAdapter
#data_source
Instance Method Summary
collapse
Methods inherited from BaseAdapter
#cachable?, #cancel, #cost, #explain, #initialize, #reconnect
Instance Method Details
#preview_statement ⇒ Object
40
41
42
|
# File 'lib/blazer/adapters/bigquery_adapter.rb', line 40
def preview_statement
"SELECT * FROM `{table}` LIMIT 10"
end
|
#run_statement(statement, comment) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/blazer/adapters/bigquery_adapter.rb', line 4
def run_statement(statement, )
columns = []
rows = []
error = nil
begin
options = {}
options[:timeout] = data_source.timeout.to_i * 1000 if data_source.timeout
results = bigquery.query(statement, options) if results.complete?
columns = results.first.keys.map(&:to_s) if results.size > 0
rows = results.map(&:values)
else
error = Blazer::TIMEOUT_MESSAGE
end
rescue => e
error = e.message
end
[columns, rows, error]
end
|
#schema ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/blazer/adapters/bigquery_adapter.rb', line 30
def schema
table_refs.map do |table_ref|
{
schema: table_ref.dataset_id,
table: table_ref.table_id,
columns: table_columns(table_ref)
}
end
end
|
#tables ⇒ Object
26
27
28
|
# File 'lib/blazer/adapters/bigquery_adapter.rb', line 26
def tables
table_refs.map { |t| "#{t.project_id}.#{t.dataset_id}.#{t.table_id}" }
end
|