2016-07-05 15 views
0

Ich weiß, dass Sie den folgenden Befehl ausführen müssen, um eine Liste aller Jobs zu erhalten, die jemals in einem Google-Konto ausgeführt wurden:BigQuery-Befehlszeile - Alle Jobs auflisten, die mit einem bestimmten Zeitraum ausgeführt wurden

Command 1: bq ls --format json --jobs --all 

um nur einige n die Anzahl der Ergebnisse zu erhalten, können Sie einen anderen Parameter max_results

Command 2: bq ls --format json --jobs --all --max_results 

Wie über den Fall genannt hinzufügen können, wo ich die Zahl der Arbeitsplätze zwischen zwei Terminen zu bekommen? Welche Parameter sollte ich dem ersten Befehl hinzufügen? Sah die Dokumentation durch, konnte aber nicht viel finden.

Vielen Dank im Voraus!

Antwort

0

Die beste Möglichkeit, Informationen über Jobs zu erhalten, die zu einem bestimmten Zeitpunkt ausgeführt werden, besteht darin, Google Cloud audit logging zu aktivieren, export auf bigquery einzurichten und anschließend eine Abfrage über die Protokolle auszuführen.

Die Abfrage würde in etwa so aussehen:

SELECT metadata.timestamp as job_complete_time, 
    protoPayload.serviceData.jobCompletedEvent.job.jobName.jobId 
    AS job_id, 
    protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.query 
    AS query, 
FROM TABLE_DATE_RANGE(
    [audit_logs.cloudaudit_googleapis_com_data_access_], 
    DATE_ADD(CURRENT_TIMESTAMP(), -14, "DAY"), 
    CURRENT_TIMESTAMP()) 
WHERE metadata.serviceName = 'bigquery.googleapis.com' 
    AND protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.query 
    is not null 
LIMIT 1000