Class: Google::Cloud::Bigquery::CopyJob::Updater

Inherits:
Google::Cloud::Bigquery::CopyJob show all
Defined in:
lib/google/cloud/bigquery/copy_job.rb

Overview

Yielded to a block to accumulate changes for an API request.

Attributes collapse

Methods inherited from Google::Cloud::Bigquery::CopyJob

#create_if_needed?, #create_never?, #destination, #encryption, #source, #write_append?, #write_empty?, #write_truncate?

Methods inherited from Job

#cancel, #configuration, #created_at, #done?, #ended_at, #error, #errors, #failed?, #job_id, #labels, #location, #pending?, #project_id, #reload!, #rerun!, #running?, #started_at, #state, #statistics, #status, #user_email, #wait_until_done!

Instance Method Details

#create=(new_create) ⇒ Object

Sets the create disposition.

This specifies whether the job is allowed to create new tables. The default value is needed.

The following values are supported:

  • needed - Create the table if it does not exist.
  • never - The table must already exist. A 'notFound' error is raised if the table does not exist.

Parameters:

  • new_create (String)

    The new create disposition.



223
224
225
226
# File 'lib/google/cloud/bigquery/copy_job.rb', line 223

def create= new_create
  @gapi.configuration.copy.update! create_disposition:
    Convert.create_disposition(new_create)
end

#encryption=(val) ⇒ Object

Sets the encryption configuration of the destination table.

Examples:

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset "my_dataset"
table = dataset.table "my_table"

key_name = "projects/a/locations/b/keyRings/c/cryptoKeys/d"
encrypt_config = bigquery.encryption kms_key: key_name
job = table.copy_job "my_dataset.new_table" do |job|
  job.encryption = encrypt_config
end

Parameters:

  • val (Google::Cloud::BigQuery::EncryptionConfiguration)

    Custom encryption configuration (e.g., Cloud KMS keys).



269
270
271
272
273
# File 'lib/google/cloud/bigquery/copy_job.rb', line 269

def encryption= val
  @gapi.configuration.copy.update!(
    destination_encryption_configuration: val.to_gapi
  )
end

#labels=(value) ⇒ Object

Sets the labels to use for the job.

Parameters:

  • value (Hash)

    A hash of user-provided labels associated with the job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.



287
288
289
# File 'lib/google/cloud/bigquery/copy_job.rb', line 287

def labels= value
  @gapi.configuration.update! labels: value
end

#location=(value) ⇒ Object

Sets the geographic location where the job should run. Required except for US and EU.

Examples:

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset "my_dataset"
table = dataset.table "my_table"
destination_table = dataset.table "my_destination_table"

copy_job = table.copy_job destination_table do |j|
  j.location = "EU"
end

copy_job.wait_until_done!
copy_job.done? #=> true

Parameters:

  • value (String)

    A geographic location, such as "US", "EU" or "asia-northeast1". Required except for US and EU.



204
205
206
# File 'lib/google/cloud/bigquery/copy_job.rb', line 204

def location= value
  @gapi.job_reference.location = value
end

#write=(new_write) ⇒ Object

Sets the write disposition.

This specifies how to handle data already present in the table. The default value is append.

The following values are supported:

  • truncate - BigQuery overwrites the table data.
  • append - BigQuery appends the data to the table.
  • empty - An error will be returned if the table already contains data.

Parameters:

  • new_write (String)

    The new write disposition.



244
245
246
247
# File 'lib/google/cloud/bigquery/copy_job.rb', line 244

def write= new_write
  @gapi.configuration.copy.update! write_disposition:
    Convert.write_disposition(new_write)
end