def __init__(self, job_id, source, destination_uris, client, job_config=None): super(ExtractJob, self).__init__(job_id, client) if job_config is None: job_config = ExtractJobConfig() self._properties["configuration"] = job_config._properties self._configuration = job_config if source: source_ref = {"projectId": source.project, "datasetId": source.dataset_id} if isinstance(source, (Table, TableListItem, TableReference)): source_ref["tableId"] = source.table_id source_key = "sourceTable" else: source_ref["modelId"] = source.model_id source_key = "sourceModel" _helpers._set_sub_prop( self._properties, ["configuration", "extract", source_key], source_ref ) if destination_uris: _helpers._set_sub_prop( self._properties, ["configuration", "extract", "destinationUris"], destination_uris, )
def __init__(self, job_id, source_uris, destination, client, job_config=None): super(LoadJob, self).__init__(job_id, client) if not job_config: job_config = LoadJobConfig() self._configuration = job_config self._properties["configuration"] = job_config._properties if source_uris is not None: _helpers._set_sub_prop(self._properties, ["configuration", "load", "sourceUris"], source_uris) if destination is not None: _helpers._set_sub_prop( self._properties, ["configuration", "load", "destinationTable"], destination.to_api_repr(), )
def schema(self, value): if value is None: self._del_sub_prop("schema") return value = _to_schema_fields(value) _helpers._set_sub_prop( self._properties, ["load", "schema", "fields"], [field.to_api_repr() for field in value], )
def _set_sub_prop(self, key, value): """Set a value in the ``self._properties[self._job_type]`` dictionary. Most job properties are inside the dictionary related to the job type (e.g. 'copy', 'extract', 'load', 'query'). Use this method to set those properties:: self._set_sub_prop('useLegacySql', False) This is equivalent to using the ``_helper._set_sub_prop`` function:: _helper._set_sub_prop( self._properties, ['query', 'useLegacySql'], False) Args: key (str): Key to set in the ``self._properties[self._job_type]`` dictionary. value (object): Value to set. """ _helpers._set_sub_prop(self._properties, [self._job_type, key], value)
def __init__(self, job_id, sources, destination, client, job_config=None): super(CopyJob, self).__init__(job_id, client) if not job_config: job_config = CopyJobConfig() self._configuration = job_config self._properties["configuration"] = job_config._properties if destination: _helpers._set_sub_prop( self._properties, ["configuration", "copy", "destinationTable"], destination.to_api_repr(), ) if sources: source_resources = [source.to_api_repr() for source in sources] _helpers._set_sub_prop( self._properties, ["configuration", "copy", "sourceTables"], source_resources, )
def destination_table_friendly_name(self, value): keys = [self._job_type, "destinationTableProperties", "friendlyName"] if value is not None: _helpers._set_sub_prop(self._properties, keys, value) else: _helpers._del_sub_prop(self._properties, keys)
def destination_table_description(self, value): keys = [self._job_type, "destinationTableProperties", "description"] if value is not None: _helpers._set_sub_prop(self._properties, keys, value) else: _helpers._del_sub_prop(self._properties, keys)
def _call_fut(self, container, keys, value): from google.cloud.bigquery._helpers import _set_sub_prop return _set_sub_prop(container, keys, value)