1

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) にデータをアップロードしていません。データなしでテーブルを作成しようとしましたが、このテーブルにデータをアップロードしようとしましたが、そうではありません。

助けていただければ幸いです。

どうもありがとう!

4

1 に答える 1

1

次の方法でジョブのステータスを確認してください。

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

すべてが正常に機能している場合、ジョブの状態は PENDING または RUNNING である可能性があり、完了するまで待つ必要があります。または、実行できなかった理由とメッセージを読み取ることができます。

于 2013-05-29T18:49:46.830 に答える