예제 #1
0
  @Test
  public void testExtractJob() throws InterruptedException {
    String tableName = "test_export_job_table";
    TableId destinationTable = TableId.of(DATASET, tableName);
    LoadJobConfiguration configuration =
        LoadJobConfiguration.builder(destinationTable, "gs://" + BUCKET + "/" + LOAD_FILE)
            .schema(SIMPLE_SCHEMA)
            .build();
    Job remoteLoadJob = bigquery.create(JobInfo.of(configuration));
    while (!remoteLoadJob.isDone()) {
      Thread.sleep(1000);
    }
    assertNull(remoteLoadJob.status().error());

    ExtractJobConfiguration extractConfiguration =
        ExtractJobConfiguration.builder(destinationTable, "gs://" + BUCKET + "/" + EXTRACT_FILE)
            .printHeader(false)
            .build();
    Job remoteExtractJob = bigquery.create(JobInfo.of(extractConfiguration));
    while (!remoteExtractJob.isDone()) {
      Thread.sleep(1000);
    }
    assertNull(remoteExtractJob.status().error());
    assertEquals(
        CSV_CONTENT,
        new String(storage.readAllBytes(BUCKET, EXTRACT_FILE), StandardCharsets.UTF_8));
    assertTrue(bigquery.delete(DATASET, tableName));
  }
예제 #2
0
 @BeforeClass
 public static void beforeClass() throws InterruptedException {
   RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create();
   RemoteGcsHelper gcsHelper = RemoteGcsHelper.create();
   bigquery = bigqueryHelper.options().service();
   storage = gcsHelper.options().service();
   storage.create(BucketInfo.of(BUCKET));
   storage.create(
       BlobInfo.builder(BUCKET, LOAD_FILE).contentType("text/plain").build(),
       CSV_CONTENT.getBytes(StandardCharsets.UTF_8));
   storage.create(
       BlobInfo.builder(BUCKET, JSON_LOAD_FILE).contentType("application/json").build(),
       JSON_CONTENT.getBytes(StandardCharsets.UTF_8));
   DatasetInfo info = DatasetInfo.builder(DATASET).description(DESCRIPTION).build();
   bigquery.create(info);
   LoadJobConfiguration configuration =
       LoadJobConfiguration.builder(
               TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json())
           .createDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED)
           .schema(TABLE_SCHEMA)
           .build();
   Job job = bigquery.create(JobInfo.of(configuration));
   while (!job.isDone()) {
     Thread.sleep(1000);
   }
   assertNull(job.status().error());
 }