运行时
gcloud logging sinks list
似乎我的项目有几个水槽
▶ gcloud logging sinks list
NAME DESTINATION FILTER
myapp1 bigquery.googleapis.com/projects/myproject/datasets/myapp1 resource.type="k8s_container" resource.labels.cluster_name="mygkecluster" resource.labels.container_name="myapp1"
myapp2 bigquery.googleapis.com/projects/myproject/datasets/myapp2 resource.type="k8s_container" resource.labels.cluster_name="mygkecluster" resource.labels.container_name="myapp2"
myapp3 bigquery.googleapis.com/projects/myproject/datasets/myapp3 resource.type="k8s_container" resource.labels.cluster_name="mygkecluster" resource.labels.container_name="myapp3"
但是,当我在BigQuery
控制台中导航时,我看不到相应的数据集。
有没有办法将这些接收器作为数据集导入,以便我可以对它们运行查询?
关于创建BigQuery
数据集的This指南没有列出如何从日志接收器中创建数据集(除非我遗漏了什么)
另外,您知道为什么在使用bq ls
命令时不显示上述数据集吗?
发布于 2020-12-30 12:52:06
首先,一定要在好的项目中。如果没有,您可以通过单击PIN按钮从外部项目导入数据集(并且您需要具有足够的权限)。
其次,BigQuery的云日志接收器不会创建数据集,只会创建表。因此,如果您在没有数据集的情况下创建了接收器,那么接收器将不会运行(或者运行时出错)。Here more details
BigQuery:选择或创建特定数据集以接收导出的日志。您还可以选择使用分区表。
发布于 2020-12-30 13:23:11
一般来说,您对此功能的期望是正确的,使用BigQuery作为日志接收器允许您使用BQ查询日志。对于你所面临的问题,我认为是使用Web控制台还是gcloud造成的。
当使用BigQuery作为日志接收器时,有两种方式可以指定数据集:
当通过web控制台创建新的接收器时,有一个选项可以让Cloud Logging为您创建一个新的数据集。但是,在使用gcloud logging sinks create
时,它不会自动为您创建数据集,而只是创建日志接收器。它似乎也没有验证指定的数据集是否存在。
要解决此问题,您可以使用web控制台执行任务,也可以自行创建数据集。与为其他目的创建BQ数据集相比,将BQ数据集创建为日志接收器目标并没有什么特别之处。创建一个BQ数据集,然后创建一个日志接收器以指向该数据集,您就可以开始了。
从概念上讲,GCP上的不同产品(BigQuery、云日志)是独立运行的,云日志中的日志接收器只是将筛选器和目标配对的对象,而不拥有/管理目标资源(例如。BQ数据集)。只是在web控制台中,它提供了一些额外的集成来使事情变得更容易。
https://stackoverflow.com/questions/65506106
复制相似问题