繁体   English   中英

使用Java将数据从Google云端存储加载到BigQuery

[英]Load data from Google Cloud Storage to BigQuery using Java

我想将数据从Google Cloud Storage上传到Big Query中的表。 有我的代码来创建工作:

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

    List<String> sources = new ArrayList<String>();
    sources.add("gs://bucket/file.cvs");
    loadConfig.setSourceUris(sources);

    TableReference tableRef = new TableReference();
    tableRef.setDatasetId("DATASET_ID");
    tableRef.setTableId(TABLE_ID);
    tableRef.setProjectId(PROJECT_ID);
    loadConfig.setDestinationTable(tableRef);

    List<TableFieldSchema> fields = FieldsBigQuery.schema();

    TableSchema schema = new TableSchema();
    schema.setFields(fields);

    loadConfig.setSchema(schema);
    config.setLoad(loadConfig);
    job.setConfiguration(config);

    Insert insert = _bigquery.jobs().insert(PROJECT_ID, job);
    insert.setProjectId(PROJECT_ID);
    JobReference jobRef =  insert.execute().getJobReference();

我没有任何错误或异常,但是它没有将任何数据上传到我的表中(表大小为0B)。 我尝试创建没有任何数据的表,然后将数据上传到该表,但事实并非如此。

我将不胜感激任何帮助,

非常感谢!

请记住使用以下方法检查作业状态:

JobStatus status =
    _bigquery.jobs().get(PROJECT_ID, jobRef.getJobId()).execute().getStatus();
System.out.println(status.toPrettyString());

如果一切正常,则作业状态可能为PENDING或RUNNING,您必须等待直到完成。 或者,您将能够阅读无法运行的原因和消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM