/** Example of getting a dataset. */ // [TARGET getDataset(String, DatasetOption...)] // [VARIABLE "my_dataset"] public Dataset getDataset(String datasetName) { // [START ] Dataset dataset = bigquery.getDataset(datasetName); // [END ] return dataset; }
@Override public void run(BigQuery bigquery, DatasetId datasetId) { System.out.println("Dataset info: " + bigquery.getDataset(datasetId)); } }
/** Example of getting a dataset. */ // [TARGET getDataset(DatasetId, DatasetOption...)] // [VARIABLE "my_project_id"] // [VARIABLE "my_dataset_name"] public Dataset getDatasetFromId(String projectId, String datasetName) { // [START bigquery_get_dataset] DatasetId datasetId = DatasetId.of(projectId, datasetName); Dataset dataset = bigquery.getDataset(datasetId); // [END bigquery_get_dataset] return dataset; }
/** * Fetches current dataset's latest information. Returns {@code null} if the dataset does not * exist. * * <p>Example of reloading a dataset. * * <pre>{@code * Dataset latestDataset = dataset.reload(); * if (latestDataset == null) { * // The dataset was not found * } * }</pre> * * @param options dataset options * @return a {@code Dataset} object with latest information or {@code null} if not found * @throws BigQueryException upon failure */ public Dataset reload(DatasetOption... options) { return bigquery.getDataset(getDatasetId().getDataset(), options); }
/** * Checks if this dataset exists. * * <p>Example of checking whether a dataset exists. * * <pre>{@code * boolean exists = dataset.exists(); * if (exists) { * // the dataset exists * } else { * // the dataset was not found * } * }</pre> * * @return {@code true} if this dataset exists, {@code false} otherwise * @throws BigQueryException upon failure */ public boolean exists() { return bigquery.getDataset(getDatasetId(), DatasetOption.fields()) != null; }
/** Example of updating a dataset by changing its description. */ // [TARGET update(DatasetInfo, DatasetOption...)] // [VARIABLE "my_dataset_name"] // [VARIABLE "some_new_description"] public Dataset updateDataset(String datasetName, String newDescription) { // [START bigquery_update_dataset_description] Dataset oldDataset = bigquery.getDataset(datasetName); DatasetInfo datasetInfo = oldDataset.toBuilder().setDescription(newDescription).build(); Dataset newDataset = bigquery.update(datasetInfo); // [END bigquery_update_dataset_description] return newDataset; }
@Test public void testExists_False() throws Exception { initializeExpectedDataset(1); BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)).andReturn(null); replay(bigquery); initializeDataset(); assertFalse(dataset.exists()); }
@Test public void testExists_True() throws Exception { initializeExpectedDataset(1); BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)) .andReturn(expectedDataset); replay(bigquery); initializeDataset(); assertTrue(dataset.exists()); }
@Test public void testReloadNull() throws Exception { initializeExpectedDataset(1); expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).andReturn(null); replay(bigquery); initializeDataset(); assertNull(dataset.reload()); }
@Test public void testGetDataset() { EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); }
@Test public void testGetDatasetFromDatasetId() { EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DatasetId.of(DATASET)); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); }
@Test public void testGetDatasetFromDatasetIdWithProject() { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); EasyMock.expect(bigqueryRpcMock.getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andReturn(datasetInfo.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(datasetId); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); }
@Test public void testGetDatasetWithSelectedFields() { Capture<Map<BigQueryRpc.Option, Object>> capturedOptions = Capture.newInstance(); EasyMock.expect(bigqueryRpcMock.getDataset(eq(PROJECT), eq(DATASET), capture(capturedOptions))) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET, DATASET_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); assertTrue(selector.contains("datasetReference")); assertTrue(selector.contains("access")); assertTrue(selector.contains("etag")); assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); }
@Test public void testReload() throws Exception { initializeExpectedDataset(4); DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); Dataset expectedDataset = new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())) .andReturn(expectedDataset); replay(bigquery); initializeDataset(); Dataset updatedDataset = dataset.reload(); compareDataset(expectedDataset, updatedDataset); }
@Test public void testRuntimeException() { String exceptionMessage = "Artificial runtime exception"; EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andThrow(new RuntimeException(exceptionMessage)); EasyMock.replay(bigqueryRpcMock); bigquery = options .toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); thrown.expect(BigQueryException.class); thrown.expectMessage(exceptionMessage); bigquery.getDataset(DATASET); }
@Test public void testReloadWithOptions() throws Exception { initializeExpectedDataset(4); DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); Dataset expectedDataset = new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); expect(bigquery.getOptions()).andReturn(mockOptions); expect( bigquery.getDataset( DATASET_INFO.getDatasetId().getDataset(), BigQuery.DatasetOption.fields())) .andReturn(expectedDataset); replay(bigquery); initializeDataset(); Dataset updatedDataset = dataset.reload(BigQuery.DatasetOption.fields()); compareDataset(expectedDataset, updatedDataset); }
@Test public void testRetryableException() { EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andThrow(new BigQueryException(500, "InternalError")) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options .toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); }
@Test public void testNonRetryableException() { String exceptionMessage = "Not Implemented"; EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .andThrow(new BigQueryException(501, exceptionMessage)); EasyMock.replay(bigqueryRpcMock); bigquery = options .toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); thrown.expect(BigQueryException.class); thrown.expectMessage(exceptionMessage); bigquery.getDataset(DatasetId.of(DATASET)); }
@Test public void testGetDataset() { Dataset dataset = bigquery.getDataset(DATASET); assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); assertEquals(DATASET, dataset.getDatasetId().getDataset()); assertEquals(DESCRIPTION, dataset.getDescription()); assertEquals(LABELS, dataset.getLabels()); assertNotNull(dataset.getAcl()); assertNotNull(dataset.getEtag()); assertNotNull(dataset.getGeneratedId()); assertNotNull(dataset.getLastModified()); assertNotNull(dataset.getSelfLink()); }
@Test public void testGetDatasetWithSelectedFields() { Dataset dataset = bigquery.getDataset( DATASET, DatasetOption.fields(DatasetField.CREATION_TIME, DatasetField.LABELS)); assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); assertEquals(DATASET, dataset.getDatasetId().getDataset()); assertEquals(LABELS, dataset.getLabels()); assertNotNull(dataset.getCreationTime()); assertNull(dataset.getDescription()); assertNull(dataset.getDefaultTableLifetime()); assertNull(dataset.getAcl()); assertNull(dataset.getEtag()); assertNull(dataset.getFriendlyName()); assertNull(dataset.getGeneratedId()); assertNull(dataset.getLastModified()); assertNull(dataset.getLocation()); assertNull(dataset.getSelfLink()); }