關於數據分析檢視畫面

本文說明 Analytics 檢視區,以及建立檢視區的時機。此外,本文也會說明分析檢視畫面與您可能熟悉的概念 (例如已儲存的查詢和記錄檢視畫面) 之間的差異。

總覽

Analytics 資料檢視是可供查詢的資源。也就是說,定義數據分析檢視區後,您可以在 FROM 子句中指定數據分析檢視區,然後撰寫查詢。

使用 Analytics 檢視畫面的主要優點是,您不必受限於 API 或系統定義的資料查詢格式。分析檢視畫面可讓您定義結構定義,簡化查詢或減少撰寫查詢的時間。分析檢視區的查詢可以執行下列動作:只保留特定欄位、重新命名欄位、將巢狀欄位移至頂層資料欄,以及執行分組和匯總作業。

Analytics 資料檢視並非具體化檢視。分析資料檢視並非預先運算的檢視,不會定期快取查詢結果。因此,查詢 Analytics 檢視區等同於查詢 Analytics 檢視區查詢中列出的檢視區。

Analytics 資料檢視比已儲存的查詢更強大。已儲存的查詢是指您在「記錄檔分析」頁面執行的查詢,然後儲存這些查詢。您可以重新執行已儲存的查詢,但無法查詢已儲存查詢的結果。

分析檢視畫面類型

分析檢視畫面分為兩種:使用者定義和系統定義:

  • 使用者定義的 Analytics 資料檢視是指您建立的任何 Analytics 資料檢視。您可以查詢、編輯及刪除使用者定義的 Analytics 檢視畫面。

  • 系統定義的數據分析檢視畫面是由服務建立的數據分析檢視畫面。Google Cloud 您可以查詢系統定義的 Analytics 檢視區塊。但無法編輯或刪除。

如要瞭解如何列出Google Cloud 專案中的 Analytics 檢視區塊,請參閱「列出 Analytics 檢視區塊」。

數據分析檢視畫面位置

資料分析檢視區的位置取決於所查詢資源的位置。舉例來說,如果分析檢視區查詢位於 global 位置的記錄檢視區,則分析檢視區的位置也必須是 global。使用 Google Cloud 控制台 建立 Analytics 資料檢視時,系統會自動設定位置。

應用實例

分析檢視畫面的主要優點在於,您不必受限於系統定義的格式,分析檢視畫面可讓您定義結構定義,簡化查詢或減少撰寫查詢的時間。

查詢網路詳細資料

您想使用虛擬私有雲流量記錄檔分析網路效能。您需要分析整體網路效能,並找出特定網路、IP 位址和主機。這項資訊會儲存在記錄項目的 json_payload 欄位中,以巢狀欄位表示。

為簡化分析查詢,請建立下列分析檢視並命名為 network_details

SELECT
  -- Create a column for each network field.
  JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
  JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
  JSON_VALUE(json_payload.connection.src_ip) as src_ip,
  JSON_VALUE(json_payload.connection.src_port) as src_port,
  JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
  JSON_VALUE(json_payload.connection.dest_port) as dest_port,
  CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
  CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
  -- Query one log view.
  `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
  -- Only query the VPC Flow Logs log.
  log_id = "compute.googleapis.com/vpc_flows"
  AND SEARCH(json_payload.reporter, "SRC")

使用查詢前,請先設定下列變數的值:

  • PROJECT_ID:專案的 ID。
  • LOCATION:記錄檢視畫面所在位置。
  • BUCKET_ID:記錄 bucket 的名稱或 ID。
  • LOG_VIEW_ID:記錄檢視的 ID,最多 100 個字元,只能包含英文字母、數字、底線和連字號。

如要分析聯播網成效,請查詢 Analytics 檢視畫面。舉例來說,如果您只對執行個體的名稱和傳送的資料量感興趣,可以編寫下列查詢:

SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100

API 延遲分析的基本查詢

多個團隊需要每週的成效資料才能完成分析。您不必讓每個團隊產生每週資料,而是建立可擷取每週資料的分析檢視畫面。其他團隊可以查詢數據分析檢視畫面,然後執行分析。

下列查詢說明如何使用 SQL 計算要求延遲時間的最小值、最大值和平均值:

SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
  SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
  CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
  FROM
    -- Query one log view.
    `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
  WHERE json_payload IS NOT NULL
    AND SEARCH(labels,"frontend")
    AND JSON_VALUE(json_payload.message) = "request complete"
  ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week

限制

分析檢視畫面有下列限制:

  • 分析檢視區塊只能查詢記錄檢視區塊。
  • Analytics 檢視區塊的上層資源必須是 Google Cloud 專案。
  • 您只能使用「記錄檔分析」頁面查詢 Analytics 檢視區,且只能使用「記錄檔分析 (預設)」查詢引擎。
  • Analytics 檢視區塊查詢的所有檢視區塊都必須位於相同位置。
  • 您必須使用 Google Cloud 控制台建立或管理 Analytics 檢視區。
  • 每個專案最多可建立 100 個 Google Cloud Analytics 資料檢視。
  • 每個區域最多可建立 50 個數據分析檢視區。
  • 每個 Google Cloud 專案最多可有 10 個區域包含 Analytics 檢視區塊。

後續步驟