Я пробовал это:
Код: Выделить всё
select count(job_id) as job_count, state
from `MY_PROJECT`.`region-MY_REGION`.INFORMATION_SCHEMA.JOBS
where creation_time between
TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
AND CURRENT_TIMESTAMP()
and query not like 'select count(job_id) as job_count, state%'
and project_id = 'MY_PROJECT'
group by state;
Мне нужно иметь возможность получить эту информацию программно, а не просматривать пользовательский интерфейс, и я не уверен, почему приведенный выше запрос этого не делает.
Я подумал, что попробую с помощью клиента bigquery из Python:
Код: Выделить всё
from google.cloud import bigquery
from datetime import datetime, timedelta
project_id = 'MY_PROJECT'
client = bigquery.Client()
jobs = client.list_jobs(project=project_id,
all_users=True,
min_creation_time=datetime.now() - timedelta(hours=1),
max_creation_time=datetime.now())
states = []
job_counts = {}
# Iterate through the jobs and count the states
for job in jobs:
if job.state not in states:
states.append(job.state)
job_counts[job.state] = 0
job_counts[job.state] += 1
for state, count in job_counts.items():
print(f'Jobs in state {state}: {count}')
Как лучше всего получить количество заданий и их состояния в bigquery программно?
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-bigquery
Мобильная версия