[英]Creating a BigQuery dataset from a log sink in GCP
跑步时
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
数据集的指南没有列出如何从日志接收器执行此操作(除非我遗漏了什么)
还有任何想法为什么在使用bq ls
命令时不显示上述数据集?
首先,一定要在好的项目中。 如果没有,您可以通过单击 PIN 按钮从外部项目导入数据集(并且您需要为此拥有足够的权限)。
其次,BigQuery 的 Cloud Logging 接收器不会创建数据集,只会创建表。 因此,如果您创建了没有数据集的接收器,则接收器没有运行(或错误运行)。 这里有更多细节
BigQuery:Select 或创建特定数据集以接收导出的日志。 您还可以选择使用分区表。
一般来说,你期望这个功能做的事情是对的,使用 BigQuery 作为日志接收器是为了让你可以使用 BQ 查询日志。 对于您面临的问题,我相信这与使用 Web 控制台与 gcloud 有关。
使用 BigQuery 作为日志接收器时,有两种方法可以指定数据集:
通过 web 控制台创建新接收器时,还可以选择让 Cloud Logging 为您创建新数据集。 但是,当使用gcloud logging sinks create
时,它不会自动为您创建数据集,只会创建日志接收器。 似乎它也没有验证指定的数据集是否存在。
要解决此问题,您可以使用 web 控制台执行任务或自行创建数据集。 与为其他目的创建 BQ 数据集相比,创建 BQ 数据集作为日志接收器目的地并没有什么特别之处。 创建一个 BQ 数据集,然后创建一个日志接收器以指向该数据集,然后您就可以使用 go。
从概念上讲,GCP 上的不同产品(BigQuery、Cloud Logging)独立运行,Cloud Logging 中的日志接收器只是一个将过滤器和目标配对的 object,但不拥有/管理目标资源(例如 BQ 数据集)。 只是在 web 控制台中,它提供了一些额外的集成以使事情变得更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.