class Google::Cloud::Bigquery::External::ParquetSource

# ParquetSource

{External::ParquetSource} is a subclass of {External::DataSource} and represents a Parquet external data source that can be queried from directly, 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

parquet_url = "gs://bucket/path/to/data.parquet"
parquet_table = bigquery.external parquet_url do |parquet|
  parquet.enable_list_inference = 1
end

data = bigquery.query "SELECT * FROM my_ext_table",
                      external: { my_ext_table: parquet_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?

Public Class Methods

new() click to toggle source

@private Create an empty ParquetSource object.

# File lib/google/cloud/bigquery/external/parquet_source.rb, line 54
def initialize
  super
  @gapi.parquet_options = Google::Apis::BigqueryV2::ParquetOptions.new
end

Public Instance Methods

enable_list_inference() click to toggle source

Indicates whether to use schema inference specifically for Parquet `LIST` logical type.

@return [Boolean]

@example

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new

parquet_url = "gs://bucket/path/to/data.parquet"
parquet_table = bigquery.external parquet_url do |parquet|
  parquet.enable_list_inference = true
end

parquet_table.enable_list_inference #=> true
# File lib/google/cloud/bigquery/external/parquet_source.rb, line 76
def enable_list_inference
  @gapi.parquet_options.enable_list_inference
end
enable_list_inference=(new_enable_list_inference) click to toggle source

Sets whether to use schema inference specifically for Parquet `LIST` logical type.

@param [Boolean] new_enable_list_inference The new `enable_list_inference` value.

@example

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new

parquet_url = "gs://bucket/path/to/data.parquet"
parquet_table = bigquery.external parquet_url do |parquet|
  parquet.enable_list_inference = true
end

parquet_table.enable_list_inference #=> true
# File lib/google/cloud/bigquery/external/parquet_source.rb, line 97
def enable_list_inference= new_enable_list_inference
  frozen_check!
  @gapi.parquet_options.enable_list_inference = new_enable_list_inference
end
enum_as_string() click to toggle source

Indicates whether to infer Parquet `ENUM` logical type as `STRING` instead of `BYTES` by default.

@return [Boolean]

@example

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new

parquet_url = "gs://bucket/path/to/data.parquet"
parquet_table = bigquery.external parquet_url do |parquet|
  parquet.enum_as_string = true
end

parquet_table.enum_as_string #=> true
# File lib/google/cloud/bigquery/external/parquet_source.rb, line 119
def enum_as_string
  @gapi.parquet_options.enum_as_string
end
enum_as_string=(new_enum_as_string) click to toggle source

Sets whether to infer Parquet `ENUM` logical type as `STRING` instead of `BYTES` by default.

@param [Boolean] new_enum_as_string The new `enum_as_string` value.

@example

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new

parquet_url = "gs://bucket/path/to/data.parquet"
parquet_table = bigquery.external parquet_url do |parquet|
  parquet.enum_as_string = true
end

parquet_table.enum_as_string #=> true
# File lib/google/cloud/bigquery/external/parquet_source.rb, line 140
def enum_as_string= new_enum_as_string
  frozen_check!
  @gapi.parquet_options.enum_as_string = new_enum_as_string
end