So überprüfen Sie, ob es in Java eine BigQuery-Tabelle gibt.
Um GCP herum ist es viel einfacher, das SDK (com.google.cloud. *
) Zu verwenden als das API-SDK (com.google.api.services. *
).
Wenn Sie herumgehen, wird "com.google.api.services" häufiger angezeigt. Wenn Sie es also kopieren, handelt es sich um einen sehr komplizierten Code: heat_smile:
build.gradle
sieht so aus.
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+')
}
}
Wenn gefunden, wird Found ausgegeben, und wenn nicht gefunden, wird Not found ausgegeben. Wenn Sie im Argument den JSON-Schlüssel des Dienstkontos angeben, wird dieser authentifiziert, andernfalls wird das Standardkonto verwendet.
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"
#Oder
$ ./gradlew run
Wenn Sie nur mit "com.google.api.services" Ihr Bestes geben, sieht es so aus, und selbst die Authentifizierung ist wahnsinnig kompliziert: müde_gesicht: https://github.com/googlearchive/bigquery-samples-java/blob/master/src/main/java/com/google/cloud/bigquery/samples/BigQueryJavaGettingStarted.java
Der Code für diese Zeit ist hier: Bleistift: https://github.com/nownabe/examples/tree/master/bigquery-table-existence
Recommended Posts