簡體   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