本文說明 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 檢視區塊。