是否可以使用查询请求上的配置.标签
属性来跟踪bigquery查询的成本?我已经指定了一些标签,并且我确实在作业定义中找到了它,如您所见:
{
"configuration": {
"labels": {
"label1": "tomas",
"label2": "yolo"
},
"query": {
"allowLargeResults": false,
"createDisposition": "CREATE_IF_NEEDED",
"destinationTable": {
"datasetId": "dataset",
"projectId": "project name",
"tableId": "label "
},
"priority": "INTERACTIVE",
"query": "a select query",
"useLegacySql": false,
"writeDisposition": "WRITE_TRUNCATE"
...
}
我在计费下也开启了计费导出,但是当我查看导出的数据时,我找不到我的标签。
标签在应用于数据集和表时工作正常,但我无法让它与查询一起工作。这些查询标签是别的东西吗,不会显示在账单中?
您可以通过将以下内容添加到查询中来添加查询标签(key: value):
SET @@query_label = "label_key:label_value";
SELECT *
FROM your_project_id.your_dataset.your_table;
这将更改系统变量@@query_label
,另请参阅:
https://cloud.google.com/bigquery/docs/adding-labels#adding-label-to-sessionhttps://cloud.google.com/bigquery/docs/reference/system-variables
设置@@query_label
将创建一个没有key: value
标签的parent_job,但它也将创建一个具有key:value
标签的子作业。
您可以看到,在查询信息模式以深入了解查询详细信息时(您需要适当的授权才能执行此查询):
SELECT creation_time, job_id, parent_job_id, user_email, labels, query, total_bytes_billed
FROM `your_project_id.region-eu.INFORMATION_SCHEMA.JOBS`
WHERE creation_time >= '2022-12-06'
ORDER BY creation_time DESC
我一直无法查询或过滤特定的标签,但至少可以用这个显示它们…
SELECT service.description, cost, labels
FROM `PROJECTNAME.billing_report.gcp_billing_export_v1_016D47_E84908_9F5AB5`
WHERE cost > 0
LIMIT 1000
如果您使用bq
命令,您可以通过添加--label
标志来做到这一点,如下所示
bq query \
--nouse_legacy_sql \
--label foo:bar \
'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
然后,您可以在云日志中发出以下过滤器
resource.type="bigquery_resource"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.labels.foo="bar"
对于API或客户端库,请选中此对象