Используя журналы Stackdriver, вы можете создать приемник с Pub / Sub topi c в качестве цели для анализа в реальном времени, который фильтрует только журналы BigQuery, например:
resource.type="bigquery_resource" AND
proto_payload.method_name="jobservice.jobcompleted" AND
proto_payload.service_data.job_completed_event.job.job_statistics.total_billed_bytes:*
(см. примеры запросов здесь: https://cloud.google.com/logging/docs/view/query-library?hl=en_US#bigquery -filters )
Вы можете создать приемник для определенного c проекта, папки или даже организации. Это позволит получить все запросы, выполненные в BigQuery в указанном c проекте, папке или организации.
Поле proto_payload.service_data.job_completed_event.job.job_statistics.total_billed_bytes
даст вам количество байтов, обработанных запросом.
На основании цены BigQuery по требованию (на данный момент 5 долл. США / ТБ для большинства регионов, но вы можете проверить свой собственный регион), вы можете легко оценить выставление счетов в режиме реального времени. Вы можете создать задание Dataflow, которое агрегирует результаты в BigQuery, или просто использовать целевой Pub / Sub topi c с любым заданием, для которого вы хотите рассчитать цену:
jobPriceInUSD = totalBilledBytes / 1_000_000_000_000 * pricePerTB
потому что 1 ТБ = 1_000_000_000_000 B. Как я уже говорил, pricePerTB
зависит от регионов (точную цену см. (https://cloud.google.com/bigquery/pricing#on_demand_pricing). Например, на момент написания:
- 5 долл. США / ТБ для США-восток1
- 6 долл. США / ТБ для Азии-северо-восток1
- $ 9 / ТБ для Юго-Восточной Америки1
Также, за каждый месяц, на данный момент, 1-й туберкулез бесплатный.