Comment vérifier s'il existe une table BigQuery en Java.
Autour de GCP, il est beaucoup plus facile d'utiliser le SDK (com.google.cloud. *
) Qui l'entoure que le SDK API (com.google.api.services. *
).
Si vous faites le tour, com.google.api.services
apparaîtra plus souvent, donc si vous le copiez, ce sera un code très compliqué: sweat_smile:
build.gradle
ressemble à ceci.
apply plugin: 'java'
apply plugin: 'application'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.cloud:google-cloud-bigquery:+'
}
mainClassName = "Main"
run {
if (project.hasProperty('args')) {
args project.args.split('\\s+')
}
}
S'il est trouvé, il affiche Trouvé, et s'il n'est pas trouvé, il affiche Non trouvé. Si vous spécifiez la clé JSON du compte de service dans l'argument, il s'authentifiera avec elle, sinon le compte par défaut sera utilisé.
import com.google.auth.oauth2.ServiceAccountCredentials;
import com.google.cloud.bigquery.*;
import java.io.FileInputStream;
import java.io.IOException;
public class Main {
private static final String DATASET = "yourdataset";
private static final String TABLE = "yourtable";
public static void main(String args[]) throws IOException {
BigQuery bigQuery;
if (args.length > 0) {
bigQuery = getClientWithJsonKey(args[0]);
} else {
bigQuery = BigQueryOptions.getDefaultInstance().getService();
}
Table table = bigQuery.getTable(DATASET, TABLE);
if (table != null) {
System.out.println("Found!");
} else {
System.err.println("Not found");
}
}
private static BigQuery getClientWithJsonKey(String key) throws IOException {
return BigQueryOptions.newBuilder()
.setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream(key)))
.build()
.getService();
}
}
$ ./gradlew run -Pargs="/path/to/key.json"
#Ou
$ ./gradlew run
Si vous faites de votre mieux uniquement avec com.google.api.services
, cela ressemble à ceci, et même juste autour de l'authentification est incroyablement compliquée: fatigue_face:
https://github.com/googlearchive/bigquery-samples-java/blob/master/src/main/java/com/google/cloud/bigquery/samples/BigQueryJavaGettingStarted.java
Le code pour cette fois est ici: crayon: https://github.com/nownabe/examples/tree/master/bigquery-table-existence
Recommended Posts