Class: Google::Apis::BigqueryV2::JobConfigurationQuery

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

JobConfigurationQuery configures a BigQuery query job.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ JobConfigurationQuery

Returns a new instance of JobConfigurationQuery.



5837
5838
5839
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5837

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

Instance Attribute Details

#allow_large_resultsBoolean Also known as: allow_large_results?

Optional. If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set. For GoogleSQL queries, this flag is ignored and large results are always allowed. However, you must still set destinationTable when result size exceeds the allowed maximum response size. Corresponds to the JSON property allowLargeResults

Returns:

  • (Boolean)


5628
5629
5630
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5628

def allow_large_results
  @allow_large_results
end

#clusteringGoogle::Apis::BigqueryV2::Clustering

Configures table clustering. Corresponds to the JSON property clustering



5634
5635
5636
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5634

def clustering
  @clustering
end

#connection_propertiesArray<Google::Apis::BigqueryV2::ConnectionProperty>

Connection properties which can modify the query behavior. Corresponds to the JSON property connectionProperties



5639
5640
5641
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5639

def connection_properties
  @connection_properties
end

#continuousBoolean Also known as: continuous?

[Optional] Specifies whether the query should be executed as a continuous query. The default value is false. Corresponds to the JSON property continuous

Returns:

  • (Boolean)


5645
5646
5647
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5645

def continuous
  @continuous
end

#create_dispositionString

Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion. Corresponds to the JSON property createDisposition

Returns:

  • (String)


5656
5657
5658
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5656

def create_disposition
  @create_disposition
end

#create_sessionBoolean Also known as: create_session?

If this property is true, the job creates a new session using a randomly generated session_id. To continue using a created session with subsequent queries, pass the existing session identifier as a ConnectionProperty value. The session identifier is returned as part of the SessionInfo message within the query statistics. The new session's location will be set to Job. JobReference.location if it is present, otherwise it's set to the default location based on existing routing logic. Corresponds to the JSON property createSession

Returns:

  • (Boolean)


5667
5668
5669
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5667

def create_session
  @create_session
end

#default_datasetGoogle::Apis::BigqueryV2::DatasetReference

Identifier for a dataset. Corresponds to the JSON property defaultDataset



5673
5674
5675
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5673

def default_dataset
  @default_dataset
end

#destination_encryption_configurationGoogle::Apis::BigqueryV2::EncryptionConfiguration

Configuration for Cloud KMS encryption settings. Corresponds to the JSON property destinationEncryptionConfiguration



5678
5679
5680
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5678

def destination_encryption_configuration
  @destination_encryption_configuration
end

#destination_tableGoogle::Apis::BigqueryV2::TableReference

Optional. Describes the table where the query results should be stored. This property must be set for large results that exceed the maximum response size. For queries that produce anonymous (cached) results, this field will be populated by BigQuery. Corresponds to the JSON property destinationTable



5686
5687
5688
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5686

def destination_table
  @destination_table
end

#flatten_resultsBoolean Also known as: flatten_results?

Optional. If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results. allowLargeResults must be true if this is set to false. For GoogleSQL queries, this flag is ignored and results are never flattened. Corresponds to the JSON property flattenResults

Returns:

  • (Boolean)


5694
5695
5696
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5694

def flatten_results
  @flatten_results
end

#maximum_billing_tierFixnum

Optional. [Deprecated] Maximum billing tier allowed for this query. The billing tier controls the amount of compute resources allotted to the query, and multiplies the on-demand cost of the query accordingly. A query that runs within its allotted resources will succeed and indicate its billing tier in statistics.query.billingTier, but if the query exceeds its allotted resources, it will fail with billingTierLimitExceeded. WARNING: The billed byte amount can be multiplied by an amount up to this number! Most users should not need to alter this setting, and we recommend that you avoid introducing new uses of it. Corresponds to the JSON property maximumBillingTier

Returns:

  • (Fixnum)


5708
5709
5710
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5708

def maximum_billing_tier
  @maximum_billing_tier
end

#maximum_bytes_billedFixnum

Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default. Corresponds to the JSON property maximumBytesBilled

Returns:

  • (Fixnum)


5715
5716
5717
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5715

def maximum_bytes_billed
  @maximum_bytes_billed
end

#parameter_modeString

GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query. Corresponds to the JSON property parameterMode

Returns:

  • (String)


5721
5722
5723
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5721

def parameter_mode
  @parameter_mode
end

#preserve_nullsBoolean Also known as: preserve_nulls?

[Deprecated] This property is deprecated. Corresponds to the JSON property preserveNulls

Returns:

  • (Boolean)


5726
5727
5728
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5726

def preserve_nulls
  @preserve_nulls
end

#priorityString

Optional. Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE. Corresponds to the JSON property priority

Returns:

  • (String)


5733
5734
5735
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5733

def priority
  @priority
end

#queryString

[Required] SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or GoogleSQL. Corresponds to the JSON property query

Returns:

  • (String)


5739
5740
5741
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5739

def query
  @query
end

#query_parametersArray<Google::Apis::BigqueryV2::QueryParameter>

Query parameters for GoogleSQL queries. Corresponds to the JSON property queryParameters



5744
5745
5746
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5744

def query_parameters
  @query_parameters
end

#range_partitioningGoogle::Apis::BigqueryV2::RangePartitioning

Range partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified. Corresponds to the JSON property rangePartitioning



5750
5751
5752
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5750

