Método: projects.locations.transferConfigs.runs.startBigQueryJobs

Notifica ao serviço de transferência de dados que os dados estão prontos para carregamento. O serviço iniciará e monitorará vários jobs de carregamento do BigQuery relativos a uma execução de transferência. Os jobs monitorados serão repetidos automaticamente e produzirão mensagens de registro no início e no término de cada job. Pode ser chamado várias vezes para a mesma execução de transferência.

Solicitação HTTP

POST https://bigquerydatatransfer.googleapis.com/v1/{name=projects/*/locations/*/transferConfigs/*/runs/*}:startBigQueryJobs

O URL usa a sintaxe de transcodificação gRPC.

Parâmetros de caminho

Parâmetros
name

string

Nome do recurso no formato: "projects/{projectId}/locations/{locationId}/transferConfigs/{configId}/runs/{run_id}"

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON

{
  "importedData": [
    {
      object(ImportedDataInfo)
    }
  ],
  "userCredentials": string
}
Campos
importedData[]

object(ImportedDataInfo)

Importa jobs que precisam ser iniciados e monitorados.

userCredentials

string (bytes format)

Credenciais do usuário que precisam ser usadas para iniciar/monitorar jobs do BigQuery. Se não forem especificadas, os jobs serão iniciados usando as credenciais da conta de serviço da fonte de dados. Pode ser o token OAuth ou JWT.

Uma string codificada em base64.

Corpo da resposta

Se bem-sucedido, o corpo da resposta ficará vazio.

Escopos da autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Para saber mais, consulte a Visão geral da autenticação.

ImportedDataInfo

Descreve os dados que precisam ser importados.

Representação JSON

{
  "sql": string,
  "destinationTableId": string,
  "destinationTableDescription": string,
  "tableDefs": [
    {
      object(TableDefinition)
    }
  ],
  "userDefinedFunctions": [
    string
  ],
  "writeDisposition": enum(WriteDisposition)
}
Campos
sql

string

Consulta SQL a ser executada. Quando vazia, a API verifica se existe apenas um table_def especificado e carrega essa tabela. Apenas consultas SQL padrão são aceitas. Não é permitido SQL legado.

destinationTableId

string

Tabela em que os resultados precisam ser gravados.

destinationTableDescription

string

A descrição de uma tabela de destino. Pode ser várias frases ou parágrafos descrevendo o conteúdo da tabela em detalhes.

tableDefs[]

object(TableDefinition)

Quando usado SEM o parâmetro "sql", descreve o esquema da tabela de destino. Quando usado COM o parâmetro "sql", descreve tabelas com dados armazenados fora do BigQuery.

userDefinedFunctions[]

string

Código in-line para recursos de função definidos pelo usuário. Ignorado quando o parâmetro "sql" está vazio.

writeDisposition

enum(WriteDisposition)

Especifica a ação caso a tabela de destino já exista.

TableDefinition

Definição de tabela externa. Essas tabelas podem ser referenciadas com "name" na consulta e podem ser lidas como qualquer outra tabela.

Representação JSON

{
  "tableId": string,
  "sourceUris": [
    string
  ],
  "format": enum(Format),
  "maxBadRecords": number,
  "encoding": enum(Encoding),
  "csvOptions": {
    object(CsvOptions)
  },
  "schema": {
    object(RecordSchema)
  },
  "ignoreUnknownValues": boolean
}
Campos
tableId

string

tableId do BigQuery (obrigatório). Será usado para referenciar essa tabela na consulta.

sourceUris[]

string

URIs para os dados que precisam ser importados. Todos os URIs precisam ser do mesmo sistema de armazenamento.

format

enum(Format)

Descreve o formato dos dados em source_uri.

maxBadRecords

number

Especifica o número máximo de registros inválidos que podem ser ignorados. Se os registros inválidos excederem esse limite, a consulta será cancelada.

encoding

enum(Encoding)

Codificação de caracteres da entrada quando aplicável (CSV, JSON). O padrão é UTF8.

csvOptions

object(CsvOptions)

Opções específicas de CSV.

