Pergunta

Eu quero fazer o upload de dados do Google Cloud Storage para BigQuery, mas eu não posso encontrar qualquer Java de código de exemplo que descreve como fazer isso.Alguém por favor me dê alguma dica de como fazer isso?

O que eu realmente quero fazer é a transferência de dados do Google App Engine tabelas para BigQuery (e sincronização em uma base diária), para que eu possa fazer algumas análises.Eu uso o Google Serviço de Armazenamento em Nuvem do Google App Engine para escrever (de novo) registros em arquivos no Google Cloud Storage, e a única parte que falta é para acrescentar os dados a tabelas em BigQuery (ou criar uma nova tabela para a primeira hora de escrever).Confesso que eu possa carregar manualmente/acrescentar os dados usando o BigQuery ferramenta de browser, mas eu gostaria de ser automática, caso contrário, eu preciso fazê-lo manualmente todos os dias.

Foi útil?

Solução

Eu não sei de nenhum java amostras para carregar tabelas do Google Cloud Storage para o BigQuery.O que disse, se você seguir as instruções para a execução de trabalhos de consulta aqui, você pode executar um trabalho de Carga, em vez disso, com o seguinte:

Job job = new Job();
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad loadConfig = new JobConfigurationLoad();
config.setLoad(loadConfig);

job.setConfiguration(config);

// Set where you are importing from (i.e. the Google Cloud Storage paths).
List<String> sources = new ArrayList<String>();
sources.add("gs://bucket/csv_to_load.csv");
loadConfig.setSourceUris(sources);

// Describe the resulting table you are importing to:
TableReference tableRef = new TableReference();
tableRef.setDatasetId("myDataset");
tableRef.setTableId("myTable");
tableRef.setProjectId(projectId);
loadConfig.setDestinationTable(tableRef);

List<TableFieldSchema> fields = new ArrayList<TableFieldSchema>();
TableFieldSchema fieldFoo = new TableFieldSchema();
fieldFoo.setName("foo");
fieldFoo.setType("string");
TableFieldSchema fieldBar = new TableFieldSchema();
fieldBar.setName("bar");
fieldBar.setType("integer");
fields.add(fieldFoo);
fields.add(fieldBar);
TableSchema schema = new TableSchema();
schema.setFields(fields);
loadConfig.setSchema(schema);

// Also set custom delimiter or header rows to skip here....
// [not shown].

Insert insert = bigquery.jobs().insert(projectId, job);
insert.setProjectId(projectId);
JobReference jobRef =  insert.execute().getJobReference();

// ... see rest of codelab for waiting for job to complete.

Para obter mais informações sobre a carga objeto de configuração, consulte o javadoc aqui.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top