class BigShift::BigQuery::Dataset
Public Class Methods
new(big_query_service, project_id, dataset_id, options={})
click to toggle source
# File lib/bigshift/big_query/dataset.rb, line 4 def initialize(big_query_service, project_id, dataset_id, options={}) @big_query_service = big_query_service @project_id = project_id @dataset_id = dataset_id @logger = options[:logger] || NullLogger::INSTANCE end
Public Instance Methods
create_table(table_name, options={})
click to toggle source
# File lib/bigshift/big_query/dataset.rb, line 22 def create_table(table_name, options={}) table_reference = Google::Apis::BigqueryV2::TableReference.new( project_id: @project_id, dataset_id: @dataset_id, table_id: table_name ) if options[:schema] fields = options[:schema]['fields'].map { |f| Google::Apis::BigqueryV2::TableFieldSchema.new(name: f['name'], type: f['type'], mode: f['mode']) } schema = Google::Apis::BigqueryV2::TableSchema.new(fields: fields) end table_spec = {} table_spec[:table_reference] = table_reference table_spec[:schema] = schema if schema table_data = Google::Apis::BigqueryV2::Table.new(table_spec) table_data = @big_query_service.insert_table(@project_id, @dataset_id, table_data) Table.new(@big_query_service, table_data, logger: @logger) end
table(table_name)
click to toggle source
# File lib/bigshift/big_query/dataset.rb, line 11 def table(table_name) table_data = @big_query_service.get_table(@project_id, @dataset_id, table_name) Table.new(@big_query_service, table_data, logger: @logger) rescue Google::Apis::ClientError => e if e.status_code == 404 nil else raise end end