BigQuery API - Class Google::Cloud::Bigquery::External::JsonSource (v1.60.0)

Reference documentation and code samples for the BigQuery API class Google::Cloud::Bigquery::External::JsonSource.

JsonSource

JsonSource is a subclass of DataSource and represents a JSON external data source that can be queried from directly, such as Google Cloud Storage or Google Drive, even though the data is not stored in BigQuery. Instead of loading or streaming the data, this object references the external data source.

Example

require "google/cloud/bigquery" bigquery = Google::Cloud::Bigquery.new require "google/cloud/bigquery" bigquery = Google::Cloud::Bigquery.new json_url = "gs://bucket/path/to/data.json" json_table = bigquery.external json_url do |json|  json.schema do |schema|  schema.string "name", mode: :required  schema.string "email", mode: :required  schema.integer "age", mode: :required  schema.boolean "active", mode: :required  end end data = bigquery.query "SELECT * FROM my_ext_table",  external: { my_ext_table: json_table } # Iterate over the first page of results data.each do |row|  puts row[:name] end # Retrieve the next page of results data = data.next if data.next?

Methods

#fields

def fields() -> Array<Schema::Field>

The fields of the schema.

Returns

#headers

def headers() -> Array<Symbol>

The names of the columns in the schema.

Returns
  • (Array<Symbol>) — An array of column names.

#param_types

def param_types() -> Hash

The types of the fields in the data in the schema, using the same format as the optional query parameter types.

Returns
  • (Hash) — A hash with field names as keys, and types as values.

#schema

def schema(replace: false) { |schema| ... } -> Google::Cloud::Bigquery::Schema

The schema for the data.

Parameter
  • replace (Boolean) (defaults to: false) — Whether to replace the existing schema with the new schema. If true, the fields will replace the existing schema. If false, the fields will be added to the existing schema. The default value is false.
Yields
  • (schema) — a block for setting the schema
Yield Parameter
  • schema (Schema) — the object accepting the schema
Example
require "google/cloud/bigquery" bigquery = Google::Cloud::Bigquery.new json_url = "gs://bucket/path/to/data.json" json_table = bigquery.external json_url do |json|  json.schema do |schema|  schema.string "name", mode: :required  schema.string "email", mode: :required  schema.integer "age", mode: :required  schema.boolean "active", mode: :required  end end

#schema=

def schema=(new_schema)

Set the schema for the data.

Parameter
  • new_schema (Schema) — The schema object.
Example
require "google/cloud/bigquery" bigquery = Google::Cloud::Bigquery.new json_shema = bigquery.schema do |schema|  schema.string "name", mode: :required  schema.string "email", mode: :required  schema.integer "age", mode: :required  schema.boolean "active", mode: :required end json_url = "gs://bucket/path/to/data.json" json_table = bigquery.external json_url json_table.schema = json_shema