
Google Cloud Billing BillingExportQuery
CertifiedQuery GCP BigQuery Billing Export
Google Cloud Billing BillingExportQuery
Query GCP BigQuery Billing Export
Executes a parameterized cost aggregation query over standard or detailed GCP BigQuery billing export tables.
type: io.kestra.plugin.gcp.billing.BillingExportQueryExamples
Aggregate monthly costs by service description
id: gcp_monthly_cost
namespace: company.finops
tasks:
- id: cost_by_service
type: io.kestra.plugin.gcp.billing.BillingExportQuery
serviceAccount: "{{ secret('GCP_SA') }}"
exportTable: "my-project.billing.gcp_billing_export_v1_0123AB_4567CD_89EF01"
dateFrom: "{{ now() | dateAdd(-1, 'MONTHS') | date('yyyy-MM-dd') }}"
groupBy:
- "service.description"
fetchType: STORE
Properties
dateFrom *string
Query start date or timestamp
Inclusive start timestamp or date (e.g. 2026-09-01 or 2026-09-01T00: 00: 00Z). Will be parsed and validated as an ISO-8601 date or timestamp.
exportTable *string
BigQuery Billing Export table
Fully-qualified table name (e.g. my-project.dataset.gcp_billing_export_v1_XXXXXX or dataset.gcp_billing_export_v1_XXXXXX).
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150dateTo string
Query end date or timestamp
Exclusive end timestamp or date (e.g. 2026-10-01 or 2026-10-01T00: 00: 00Z). Will be parsed and validated as an ISO-8601 date or timestamp.
destinationTable string
Destination BigQuery table
Optional destination table to write query results to.
fetchType string
FETCHSTOREFETCHFETCH_ONENONEResult handling mode
FETCH by default. Use STORE to save large result sets to Kestra internal storage.
filter string
Additional SQL filter expression
(Raw SQL fragment) Optional custom WHERE clause conditions to apply (e.g. project.id = 'my-project-id').
groupBy array
Fields to group by
(Raw SQL fragments or column expressions) List of columns or expressions to group costs by (e.g. ['service.description'], ['project.id', 'sku.description']). Dot-notated struct fields are automatically aliased (e.g. service.description AS service_description) to prevent duplicate column names in BigQuery.
impersonatedServiceAccount string
The GCP service account to impersonate
includeCredits booleanstring
trueInclude credits calculation
Whether to calculate net cost including promotions, discounts, and credits (default: true).
projectId string
The GCP project ID
scopes array
["https://www.googleapis.com/auth/cloud-platform"]The GCP scopes to be used
serviceAccount string
The GCP service account
Outputs
jobId string
The BigQuery job ID
row object
Single fetched result row when fetchType is FETCH_ONE
rows array
List of fetched result rows when fetchType is FETCH
size integer
The number of rows returned by the query
sql string
The generated SQL query executed against BigQuery
uri string
uriKestra internal storage URI when fetchType is STORE