繁体   English   中英

从 GCP 中的日志接收器创建 BigQuery 数据集

[英]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 作为日志接收器时,有两种方法可以指定数据集:

  1. 指向现有数据集
  2. 创建一个新数据集

通过 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM