J'ai un ensemble de requêtes que je veux exécuter chaque mois dans BQ. Soit A > B que A DÉPEND de B. J'ai les requêtes ci-dessous :

  • q1
  • q2 > q1
  • q3 > q1
  • q4 > q1

Comme vous pouvez le voir, les requêtes 2-4 dépendent de l'attente de la fin de la requête 1. J'aime beaucoup le système de "Scheduled query" dans bigquery, mais existe-t-il quand même que je peux en tirer parti pour faire quelque chose comme ça? Le problème principal est que je ne sais pas comment dire à ma requête planifiée d'attendre la fin d'une autre requête dans la console BQ. Je sais que mon alternative ici est d'utiliser Google BQ Jobs, mais je voulais vraiment voir si cela était possible avec un système de requête planifié.

1
jtaylor 5 nov. 2020 à 19:07

1 réponse

Meilleure réponse

Exécutez-les tous en tant que script unique dans la requête planifiée. Utilisez le bloc BEGIN...EXCEPTION :

isert into q1_results
select ...
from table;

BEGIN
    isert into q2_results
    select ...
    from q1_results;
EXCEPTION WHEN ERROR THEN
END;

BEGIN
    isert into q3_results
    select ...
    from q1_results;
EXCEPTION WHEN ERROR THEN
END;
1
Sergey Geron 5 nov. 2020 à 18:02