def range_partitioning
  @range_partitioning
end

#schema_update_optionsArray<String>

Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in three cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE_DATA; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable. Corresponds to the JSON property schemaUpdateOptions

Returns:

  • (Array<String>)


5763
5764
5765
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5763

def schema_update_options
  @schema_update_options
end

#script_optionsGoogle::Apis::BigqueryV2::ScriptOptions

Options related to script execution. Corresponds to the JSON property scriptOptions



5768
5769
5770
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5768

def script_options
  @script_options
end

#system_variablesGoogle::Apis::BigqueryV2::SystemVariables

System variables given to a query. Corresponds to the JSON property systemVariables



5773
5774
5775
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5773

def system_variables
  @system_variables
end

#table_definitionsHash<String,Google::Apis::BigqueryV2::ExternalDataConfiguration>

Optional. You can specify external table definitions, which operate as ephemeral tables that can be queried. These definitions are configured using a JSON map, where the string key represents the table identifier, and the value is the corresponding external data configuration object. Corresponds to the JSON property tableDefinitions



5781
5782
5783
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5781

def table_definitions
  @table_definitions
end

#time_partitioningGoogle::Apis::BigqueryV2::TimePartitioning

Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified. Corresponds to the JSON property timePartitioning



5787
5788
5789
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5787

def time_partitioning
  @time_partitioning
end

#use_legacy_sqlBoolean Also known as: use_legacy_sql?

Optional. Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query uses BigQuery's GoogleSQL. When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false. Corresponds to the JSON property useLegacySql

Returns:

  • (Boolean)


5796
5797
5798
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5796

def use_legacy_sql
  @use_legacy_sql
end

#use_query_cacheBoolean Also known as: use_query_cache?

Optional. Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified. The default value is true. Corresponds to the JSON property useQueryCache

Returns:

  • (Boolean)


5805
5806
5807
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5805

def use_query_cache
  @use_query_cache
end

#user_defined_function_resourcesArray<Google::Apis::BigqueryV2::UserDefinedFunctionResource>

Describes user-defined function resources used in the query. Corresponds to the JSON property userDefinedFunctionResources



5811
5812
5813
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5811

def user_defined_function_resources
  @user_defined_function_resources
end

#write_dispositionString

Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the data, removes the constraints, and uses the schema from the query result. * WRITE_TRUNCATE_DATA: If the table already exists, BigQuery overwrites the data, but keeps the constraints and schema of the existing table. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion. Corresponds to the JSON property writeDisposition

Returns:

  • (String)


5826
5827
5828
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5826

def write_disposition
  @write_disposition
end

#write_incremental_resultsBoolean Also known as: write_incremental_results?

Optional. This is only supported for a SELECT query using a temporary table. If set, the query is allowed to write results incrementally to the temporary result table. This may incur a performance penalty. This option cannot be used with Legacy SQL. This feature is not yet available. Corresponds to the JSON property writeIncrementalResults

Returns:

  • (Boolean)


5834
5835
5836
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5834

def write_incremental_results
  @write_incremental_results
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
# File 'lib/google/apis/bigquery_v2/classes.rb', line 5842

def update!(**args)
  @allow_large_results = args[:allow_large_results] if args.key?(:allow_large_results)
  @clustering = args[:clustering] if args.key?(:clustering)
  @connection_properties = args[:connection_properties] if args.key?(:connection_properties)
  @continuous = args[:continuous] if args.key?(:continuous)
  @create_disposition = args[:create_disposition] if args.key?(:create_disposition)
  @create_session = args[:create_session] if args.key?(:create_session)
  @default_dataset = args[:default_dataset] if args.key?(:default_dataset)
  @destination_encryption_configuration = args[:destination_encryption_configuration] if args.key?(:destination_encryption_configuration)
  @destination_table = args[:destination_table] if args.key?(:destination_table)
  @flatten_results = args[:flatten_results] if args.key?(:flatten_results)
  @maximum_billing_tier = args[:maximum_billing_tier] if args.key?(:maximum_billing_tier)
  @maximum_bytes_billed = args[:maximum_bytes_billed] if args.key?(:maximum_bytes_billed)
  @parameter_mode = args[:parameter_mode] if args.key?(:parameter_mode)
  @preserve_nulls = args[:preserve_nulls] if args.key?(:preserve_nulls)
  @priority = args[:priority] if args.key?(:priority)
  @query = args[:query] if args.key?(:query)
  @query_parameters = args[:query_parameters] if args.key?(:query_parameters)
  @range_partitioning = args[:range_partitioning] if args.key?(:range_partitioning)
  @schema_update_options = args[:schema_update_options] if args.key?(:schema_update_options)
  @script_options = args[:script_options] if args.key?(:script_options)
  @system_variables = args[:system_variables] if args.key?(:system_variables)
  @table_definitions = args[:table_definitions] if args.key?(:table_definitions)
  @time_partitioning = args[:time_partitioning] if args.key?(:time_partitioning)
  @use_legacy_sql = args[:use_legacy_sql] if args.key?(:use_legacy_sql)
  @use_query_cache = args[:use_query_cache] if args.key?(:use_query_cache)
  @user_defined_function_resources = args[:user_defined_function_resources] if args.key?(:user_defined_function_resources)
  @write_disposition = args[:write_disposition] if args.key?(:write_disposition)
  @write_incremental_results = args[:write_incremental_results] if args.key?(:write_incremental_results)
end