diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java
index d9d6d4ce0866..02bec14de6b9 100644
--- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java
+++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java
@@ -19,6 +19,7 @@
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.cloud.Page;
+import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption;
import com.google.cloud.bigquery.BigQuery.DatasetOption;
import com.google.cloud.bigquery.BigQuery.TableListOption;
import com.google.cloud.bigquery.BigQuery.TableOption;
@@ -144,6 +145,16 @@ public Dataset build() {
/**
* Checks if this dataset exists.
*
+ *
Example of checking whether a dataset exists.
+ *
{@code
+ * boolean exists = dataset.exists();
+ * if (exists) {
+ * // the dataset exists
+ * } else {
+ * // the dataset was not found
+ * }
+ * }
+ *
* @return {@code true} if this dataset exists, {@code false} otherwise
* @throws BigQueryException upon failure
*/
@@ -155,6 +166,14 @@ public boolean exists() {
* Fetches current dataset's latest information. Returns {@code null} if the dataset does not
* exist.
*
+ * Example of reloading a dataset.
+ *
{@code
+ * Dataset latestDataset = dataset.reload();
+ * if (latestDataset == null) {
+ * // The dataset was not found
+ * }
+ * }
+ *
* @param options dataset options
* @return a {@code Dataset} object with latest information or {@code null} if not found
* @throws BigQueryException upon failure
@@ -167,6 +186,14 @@ public Dataset reload(DatasetOption... options) {
* Updates the dataset's information with this dataset's information. Dataset's user-defined id
* cannot be changed. A new {@code Dataset} object is returned.
*
+ * Example of updating a dataset.
+ *
{@code
+ * String friendlyName = "my_friendly_name";
+ * Builder builder = dataset.toBuilder();
+ * builder.friendlyName(friendlyName);
+ * Dataset updatedDataset = builder.build().update();
+ * }
+ *
* @param options dataset options
* @return a {@code Dataset} object with updated information
* @throws BigQueryException upon failure
@@ -178,16 +205,36 @@ public Dataset update(DatasetOption... options) {
/**
* Deletes this dataset.
*
+ * Example of deleting a dataset.
+ *
{@code
+ * boolean deleted = dataset.delete();
+ * if (deleted) {
+ * // The dataset was deleted
+ * } else {
+ * // The dataset was not found
+ * }
+ * }
+ *
* @return {@code true} if dataset was deleted, {@code false} if it was not found
* @throws BigQueryException upon failure
*/
- public boolean delete() {
- return bigquery.delete(datasetId());
+ public boolean delete(DatasetDeleteOption... options) {
+ return bigquery.delete(datasetId(), options);
}
/**
* Returns the paginated list of tables in this dataset.
*
+ * Example of listing tables in the dataset.
+ *
{@code
+ * Page
tables = dataset.list();
+ * Iterator tableIterator = tables.iterateAll();
+ * while (tableIterator.hasNext()) {
+ * Table table = tableIterator.next();
+ * // do something with the table
+ * }
+ * }
+ *
* @param options options for listing tables
* @throws BigQueryException upon failure
*/
@@ -198,6 +245,12 @@ public Page list(TableListOption... options) {
/**
* Returns the requested table in this dataset or {@code null} if not found.
*
+ * Example of getting a table in the dataset.
+ *
{@code
+ * String tableName = “my_table”;
+ * Table table = dataset.get(tableName);
+ * }
+ *
* @param table user-defined id of the requested table
* @param options table options
* @throws BigQueryException upon failure
@@ -209,6 +262,18 @@ public Table get(String table, TableOption... options) {
/**
* Creates a new table in this dataset.
*
+ * Example of creating a table in the dataset with schema and time partitioning.
+ *
{@code
+ * String tableName = “my_table”;
+ * String fieldName = “my_field”;
+ * Schema schema = Schema.of(Field.of(fieldName, Type.string()));
+ * StandardTableDefinition definition = StandardTableDefinition.builder()
+ * .schema(schema)
+ * .timePartitioning(TimePartitioning.of(TimePartitioning.Type.DAY))
+ * .build();
+ * Table table = dataset.create(tableName, definition);
+ * }
+ *
* @param table the table's user-defined id
* @param definition the table's definition
* @param options options for table creation
diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java
index 3cd05860a97a..a44c7f6f166c 100644
--- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java
+++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/DatasetSnippets.java
@@ -23,13 +23,15 @@
package com.google.cloud.examples.bigquery.snippets;
import com.google.cloud.Page;
-import com.google.cloud.bigquery.BigQuery.TableListOption;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.Dataset.Builder;
import com.google.cloud.bigquery.Field;
+import com.google.cloud.bigquery.Field.Type;
import com.google.cloud.bigquery.Schema;
import com.google.cloud.bigquery.StandardTableDefinition;
import com.google.cloud.bigquery.Table;
+import com.google.cloud.bigquery.TimePartitioning;
+
import java.util.Iterator;
/**
@@ -48,78 +50,81 @@ public DatasetSnippets(Dataset dataset) {
*/
// [TARGET exists()]
public boolean doesDatasetExist() {
- // [START doesDatasetExist]
- boolean exists = this.dataset.exists();
- // [END doesDatasetExist]
+ // [START exists]
+ boolean exists = dataset.exists();
+ if (exists) {
+ // the dataset exists
+ } else {
+ // the dataset was not found
+ }
+ // [END exists]
return exists;
}
/**
* Example of reloading a dataset.
*/
- // [TARGET reload(BigQuery.DatasetOption... options)]
+ // [TARGET reload(DatasetOption...)]
public Dataset reloadDataset() {
- // [START reloadDataset]
- Dataset dataset = this.dataset.reload();
- if (dataset != null) {
- // The dataset was reloaded.
- } else {
- // The dataset was not found.
+ // [START reload]
+ Dataset latestDataset = dataset.reload();
+ if (latestDataset == null) {
+ // The dataset was not found
}
- // [END reloadDataset]
- return dataset;
+ // [END reload]
+ return latestDataset;
}
/**
* Example of updating a dataset.
*/
- // [TARGET update(BigQuery.DatasetOption... options)]
+ // [TARGET update(DatasetOption...)]
// [VARIABLE "my_friendly_name"]
public Dataset updateDataset(String friendlyName) {
- // [START updateDataset]
- Builder builder = this.dataset.toBuilder();
+ // [START update]
+ Builder builder = dataset.toBuilder();
builder.friendlyName(friendlyName);
Dataset updatedDataset = builder.build().update();
- // [END updateDataset]
+ // [END update]
return updatedDataset;
}
/**
* Example of deleting a dataset.
*/
- // [TARGET delete()]
+ // [TARGET delete(DatasetDeleteOption...)]
public boolean deleteDataset() {
- // [START deleteDataset]
- boolean deleted = this.dataset.delete();
+ // [START delete]
+ boolean deleted = dataset.delete();
if (deleted) {
- // The dataset was deleted.
+ // The dataset was deleted
} else {
- // The dataset was not found.
+ // The dataset was not found
}
- // [END deleteDataset]
+ // [END delete]
return deleted;
}
/**
- * Example of listing dataset tables.
+ * Example of listing tables in the dataset.
*/
- // [TARGET list(BigQuery.TableListOption... options)]
- public Page listDataset() {
- // [START listDataset]
+ // [TARGET list(TableListOption...)]
+ public Page list() {
+ // [START list]
Page tables = dataset.list();
Iterator tableIterator = tables.iterateAll();
while (tableIterator.hasNext()) {
Table table = tableIterator.next();
// do something with the table
}
- // [END listDataset]
+ // [END list]
return tables;
}
/**
- * Example of getting a dataset table.
+ * Example of getting a table in the dataset.
*/
- // [TARGET get(String table, BigQuery.TableOption... options)]
+ // [TARGET get(String, TableOption...)]
// [VARIABLE “my_table”]
public Table getTable(String tableName) {
// [START getTable]
@@ -127,38 +132,22 @@ public Table getTable(String tableName) {
// [END getTable]
return table;
}
-
- /**
- * Example of creating an empty dataset table.
- */
- // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)]
- // [VARIABLE “my_table”]
- public Table createTable(String tableName) {
- // [START createTable]
- StandardTableDefinition definition = StandardTableDefinition.builder()
- .build();
- Table table = dataset.create(tableName, definition);
- // [END createTable]
- return table;
- }
/**
- * Example of creating a dataset table with schema and time partitioning.
+ * Example of creating a table in the dataset with schema and time partitioning.
*/
- // [TARGET create(String table, TableDefinition definition, BigQuery.TableOption... options)]
+ // [TARGET create(String, TableDefinition, TableOption...)]
// [VARIABLE “my_table”]
// [VARIABLE “my_field”]
public Table createTable(String tableName, String fieldName) {
// [START createTable]
- Schema schema = Schema.builder()
- .addField(Field.of(fieldName, Field.Type.string()))
- .build();
+ Schema schema = Schema.of(Field.of(fieldName, Type.string()));
StandardTableDefinition definition = StandardTableDefinition.builder()
.schema(schema)
+ .timePartitioning(TimePartitioning.of(TimePartitioning.Type.DAY))
.build();
Table table = dataset.create(tableName, definition);
// [END createTable]
return table;
}
-
}
diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java
index 3f8ef00a916b..7d30105d3039 100644
--- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java
+++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITDatasetSnippets.java
@@ -18,20 +18,22 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import com.google.cloud.Page;
import com.google.cloud.bigquery.BigQuery;
-import com.google.cloud.bigquery.BigQueryOptions;
-import com.google.cloud.bigquery.Dataset;
+import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption;
+import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.Dataset.Builder;
import com.google.cloud.bigquery.DatasetInfo;
import com.google.cloud.bigquery.Field;
import com.google.cloud.bigquery.StandardTableDefinition;
import com.google.cloud.bigquery.Table;
+import com.google.cloud.bigquery.testing.RemoteBigQueryHelper;
-import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -40,102 +42,104 @@
import java.util.Iterator;
public class ITDatasetSnippets {
- private static final String datasetId = "dataset_snippets_integration_test";
- private static final String nonExistandDatasetId = "non_existant_dataset";
- private static final String friendlyName = "some_friendly_name";
+
+ private static final String DATASET = RemoteBigQueryHelper.generateDatasetName();
+ private static final String NON_EXISTING_DATASET = RemoteBigQueryHelper.generateDatasetName();
+ private static final String FRIENDLY_NAME = "some_friendly_name";
private static BigQuery bigquery;
+ private static Dataset nonExistingDataset;
private static Dataset dataset;
private static DatasetSnippets datasetSnippets;
+ private static DatasetSnippets nonExistingDatasetSnippets;
@BeforeClass
public static void beforeClass() {
- bigquery = BigQueryOptions.defaultInstance().service();
+ bigquery = RemoteBigQueryHelper.create().options().service();
+ dataset = bigquery.create(DatasetInfo.builder(DATASET).build());
+ nonExistingDataset = bigquery.create(DatasetInfo.builder(NON_EXISTING_DATASET).build());
+ nonExistingDataset.delete(DatasetDeleteOption.deleteContents());
}
@Before
public void before() {
- dataset = bigquery.create(DatasetInfo.builder(datasetId).build());
datasetSnippets = new DatasetSnippets(dataset);
+ nonExistingDatasetSnippets = new DatasetSnippets(nonExistingDataset);
}
- @After
- public void after() {
- bigquery.delete(datasetId, BigQuery.DatasetDeleteOption.deleteContents());
+ @AfterClass
+ public static void afterClass() {
+ bigquery.delete(DATASET, DatasetDeleteOption.deleteContents());
}
@Test
- public void testDoesDataExistReturnsFalseWhenDatasetDoesntExist() {
- Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build());
- DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset);
- bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents());
- assertFalse(datasetSnippetsWithNonExistantDataset.doesDatasetExist());
+ public void testExistsNonExistingDataset() {
+ assertFalse(nonExistingDatasetSnippets.doesDatasetExist());
}
@Test
- public void testDoesDataExistReturnsTrueWhenDatasetExists() {
+ public void testExists() {
assertTrue(datasetSnippets.doesDatasetExist());
}
-
+
@Test
- public void testReloadDatasetReturnsNullWhenDatasetDoesntExist() {
- Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build());
- DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset);
- bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents());
- assertNull(datasetSnippetsWithNonExistantDataset.reloadDataset());
+ public void testReloadNonExistingDataset() {
+ assertNull(nonExistingDatasetSnippets.reloadDataset());
}
-
+
@Test
- public void testReloadDatasetReturnsTheReloadedDatasetWhenDatasetExists() {
+ public void testReload() {
assertNull(dataset.friendlyName());
-
+
Builder builder = dataset.toBuilder();
- builder.friendlyName(friendlyName);
+ builder.friendlyName(FRIENDLY_NAME);
builder.build().update();
-
+
Dataset reloadedDataset = datasetSnippets.reloadDataset();
- assertEquals(friendlyName, reloadedDataset.friendlyName());
+ assertEquals(FRIENDLY_NAME, reloadedDataset.friendlyName());
}
-
+
@Test
- public void testUpdateDatasetReturnsTheUpdatedDatasetWhenDatasetExists() {
+ public void testUpdate() {
assertNull(dataset.friendlyName());
-
- Dataset updatedDataset = datasetSnippets.updateDataset(friendlyName);
- assertEquals(friendlyName, updatedDataset.friendlyName());
+
+ Dataset updatedDataset = datasetSnippets.updateDataset(FRIENDLY_NAME);
+ assertEquals(FRIENDLY_NAME, updatedDataset.friendlyName());
}
-
+
@Test
- public void testDeleteDatasetReturnsFalseWhenDatasetDoesntExist() {
- Dataset nonExistantDataset = bigquery.create(DatasetInfo.builder(nonExistandDatasetId).build());
- DatasetSnippets datasetSnippetsWithNonExistantDataset = new DatasetSnippets(nonExistantDataset);
- bigquery.delete(nonExistandDatasetId, BigQuery.DatasetDeleteOption.deleteContents());
- assertFalse(datasetSnippetsWithNonExistantDataset.deleteDataset());
+ public void testDeleteNonExistingDataset() {
+ assertFalse(nonExistingDatasetSnippets.deleteDataset());
}
-
+
@Test
- public void testDeleteDatasetReturnsTrueWhenDatasetExists() {
+ public void testDelete() {
+ String datasetName = RemoteBigQueryHelper.generateDatasetName();
+ DatasetInfo dataset = DatasetInfo.builder(datasetName).build();
+ DatasetSnippets datasetSnippets = new DatasetSnippets(bigquery.create(dataset));
assertTrue(datasetSnippets.deleteDataset());
}
@Test
- public void testListTablesWhenEmpty() {
- Page tables = datasetSnippets.listDataset();
+ public void testListTablesEmpty() {
+ Page tables = datasetSnippets.list();
assertFalse(tables.iterateAll().hasNext());
}
@Test
- public void testListTablesWhenNotEmpty() {
+ public void testListTablesNotEmpty() {
String expectedTableName = "test_table";
dataset.create(expectedTableName, StandardTableDefinition.builder().build());
- Page tables = datasetSnippets.listDataset();
+ Page tables = datasetSnippets.list();
Iterator iterator = tables.iterateAll();
assertTrue(iterator.hasNext());
Table actualTable = iterator.next();
- assertTrue(actualTable.tableId().table().equals(expectedTableName));
+ assertEquals(expectedTableName, actualTable.tableId().table());
assertFalse(iterator.hasNext());
+
+ bigquery.delete(DATASET, expectedTableName);
}
@Test
@@ -145,30 +149,25 @@ public void testGetTable() {
dataset.create(expectedTableName, StandardTableDefinition.builder().build());
Table actualTable = datasetSnippets.getTable(expectedTableName);
- Assert.assertNotNull(actualTable);
- Assert.assertEquals(expectedTableName, actualTable.tableId().table());
- }
-
- @Test
- public void testCreateTable() {
- String expectedTableName = "test_table";
+ assertNotNull(actualTable);
+ assertEquals(expectedTableName, actualTable.tableId().table());
- Table actualTable = datasetSnippets.createTable(expectedTableName);
- Assert.assertNotNull(actualTable);
- Assert.assertEquals(expectedTableName, actualTable.tableId().table());
+ bigquery.delete(DATASET, expectedTableName);
}
@Test
- public void testCreateTableWithSchema() {
+ public void testCreateTable() {
String expectedTableName = "test_table";
String expectedFieldName = "test_field";
Table actualTable = datasetSnippets.createTable(expectedTableName, expectedFieldName);
- Assert.assertNotNull(actualTable);
- Assert.assertEquals(expectedTableName, actualTable.tableId().table());
- Assert.assertEquals(1, actualTable.definition().schema().fields().size());
+ assertNotNull(actualTable);
+ assertEquals(expectedTableName, actualTable.tableId().table());
+ assertEquals(1, actualTable.definition().schema().fields().size());
Field actualField = actualTable.definition().schema().fields().get(0);
- Assert.assertEquals(expectedFieldName, actualField.name());
+ assertEquals(expectedFieldName, actualField.name());
+
+ bigquery.delete(DATASET, expectedTableName);
}
}