[英]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.