Class: Google::Apis::BigqueryV2::HivePartitioningOptions

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/bigquery_v2/classes.rb,
lib/google/apis/bigquery_v2/representations.rb,
lib/google/apis/bigquery_v2/representations.rb

Overview

Options for configuring hive partitioning detect.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ HivePartitioningOptions

Returns a new instance of HivePartitioningOptions.



3776
3777
3778
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3776

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#fieldsArray<String>

Output only. For permanent external tables, this field is populated with the hive partition keys in the order they were inferred. The types of the partition keys can be deduced by checking the table schema (which will include the partition keys). Not every API will populate this field in the output. For example, Tables.Get will populate it, but Tables.List will not contain this field. Corresponds to the JSON property fields

Returns:

  • (Array<String>)


3737
3738
3739
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3737

def fields
  @fields
end

#modeString

Optional. When set, what mode of hive partitioning to use when reading data. The following modes are supported: * AUTO: automatically infer partition key name(s) and type(s). * STRINGS: automatically infer partition key name(s). All types are strings. * CUSTOM: partition key schema is encoded in the source URI prefix. Not all storage formats support hive partitioning. Requesting hive partitioning on an unsupported format will lead to an error. Currently supported formats are: JSON, CSV, ORC, Avro and Parquet. Corresponds to the JSON property mode

Returns:

  • (String)


3748
3749
3750
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3748

def mode
  @mode
end

#require_partition_filterBoolean Also known as: require_partition_filter?

Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. Note that this field should only be true when creating a permanent external table or querying a temporary external table. Hive-partitioned loads with require_partition_filter explicitly set to true will fail. Corresponds to the JSON property requirePartitionFilter

Returns:

  • (Boolean)


3757
3758
3759
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3757

def require_partition_filter
  @require_partition_filter
end

#source_uri_prefixString

Optional. When hive partition detection is requested, a common prefix for all source uris must be required. The prefix must end immediately before the partition key encoding begins. For example, consider files following this data layout: gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro gs:/ /bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro When hive partitioning is requested with either AUTO or STRINGS detection, the common prefix can be either of gs://bucket/path_to_table or gs://bucket/path_to_table/ . CUSTOM detection requires encoding the partitioning schema immediately after the common prefix. For CUSTOM, any of * gs://bucket/path_to_table/dt:DATE/ country:STRING/id:INTEGER * gs://bucket/path_to_table/dt:STRING/country: STRING/id:INTEGER * gs://bucket/path_to_table/dt:DATE/country:STRING/ id:STRING would all be valid source URI prefixes. Corresponds to the JSON property sourceUriPrefix

Returns:

  • (String)


3774
3775
3776
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3774

def source_uri_prefix
  @source_uri_prefix
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3781
3782
3783
3784
3785
3786
# File 'lib/google/apis/bigquery_v2/classes.rb', line 3781

def update!(**args)
  @fields = args[:fields] if args.key?(:fields)
  @mode = args[:mode] if args.key?(:mode)
  @require_partition_filter = args[:require_partition_filter] if args.key?(:require_partition_filter)
  @source_uri_prefix = args[:source_uri_prefix] if args.key?(:source_uri_prefix)
end