Vérifier l'existence de tables BigQuery en Java

introduction

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:

Dépendance

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+')
    }
}

code

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();
    }
}

Courir

$ ./gradlew run -Pargs="/path/to/key.json"

#Ou
$ ./gradlew run

en conclusion

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

Vérifier l'existence de tables BigQuery en Java
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Vérifier l'existence du fichier avec python
Vérifiez l'existence de commandes externes en Python (comme `which`)
Vérifiez la nature atrophique de la distribution de probabilité en Python
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)
Code de test pour vérifier les liens brisés dans la page
Le résultat de l'apprentissage automatique des ingénieurs Java avec Python www
Résumé des points d'achoppement à Django pour la première fois
Obtenez le nombre d'occurrences pour chaque élément de la liste
Google recherche la chaîne sur la dernière ligne du fichier en Python
Rechercher les fuites de mémoire dans Python
Comment déterminer l'existence d'un élément sélénium en Python
Rechercher des commandes externes avec python
Envelopper (partie de) la bibliothèque AtCoder en Cython pour une utilisation en Python
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
L'histoire de la participation à AtCoder
Vérifiez l'augmentation / la diminution des pièces de monnaie pour chaque adresse de la blockchain
Existence du point de vue de Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Modèle de chaîne de responsabilité en Java
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
L'histoire du "trou" dans le fichier
Vérifiez la protection de la mémoire de Linux Kerne avec le code pour ARM
Vérifiez le résumé des données dans CASTable
for, continue, break Expliquer le flux du traitement itératif dans Python3-Part 1
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_3
[Ota Ward] Vérifiez l'état du traitement des demandes de prestations forfaitaires spéciales
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_1
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
Obtenez la clé pour la migration de la deuxième couche de données JSON avec python
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_2
[Comprendre en 3 minutes] Le début de Linux
L'histoire d'une erreur dans PyOCR
Début de la programmation Phtyon pour les acquéreurs Java ①
Comment vérifier la version de Django
Implémenter une partie du processus en C ++
Résumé de diverses instructions for en Python
Changer la liste dans l'instruction for
Vérifiez si l'URL existe en Python
Le résultat de l'installation de python sur Anaconda
Vérifiez le chemin du module importé Python
MongoDB avec Python pour la première fois
Principes de base pour exécuter NoxPlayer en Python
La troisième nuit de la boucle avec pour
Pandas du débutant, par le débutant, pour le débutant [Python]
La deuxième nuit de la boucle avec pour
À la recherche du FizzBuzz le plus rapide en Python
[IOS] Modifiez la durée d'affichage de chaque image de l'animation GIF dans Pythonista3.
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
Obtenez le résultat du GeoCoding inversé en japonais à l'aide du SDK Java de GoogleMapsAPI.
CERTIFICATE_VERIFY_FAILED dans Python 3.6, le programme d'installation officiel de macOS
Sortie du nombre de cœurs de processeur en Python
Vérifiez le fonctionnement d'OpenCV3 installé par Anaconda
[python] Vérifier les éléments de la liste tous, tous
Signification de {numéro de version} dans le package mysql rpm
L'histoire selon laquelle le coût d'apprentissage de Python est faible