use of com.google.cloud.bigquery.StandardTableDefinition in project google-cloud-java by GoogleCloudPlatform.
the class ITBigQueryTest method testInsertAllWithSuffix.
@Test
public void testInsertAllWithSuffix() throws InterruptedException {
String tableName = "test_insert_all_with_suffix_table";
StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA);
TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition);
assertNotNull(bigquery.create(tableInfo));
ImmutableMap.Builder<String, Object> builder1 = ImmutableMap.builder();
builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder1.put("StringField", "stringValue");
builder1.put("IntegerArrayField", ImmutableList.of(0, 1));
builder1.put("BooleanField", false);
builder1.put("BytesField", BYTES_BASE64);
builder1.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder1.put("IntegerField", 5);
builder1.put("FloatField", 1.2);
ImmutableMap.Builder<String, Object> builder2 = ImmutableMap.builder();
builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder2.put("StringField", "stringValue");
builder2.put("IntegerArrayField", ImmutableList.of(0, 1));
builder2.put("BooleanField", false);
builder2.put("BytesField", BYTES_BASE64);
builder2.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder2.put("IntegerField", 5);
builder2.put("FloatField", 1.2);
InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()).addRow(builder1.build()).addRow(builder2.build()).setTemplateSuffix("_suffix").build();
InsertAllResponse response = bigquery.insertAll(request);
assertFalse(response.hasErrors());
assertEquals(0, response.getInsertErrors().size());
String newTableName = tableName + "_suffix";
Table suffixTable = bigquery.getTable(DATASET, newTableName, TableOption.fields());
// wait until the new table is created. If the table is never created the test will time-out
while (suffixTable == null) {
Thread.sleep(1000L);
suffixTable = bigquery.getTable(DATASET, newTableName, TableOption.fields());
}
assertTrue(bigquery.delete(TableId.of(DATASET, tableName)));
assertTrue(suffixTable.delete());
}
use of com.google.cloud.bigquery.StandardTableDefinition in project google-cloud-java by GoogleCloudPlatform.
the class ITBigQueryTest method testInsertAll.
@Test
public void testInsertAll() throws IOException {
String tableName = "test_insert_all_table";
StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA);
TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition);
assertNotNull(bigquery.create(tableInfo));
ImmutableMap.Builder<String, Object> builder1 = ImmutableMap.builder();
builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder1.put("StringField", "stringValue");
builder1.put("IntegerArrayField", ImmutableList.of(0, 1));
builder1.put("BooleanField", false);
builder1.put("BytesField", BYTES_BASE64);
builder1.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder1.put("IntegerField", 5);
builder1.put("FloatField", 1.2);
ImmutableMap.Builder<String, Object> builder2 = ImmutableMap.builder();
builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder2.put("StringField", "stringValue");
builder2.put("IntegerArrayField", ImmutableList.of(0, 1));
builder2.put("BooleanField", false);
builder2.put("BytesField", BYTES_BASE64);
builder2.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder2.put("IntegerField", 5);
builder2.put("FloatField", 1.2);
InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()).addRow(builder1.build()).addRow(builder2.build()).build();
InsertAllResponse response = bigquery.insertAll(request);
assertFalse(response.hasErrors());
assertEquals(0, response.getInsertErrors().size());
assertTrue(bigquery.delete(TableId.of(DATASET, tableName)));
}
use of com.google.cloud.bigquery.StandardTableDefinition in project google-cloud-java by GoogleCloudPlatform.
the class ITBigQueryTest method testInsertAllWithErrors.
@Test
public void testInsertAllWithErrors() {
String tableName = "test_insert_all_with_errors_table";
StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA);
TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition);
assertNotNull(bigquery.create(tableInfo));
ImmutableMap.Builder<String, Object> builder1 = ImmutableMap.builder();
builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder1.put("StringField", "stringValue");
builder1.put("IntegerArrayField", ImmutableList.of(0, 1));
builder1.put("BooleanField", false);
builder1.put("BytesField", BYTES_BASE64);
builder1.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder1.put("IntegerField", 5);
builder1.put("FloatField", 1.2);
ImmutableMap.Builder<String, Object> builder2 = ImmutableMap.builder();
builder2.put("TimestampField", "invalidDate");
builder2.put("StringField", "stringValue");
builder2.put("IntegerArrayField", ImmutableList.of(0, 1));
builder2.put("BooleanField", false);
builder2.put("BytesField", BYTES_BASE64);
builder2.put("RecordField", ImmutableMap.of("TimestampField", "1969-07-20 20:18:04 UTC", "IntegerArrayField", ImmutableList.of(1, 0), "BooleanField", true, "BytesField", BYTES_BASE64));
builder2.put("IntegerField", 5);
builder2.put("FloatField", 1.2);
ImmutableMap.Builder<String, Object> builder3 = ImmutableMap.builder();
builder3.put("TimestampField", "2014-08-19 07:41:35.220 -05:00");
builder3.put("StringField", "stringValue");
builder3.put("IntegerArrayField", ImmutableList.of(0, 1));
builder3.put("BooleanField", false);
builder3.put("BytesField", BYTES_BASE64);
InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()).addRow(builder1.build()).addRow(builder2.build()).addRow(builder3.build()).setSkipInvalidRows(true).build();
InsertAllResponse response = bigquery.insertAll(request);
assertTrue(response.hasErrors());
assertEquals(2, response.getInsertErrors().size());
assertNotNull(response.getErrorsFor(1L));
assertNotNull(response.getErrorsFor(2L));
assertTrue(bigquery.delete(TableId.of(DATASET, tableName)));
}
use of com.google.cloud.bigquery.StandardTableDefinition in project google-cloud-java by GoogleCloudPlatform.
the class InsertDataAndQueryTable method main.
public static void main(String... args) throws InterruptedException {
// Create a service instance
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
// Create a dataset
String datasetId = "my_dataset_id";
bigquery.create(DatasetInfo.newBuilder(datasetId).build());
TableId tableId = TableId.of(datasetId, "my_table_id");
// Table field definition
Field stringField = Field.of("StringField", Field.Type.string());
// Table schema definition
Schema schema = Schema.of(stringField);
// Create a table
StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema);
bigquery.create(TableInfo.of(tableId, tableDefinition));
// Define rows to insert
Map<String, Object> firstRow = new HashMap<>();
Map<String, Object> secondRow = new HashMap<>();
firstRow.put("StringField", "value1");
secondRow.put("StringField", "value2");
// Create an insert request
InsertAllRequest insertRequest = InsertAllRequest.newBuilder(tableId).addRow(firstRow).addRow(secondRow).build();
// Insert rows
InsertAllResponse insertResponse = bigquery.insertAll(insertRequest);
// Check if errors occurred
if (insertResponse.hasErrors()) {
System.out.println("Errors occurred while inserting rows");
}
// Create a query request
QueryRequest queryRequest = QueryRequest.newBuilder("SELECT * FROM my_dataset_id.my_table_id").setMaxWaitTime(60000L).setPageSize(1000L).build();
// Request query to be executed and wait for results
QueryResponse queryResponse = bigquery.query(queryRequest);
while (!queryResponse.jobCompleted()) {
Thread.sleep(1000L);
queryResponse = bigquery.getQueryResults(queryResponse.getJobId());
}
// Read rows
System.out.println("Table rows:");
for (List<FieldValue> row : queryResponse.getResult().iterateAll()) {
System.out.println(row);
}
}
use of com.google.cloud.bigquery.StandardTableDefinition in project google-cloud-java by GoogleCloudPlatform.
the class ITBigQueryTest method testUpdateTableWithSelectedFields.
@Test
public void testUpdateTableWithSelectedFields() {
String tableName = "test_update_with_selected_fields_table";
StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA);
TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition);
Table createdTable = bigquery.create(tableInfo);
assertNotNull(createdTable);
Table updatedTable = bigquery.update(tableInfo.toBuilder().setDescription("newDescr").build(), TableOption.fields(TableField.DESCRIPTION));
assertTrue(updatedTable.getDefinition() instanceof StandardTableDefinition);
assertEquals(DATASET, updatedTable.getTableId().getDataset());
assertEquals(tableName, updatedTable.getTableId().getTable());
assertEquals("newDescr", updatedTable.getDescription());
assertNull(updatedTable.getDefinition().getSchema());
assertNull(updatedTable.getLastModifiedTime());
assertNull(updatedTable.<StandardTableDefinition>getDefinition().getNumBytes());
assertNull(updatedTable.<StandardTableDefinition>getDefinition().getNumRows());
assertTrue(createdTable.delete());
}
Aggregations