【问题标题】:Load data from Google Cloud Storage to BigQuery using Java使用 Java 将数据从 Google Cloud Storage 加载到 BigQuery
【发布时间】:2013-05-24 13:14:53
【问题描述】:

我想将数据从 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)。我试图创建没有任何数据的表,而不是将数据上传到该表,但它不是。

如果有任何帮助,我将不胜感激,

非常感谢!

【问题讨论】:

    标签: google-app-engine google-bigquery google-cloud-storage


    【解决方案1】:

    记得检查工作状态:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2017-11-13
      • 2018-03-28
      • 1970-01-01
      • 2018-04-30
      • 2021-12-28
      相关资源
      最近更新 更多