Reference documentation and code samples for the BigQuery API class Google::Cloud::Bigquery::External::AvroSource.
AvroSource
AvroSource is a subclass of DataSource and
represents a Avro 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.
require"google/cloud/bigquery"bigquery=Google::Cloud::Bigquery.newavro_url="gs://bucket/path/to/*.avro"avro_table=bigquery.externalavro_urldo|avro|avro.use_avro_logical_types=1enddata=bigquery.query"SELECT * FROM my_ext_table",external:{my_ext_table:avro_table}# Iterate over the first page of resultsdata.eachdo|row|putsrow[:name]end# Retrieve the next page of resultsdata=data.nextifdata.next?
Methods
#use_avro_logical_types
defuse_avro_logical_types()->Boolean
Indicates whether to interpret logical types as the corresponding BigQuery data type (for example,
TIMESTAMP), instead of using the raw type (for example, INTEGER).
Sets whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP),
instead of using the raw type (for example, INTEGER).
Parameter
new_use_avro_logical_types (Boolean) — The new use_avro_logical_types value.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-09 UTC."],[],[],null,["# BigQuery API - Class Google::Cloud::Bigquery::External::AvroSource (v1.56.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.56.0 (latest)](/ruby/docs/reference/google-cloud-bigquery/latest/Google-Cloud-Bigquery-External-AvroSource)\n- [1.55.0](/ruby/docs/reference/google-cloud-bigquery/1.55.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.54.0](/ruby/docs/reference/google-cloud-bigquery/1.54.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.53.0](/ruby/docs/reference/google-cloud-bigquery/1.53.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.52.1](/ruby/docs/reference/google-cloud-bigquery/1.52.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.51.1](/ruby/docs/reference/google-cloud-bigquery/1.51.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.50.0](/ruby/docs/reference/google-cloud-bigquery/1.50.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.49.1](/ruby/docs/reference/google-cloud-bigquery/1.49.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.48.1](/ruby/docs/reference/google-cloud-bigquery/1.48.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.47.0](/ruby/docs/reference/google-cloud-bigquery/1.47.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.46.1](/ruby/docs/reference/google-cloud-bigquery/1.46.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.45.0](/ruby/docs/reference/google-cloud-bigquery/1.45.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.44.2](/ruby/docs/reference/google-cloud-bigquery/1.44.2/Google-Cloud-Bigquery-External-AvroSource)\n- [1.43.1](/ruby/docs/reference/google-cloud-bigquery/1.43.1/Google-Cloud-Bigquery-External-AvroSource)\n- [1.42.0](/ruby/docs/reference/google-cloud-bigquery/1.42.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.41.0](/ruby/docs/reference/google-cloud-bigquery/1.41.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.40.0](/ruby/docs/reference/google-cloud-bigquery/1.40.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.39.0](/ruby/docs/reference/google-cloud-bigquery/1.39.0/Google-Cloud-Bigquery-External-AvroSource)\n- [1.38.1](/ruby/docs/reference/google-cloud-bigquery/1.38.1/Google-Cloud-Bigquery-External-AvroSource) \nReference documentation and code samples for the BigQuery API class Google::Cloud::Bigquery::External::AvroSource.\n\nAvroSource\n----------\n\n[AvroSource](/ruby/docs/reference/google-cloud-bigquery/latest/Google-Cloud-Bigquery-External-AvroSource \"Google::Cloud::Bigquery::External::AvroSource (class)\") is a subclass of [DataSource](/ruby/docs/reference/google-cloud-bigquery/latest/Google-Cloud-Bigquery-External-DataSource \"Google::Cloud::Bigquery::External::DataSource (class)\") and\nrepresents a Avro external data source that can be queried\nfrom directly, even though the data is not stored in BigQuery. Instead\nof loading or streaming the data, this object references the external\ndata source. \n\nInherits\n--------\n\n- [Google::Cloud::Bigquery::External::DataSource](./Google-Cloud-Bigquery-External-DataSource)\n\nExample\n-------\n\n```ruby\nrequire \"google/cloud/bigquery\"\n\nbigquery = Google::Cloud::Bigquery.new\n\navro_url = \"gs://bucket/path/to/*.avro\"\navro_table = bigquery.external avro_url do |avro|\n avro.use_avro_logical_types = 1\nend\n\ndata = bigquery.query \"SELECT * FROM my_ext_table\",\n external: { my_ext_table: avro_table }\n\n# Iterate over the first page of results\ndata.each do |row|\n puts row[:name]\nend\n# Retrieve the next page of results\ndata = data.next if data.next?\n```\n\nMethods\n-------\n\n### #use_avro_logical_types\n\n def use_avro_logical_types() -\u003e Boolean\n\nIndicates whether to interpret logical types as the corresponding BigQuery data type (for example,\n`TIMESTAMP`), instead of using the raw type (for example, `INTEGER`). \n**Returns**\n\n- (Boolean)\n**Example** \n\n```ruby\nrequire \"google/cloud/bigquery\"\n\nbigquery = Google::Cloud::Bigquery.new\n\navro_url = \"gs://bucket/path/to/*.avro\"\navro_table = bigquery.external avro_url do |avro|\n avro.use_avro_logical_types = true\nend\n\navro_table.use_avro_logical_types #=\u003e true\n```\n\n### #use_avro_logical_types=\n\n def use_avro_logical_types=(new_use_avro_logical_types)\n\nSets whether to interpret logical types as the corresponding BigQuery data type (for example, `TIMESTAMP`),\ninstead of using the raw type (for example, `INTEGER`). \n**Parameter**\n\n- **new_use_avro_logical_types** (Boolean) --- The new `use_avro_logical_types` value.\n**Example** \n\n```ruby\nrequire \"google/cloud/bigquery\"\n\nbigquery = Google::Cloud::Bigquery.new\n\navro_url = \"gs://bucket/path/to/*.avro\"\navro_table = bigquery.external avro_url do |avro|\n avro.use_avro_logical_types = true\nend\n\navro_table.use_avro_logical_types #=\u003e true\n```"]]