schema

object(RecordSchema)

Esquema opcional para os dados. Quando não especificado para os formatos JSON e CSV, tentaremos detectá-lo automaticamente.

ignoreUnknownValues

boolean

Indica se valores extras que não estão representados no esquema da tabela são permitidos.

Formato

Formato de dados.

Enums
FORMAT_UNSPECIFIED Formato não especificado. Nesse caso, temos que inferir o formato da fonte de dados.
CSV Formato CSV.
JSON JSON delimitado por nova linha.
AVRO Formato Avro. Consulte http://avro.apache.org.
RECORDIO RecordIO.
COLUMNIO ColumnIO.
CAPACITOR Capacitor.
PARQUET Formato de parquet. Consulte https://parquet.apache.org.
ORC Formato ORC. Consulte https://orc.apache.org.

Codificação

Codificação de dados de entrada no formato CSV/JSON.

Enums
ENCODING_UNSPECIFIED Codificação padrão (UTF8).
ISO_8859_1 Codificação ISO_8859_1.
UTF8 Codificação UTF8.

CsvOptions

Opções específicas de CSV.

Representação JSON

{
  "fieldDelimiter": string,
  "allowQuotedNewlines": boolean,
  "quoteChar": string,
  "skipLeadingRows": string,
  "allowJaggedRows": boolean
}
Campos
fieldDelimiter

string

O delimitador. No momento, restringimos a U+0001 para U+00FF e aplicamos restrições extras durante a validação.

allowQuotedNewlines

boolean

Se arquivos CSV podem ter novas linhas citadas. Se as novas linhas citadas forem permitidas, não será possível dividir os arquivos CSV.

quoteChar

string

O caractere de citação. No momento, restringimos a U+0000 para U+00FF e aplicamos restrições extras durante a validação. Defina como "\0" para indicar que nenhuma citação é usada.

skipLeadingRows

string (Int64Value format)

Número de linhas principais a serem ignoradas.

allowJaggedRows

boolean

Aceita linhas que não têm colunas opcionais posteriores.

RecordSchema

Descreve o esquema dos dados a serem ingeridos.

Representação JSON

{
  "fields": [
    {
      object(FieldSchema)
    }
  ]
}
Campos
fields[]

object(FieldSchema)

Um campo por coluna no registro.

FieldSchema

Define o esquema de um campo nos dados importados.

Representação JSON

{
  "fieldName": string,
  "type": enum(Type),
  "isRepeated": boolean,
  "description": string,
  "schema": {
    object(RecordSchema)
  }
}
Campos
fieldName

string

Nome do campo. Correspondências: [A-Za-z_][A-Za-z_0-9]{0,127}

type

enum(Type)

Tipo de campo

isRepeated

boolean

É um campo repetido.

description

string

Descrição para este campo.

schema

object(RecordSchema)

Presente se tipo == RECORD.

Tipo

Tipo de campo LINT.IfChange

Enums
TYPE_UNSPECIFIED Valor ilegal.
STRING 64K, UTF8.
INTEGER 64 bits, assinado.
FLOAT Ponto flutuante IEEE de 64 bits.
RECORD Tipo de agregação.
BYTES 64K, binário.
BOOLEAN Valor duplo.
TIMESTAMP Usec assinado de 64 bits desde a época UTC.
DATE Data civil: ano, mês, dia.
TIME Hora civil: hora, minuto, segundo, microssegundos.
DATETIME Combinação de data e hora civil.
NUMERIC Tipo numérico com 38 dígitos decimais de precisão e 9 dígitos decimais de escala.
GEOGRAPHY Objeto de geografia (go/googlesql_geography).

WriteDisposition

Opções para gravar na tabela. A opção WRITE_EMPTY é intencionalmente excluída do enum e é incompatível com o serviço de transferência de dados.

Enums
WRITE_DISPOSITION_UNSPECIFIED O padrão writeDispostion
WRITE_TRUNCATE substitui os dados da tabela.
WRITE_APPEND os dados são anexados à tabela. Observação: usar esse modo pode resultar em duplicação.

Faça um teste