GSP1250

總覽
雖然 BigQuery 內建觀測功能,例如 INFORMATION_SCHEMA
view,但要深入分析用量、稽核及排解潛在問題,仍須仰賴詳細的記錄。啟用記錄檔分析後,您就能使用熟悉的 SQL 查詢及分析記錄檔資料,然後查看查詢結果或繪製成圖表。
BigQuery 是 Google Cloud 的全代管企業資料倉儲,內建機器學習、地理空間分析和商業智慧等功能,有助於管理及分析資料。
在本實驗室中,您將在記錄檔儲存空間 bucket 中啟用記錄檔分析功能,然後在 Cloud Logging 中查看 BigQuery 記錄檔。您也會透過記錄檔分析工具,使用 SQL 分析記錄檔。
目標
在本實驗室中,您將瞭解如何執行下列工作:
- 有效運用 Cloud Logging,深入瞭解 BigQuery 使用情形。
- 使用記錄檔分析功能,有效建構及執行 SQL 查詢。
- 查看結果並繪製成圖表。
設定和需求
瞭解以下事項後,再點選「Start Lab」按鈕
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
- 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。
如何開始研究室及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
-
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示
。
-
系統顯示視窗時,請按照下列步驟操作:
- 繼續操作 Cloud Shell 視窗。
- 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:。輸出內容中有一行文字,宣告本工作階段的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
- 點按「授權」。
輸出內容:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project
輸出內容:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需 gcloud
的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
工作 1:設定記錄檔 bucket
在這項工作中,您將設定 Cloud Logging,升級已啟用記錄檔分析的現有記錄檔 bucket。
如要升級現有 bucket 以使用記錄檔分析功能,請按照下列步驟操作:
- 前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入記錄檔儲存空間,然後點選搜尋結果中的「記錄檔儲存空間」。
「記錄檔儲存空間」頁面隨即開啟。「記錄檔 bucket」清單中會列出兩個 bucket:_Default 和 _Required。
- 針對 _Required 記錄檔 bucket,點選「可使用記錄檔分析」欄下方的「升級」。
- 再次點選「升級」,確認升級並使用記錄檔分析功能。
- 對 _Default 記錄檔 bucket 執行相同操作。點選「可使用記錄檔分析」欄下方的「升級」。
- 再次點選「升級」,確認升級並使用記錄檔分析功能。
點選「Check my progress」,確認目標已達成。
升級記錄檔 bucket。
工作 2:執行 BigQuery 活動
在這項工作中,您將生成 BigQuery 記錄檔,並會用到 BigQuery 指令列工具 bq。
- 在 Cloud Shell 輸入
bq mk
指令,在專案中建立名為 bq_logs 和 bq_logs_test 的新資料集:
bq mk bq_logs
bq mk bq_logs_test
- 輸入
bq ls
指令,列出資料集:
bq ls
- 輸入
bq rm
指令來刪除資料集 (出現提示訊息時,請選取「Y」):
bq rm bq_logs_test
- 建立新的資料表:
bq mk \
--table \
--expiration 3600 \
--description "This is a test table" \
bq_logs.test_table \
id:STRING,name:STRING,address:STRING
您應該會看到成功訊息,指出已為資料集新建名為 test_table 的空資料表。
接著執行一些查詢來生成記錄檔。
- 在 Cloud Shell 中輸入下列查詢:
bq query --use_legacy_sql=false 'SELECT current_date'
- 將以下指令複製到 Cloud Shell:
bq query --use_legacy_sql=false \
'SELECT
gsod2021.date,
stations.usaf,
stations.wban,
stations.name,
stations.country,
stations.state,
stations.lat,
stations.lon,
stations.elev,
gsod2021.temp,
gsod2021.max,
gsod2021.min,
gsod2021.mxpsd,
gsod2021.gust,
gsod2021.fog,
gsod2021.hail
FROM
`bigquery-public-data.noaa_gsod.gsod2021` gsod2021
INNER JOIN
`bigquery-public-data.noaa_gsod.stations` stations
ON
gsod2021.stn = stations.usaf
AND gsod2021.wban = stations.wban
WHERE
stations.country = "US"
AND gsod2021.date = "2021-12-15"
AND stations.state IS NOT NULL
AND gsod2021.max != 9999.9
ORDER BY
gsod2021.min;'
(這個查詢使用美國國家海洋暨大氣總署 (NOAA) 的天氣資料)
點選「Check my progress」,確認目標已達成。
執行 BigQuery 活動。
工作 3:執行記錄檔分析
這項工作會分析您在前一項工作中建立的記錄檔資料。
挑戰 (視情況回答):執行查詢前,請說明您預期會有什麼樣的結果。
查詢特定作業
分析 BigQuery 使用情形時,經常需要搜尋資料集的特定作業。在這項工作中,您將查詢建立和刪除作業。
-
在左側窗格中,點選「記錄檔分析」,然後在「記錄檔分析」部分找到「查詢」欄位。
-
在「查詢」欄位中輸入或貼上下列查詢,然後點按「執行查詢」,找出建立和刪除作業:
SELECT
timestamp,
severity,
resource.type,
proto_payload.audit_log.authentication_info.principal_email,
proto_payload.audit_log.method_name,
proto_payload.audit_log.resource_name,
FROM
`{{{ project_0.project_id | "Project ID" }}}.global._Required._AllLogs`
WHERE
log_id = 'cloudaudit.googleapis.com/activity'
AND proto_payload.audit_log.method_name LIKE 'datasetservice%'
LIMIT
100
查詢應輸出三個結果。
您也可以使用更多具體的條件限制搜尋範圍,例如 method_name = 'datasetservice.delete'
。
查詢 BigQuery 資料表的作業
- 如要找出 BigQuery 資料表的作業,請將查詢條件改為資料表服務。執行下列查詢,找出資料表的建立或刪除作業:
SELECT
timestamp,
severity,
resource.type,
proto_payload.audit_log.authentication_info.principal_email,
proto_payload.audit_log.method_name,
proto_payload.audit_log.resource_name,
FROM
`{{{ project_0.project_id | "Project ID" }}}.global._Required._AllLogs`
WHERE
log_id = 'cloudaudit.googleapis.com/activity'
AND proto_payload.audit_log.method_name LIKE '%TableService%'
LIMIT
100
這項查詢會輸出一個結果。
- 如要查看已完成的 BigQuery 查詢,請根據
jobCompletedEvent
搜尋 data_access
記錄。例如,執行下列 SQL 查詢:
SELECT
timestamp,
resource.labels.project_id,
proto_payload.audit_log.authentication_info.principal_email,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobConfiguration.query.query) AS query,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobConfiguration.query.statementType) AS statementType,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatus.error.message) AS message,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.startTime) AS startTime,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.endTime) AS endTime,
CAST(TIMESTAMP_DIFF( CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.endTime) AS TIMESTAMP), CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.startTime) AS TIMESTAMP), MILLISECOND)/1000 AS INT64) AS run_seconds,
CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.totalProcessedBytes) AS INT64) AS totalProcessedBytes,
CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.totalSlotMs) AS INT64) AS totalSlotMs,
JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.referencedTables) AS tables_ref,
CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.totalTablesProcessed) AS INT64) AS totalTablesProcessed,
CAST(JSON_VALUE(proto_payload.audit_log.service_data.jobCompletedEvent.job.jobStatistics.queryOutputRowCount) AS INT64) AS queryOutputRowCount,
severity
FROM
`{{{ project_0.project_id | "Project ID" }}}.global._Default._AllLogs`
WHERE
log_id = "cloudaudit.googleapis.com/data_access"
AND proto_payload.audit_log.service_data.jobCompletedEvent IS NOT NULL
ORDER BY
startTime
捲動查看兩項結果,並查看「查詢」欄。畫面會列出已完成的 BigQuery 查詢。由於查詢字串包含在 SQL 查詢中,因此結果可能會很大。
工作 4:建立圖表
除了以資料表呈現結果,記錄檔分析功能也支援建立圖表。
- 在結果檢視畫面中點選「圖表」按鈕,
- 選取「圓餅圖」做為圖表類型,並選取「查詢」做為資料欄。
- 圖表應如下所示:

恭喜!
您已實際操作 Cloud Logging 和記錄檔分析,瞭解如何建立查詢、繪製結果圖表,以及深入分析 BigQuery 使用情形。
後續步驟/瞭解詳情
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 5 月 2 日
實驗室上次測試日期:2025 年 5 月 2 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。