From 1b89481c196931b387230144b28885316b3ee3f0 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Thu, 28 Dec 2017 16:18:39 -0800 Subject: [PATCH 1/4] BQ Data Transfer: Add quickstart sample A sample showing how to use the BigQuery Data Transfer API to list available data sources. --- bigquery/datatransfer/cloud-client/README.md | 29 +++++++++ bigquery/datatransfer/cloud-client/pom.xml | 59 +++++++++++++++++++ .../QuickstartSample.java | 56 ++++++++++++++++++ .../QuickstartSampleIT.java | 56 ++++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 bigquery/datatransfer/cloud-client/README.md create mode 100644 bigquery/datatransfer/cloud-client/pom.xml create mode 100644 bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java create mode 100644 bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java diff --git a/bigquery/datatransfer/cloud-client/README.md b/bigquery/datatransfer/cloud-client/README.md new file mode 100644 index 00000000000..e4131d2a6ad --- /dev/null +++ b/bigquery/datatransfer/cloud-client/README.md @@ -0,0 +1,29 @@ +# Getting Started with BigQuery Data Transfer API + +[BigQuery Data Transfer Service][BigQuery Data Transfer] features an API that +allows developers to create transfer jobs from data sources to BigQuery. +These sample Java applications demonstrate how to access the BigQuery Data +Transfer API using the [Google Cloud Client Library for +Java][google-cloud-java]. + +[BigQuery Data Transfer]: https://cloud.google.com/bigquery/docs/transfer-service-overview +[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java + +## Quickstart + +Install [Maven](http://maven.apache.org/). + +Build your project with: + + mvn clean package -DskipTests + +You can then run a given `ClassName` via: + + mvn exec:java -Dexec.mainClass=com.example.bigquerydatatransfer.ClassName \ + -DpropertyName=propertyValue \ + -Dexec.args="any arguments to the app" + +### Listing available data sources + + mvn exec:java -Dexec.mainClass=com.example.bigquerydatatransfer.QuickstartSample \ + -Dexec.args='YOUR_PROJECT_ID' diff --git a/bigquery/datatransfer/cloud-client/pom.xml b/bigquery/datatransfer/cloud-client/pom.xml new file mode 100644 index 00000000000..1bed58fb547 --- /dev/null +++ b/bigquery/datatransfer/cloud-client/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + com.example.bigquerydatatransfer + bigquery-google-cloud-samples + jar + + + + doc-samples + com.google.cloud + 1.0.0 + ../../.. + + + + 1.7 + 1.7 + UTF-8 + + + + + + com.google.cloud + google-cloud-bigquerydatatransfer + 0.32.0-beta + + + + + + junit + junit + 4.12 + test + + + com.google.truth + truth + 0.36 + test + + + diff --git a/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java b/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java new file mode 100644 index 00000000000..772af8f53b7 --- /dev/null +++ b/bigquery/datatransfer/cloud-client/src/main/java/com/example/bigquerydatatransfer/QuickstartSample.java @@ -0,0 +1,56 @@ +/* + Copyright 2017, Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package com.example.bigquerydatatransfer; + +// [START bigquery_datatransfer_quickstart] +// Imports the Google Cloud client library +import com.google.cloud.bigquery.datatransfer.v1.DataSource; +import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient; +import com.google.cloud.bigquery.datatransfer.v1.ListDataSourcesRequest; +import com.google.cloud.bigquery.datatransfer.v1.PagedResponseWrappers.ListDataSourcesPagedResponse; + +public class QuickstartSample { + /** + * List available data sources for the BigQuery Data Transfer service. + */ + public static void main(String... args) throws Exception { + // Sets your Google Cloud Platform project ID. + // String projectId = "YOUR_PROJECT_ID"; + String projectId = args[0]; + + // Creates a client. + try (DataTransferServiceClient client = DataTransferServiceClient.create()) { + // Request the list of available data sources. + String parent = String.format("projects/%s", projectId); + ListDataSourcesRequest request = + ListDataSourcesRequest.newBuilder() + .setParent(parent) + .build(); + ListDataSourcesPagedResponse response = client.listDataSources(request); + + // Print the results. + System.out.println("Supported Data Sources:"); + for (DataSource dataSource : response.iterateAll()) { + System.out.println(dataSource.getDisplayName()); + System.out.printf("\tID: %s%n", dataSource.getDataSourceId()); + System.out.printf("\tFull path: %s%n", dataSource.getName()); + System.out.printf("\tDescription: %s%n", dataSource.getDescription()); + } + } + } +} +// [END bigquery_datatransfer_quickstart] diff --git a/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java b/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java new file mode 100644 index 00000000000..85acb983d7b --- /dev/null +++ b/bigquery/datatransfer/cloud-client/src/test/java/com/example/bigquerydatatransfer/QuickstartSampleIT.java @@ -0,0 +1,56 @@ +/* + Copyright 2017, Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package com.example.bigquerydatatransfer; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for quickstart sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class QuickstartSampleIT { + private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQuickstart() throws Exception { + QuickstartSample.main(PROJECT_ID); + String got = bout.toString(); + assertThat(got).contains("Supported Data Sources:"); + } +} From 391db12fa1a1cbdf1088eefc8f562065b9b18261 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Tue, 2 Jan 2018 11:03:03 -0800 Subject: [PATCH 2/4] Hello 2018. Update license headers for data transfer. Add info about auth. --- bigquery/cloud-client/README.md | 3 +++ .../main/java/com/example/bigquery/QuickstartSample.java | 4 +++- bigquery/datatransfer/cloud-client/README.md | 3 +++ bigquery/datatransfer/cloud-client/pom.xml | 2 +- .../com/example/bigquerydatatransfer/QuickstartSample.java | 6 ++++-- .../example/bigquerydatatransfer/QuickstartSampleIT.java | 2 +- 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/bigquery/cloud-client/README.md b/bigquery/cloud-client/README.md index a8dd6cf6702..6b86d256e79 100644 --- a/bigquery/cloud-client/README.md +++ b/bigquery/cloud-client/README.md @@ -12,6 +12,9 @@ the [Google Cloud Client Library for Java][google-cloud-java]. Install [Maven](http://maven.apache.org/). +[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started). +Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable. + Build your project with: mvn clean package -DskipTests diff --git a/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java b/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java index e1b40c4e7cd..b2fce8bcf00 100644 --- a/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java +++ b/bigquery/cloud-client/src/main/java/com/example/bigquery/QuickstartSample.java @@ -25,7 +25,9 @@ public class QuickstartSample { public static void main(String... args) throws Exception { - // Instantiates a client + // Instantiate a client. If you don't specify credentials when constructing a client, the + // client library will look for credentials in the environment, such as the + // GOOGLE_APPLICATION_CREDENTIALS environment variable. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); // The name for the new dataset diff --git a/bigquery/datatransfer/cloud-client/README.md b/bigquery/datatransfer/cloud-client/README.md index e4131d2a6ad..b3599d89c71 100644 --- a/bigquery/datatransfer/cloud-client/README.md +++ b/bigquery/datatransfer/cloud-client/README.md @@ -13,6 +13,9 @@ Java][google-cloud-java]. Install [Maven](http://maven.apache.org/). +[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started). +Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable. + Build your project with: mvn clean package -DskipTests diff --git a/bigquery/datatransfer/cloud-client/pom.xml b/bigquery/datatransfer/cloud-client/pom.xml index 1bed58fb547..b175e021155 100644 --- a/bigquery/datatransfer/cloud-client/pom.xml +++ b/bigquery/datatransfer/cloud-client/pom.xml @@ -1,5 +1,5 @@ diff --git a/pom.xml b/pom.xml index 0f8154e45e7..1c3707418e0 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,7 @@ compute bigquery/cloud-client + bigquery/datatransfer/cloud-client bigquery/rest dataflow/spanner-io