from google.cloud import bigquery class GCP: def __init__(self,project): self.client = bigquery.Client(project=project) def get_cost_and_usage(self, start_str, end_str, project_id): query = f""" SELECT service.description as cloud_service, sku.description as cloud_sku, location.location as region, ROUND(sum(cost),2) as total_cost FROM `gcp-digital-bi.gcp_billing_detailed.gcp_billing_export_resource_v1*` WHERE project.id = '{project_id}' AND DATE(usage_start_time) BETWEEN '{start_str}' AND '{end_str}' GROUP BY service.description,sku.description,location.location """ query_job = self.client.query(query) return query_job.result()