這份文件包含記錄項目的範例查詢,這些項目儲存在已升級為使用記錄檔分析的記錄檔 bucket 中。您可以在這些值區中,透過 Google Cloud 控制台的「記錄檔分析」頁面執行 SQL 查詢。如需更多範例,請參閱 logging-analytics-samples
和 security-analytics
GitHub 存放區。
本文不會說明 SQL,也不會介紹如何傳送及儲存記錄檔項目。如要瞭解這些主題,請參閱「後續步驟」一節。
事前準備
本節說明使用記錄分析前必須完成的步驟。
設定記錄檔 bucket
確認記錄檔 bucket 已升級為使用 Log Analytics:
-
在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 針對要查詢的記錄檢視區塊所屬的每個記錄檔值區,請確認「可用的記錄分析」欄顯示「開啟」。如果顯示「升級」,請按一下「升級」並完成對話方塊。
設定 IAM 角色和權限
本節說明使用記錄檔分析功能所需的 IAM 角色或權限:
-
如要取得使用記錄檔分析和查詢記錄檔檢視畫面所需的權限,請要求管理員將專案的下列 IAM 角色授予您:
-
如要查詢
_Required
和_Default
記錄檔值區: 記錄檢視器 (roles/logging.viewer
) -
如要查詢專案中的所有記錄檢視畫面:
記錄檢視畫面存取者 (
roles/logging.viewAccessor
)
如要將主體限制為特定記錄檢視畫面,請在專案層級授予記錄檢視畫面存取者角色時新增 IAM 條件,或是在記錄檢視畫面的政策檔案中新增 IAM 繫結。詳情請參閱控管記錄檢視畫面存取權。
您必須具備這些權限,才能在「記錄檔探索器」頁面查看記錄項目。如要瞭解查詢使用者定義值區中的檢視畫面,或查詢
_Default
記錄檔值區的_AllLogs
檢視畫面時,需要哪些其他角色,請參閱「Cloud Logging 角色」。 -
如要查詢
-
如要取得查詢 Analytics 檢視畫面所需的權限,請要求管理員授予您專案的「可觀測性 Analytics 使用者」 (
roles/observability.analyticsUser
) IAM 角色。
如何使用這些查詢
如要在「記錄檔分析」頁面使用本文顯示的查詢,請將 TABLE_NAME_OF_LOG_VIEW 替換為要查詢的記錄檢視或分析檢視資料表名稱。
如要查詢記錄檢視區塊,請在
FROM
子句中使用下列格式:FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
如要查詢資料分析檢視區,請在
FROM
子句中使用下列格式:FROM `analytics_view.PROJECT_ID.LOCATION.ANALYTICS_VIEW_ID`
以下說明先前運算式中各個欄位的意義:
- PROJECT_ID:專案的 ID。
- LOCATION:記錄檢視畫面或分析資料檢視畫面的位置。
- BUCKET_ID:記錄值區的名稱或 ID。
- LOG_VIEW_ID:記錄檢視的 ID,最多 100 個字元,只能包含英文字母、數字、底線和連字號。
- ANALYTICS_VIEW_ID:Analytics 檢視區塊的 ID,長度上限為 100 個字元,且只能包含英文字母、數字、底線和連字號。
如果您建立了連結的 BigQuery 資料集,就可以從 BigQuery Studio 頁面查詢連結的資料集。在該頁面中,將 TABLE_NAME_OF_LOG_VIEW 替換為連結資料集中資料表的路徑。舉例來說,如要查詢專案 myproject
中連結資料集 mydataset
的檢視區塊 _AllLogs
,請將這個欄位設為 myproject.mydataset._AllLogs
。
前往「Log Analytics」(記錄檔分析) 頁面
如要開啟「記錄檔分析」頁面,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Log Analytics」(記錄檔分析) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
如要找出記錄檢視和數據分析檢視,請前往「檢視」窗格。
記錄檢視畫面會列在「segment」記錄部分, 而分析檢視畫面則會列在「data_table」「Analytics Views」部分。
選用:如要找出記錄檢視畫面或數據分析檢視畫面的結構定義,請選取記錄檢視畫面或數據分析檢視畫面。
系統會顯示結構定義。您可以使用「篩選」欄位尋找特定欄位。您無法修改結構定義。
如要瞭解如何存取「Views」窗格中列出元素的預設查詢,請參閱「使用記錄檔分析查詢及分析記錄檔」。
篩選記錄檔
SQL 查詢會決定要處理記錄檢視畫面中的哪些項目,然後將這些項目分組並執行匯總作業。如果未列出任何分組和匯總作業,查詢結果會包含篩選作業選取的資料列。本節範例會說明篩選作業。
依時間篩選
如要設定查詢的時間範圍,建議使用時間範圍選取器。如果查詢在 WHERE
子句中未指定 timestamp
欄位,系統就會自動使用這個選取器。舉例來說,如要查看過去一週的資料,請從時間範圍選取器中選取「過去 7 天」。你也可以使用時間範圍選取器指定開始和結束時間、指定要查看的時間,以及變更時區。
如果在 WHERE
子句中加入 timestamp
欄位,系統就不會使用時間範圍選取器設定。下列範例會使用 TIMESTAMP_SUB
函式篩選資料,讓您指定從目前時間回溯的時間間隔:
WHERE
timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
如要進一步瞭解如何依時間篩選,請參閱時間函式和時間戳記函式。
依資源篩選
如要依資源篩選,請新增 resource.type
限制。
舉例來說,下列查詢會讀取最近一小時的資料,然後保留資源類型符合 gce_instance
的資料列,最後排序並顯示最多 100 個項目:
SELECT
timestamp, log_name, severity, json_payload, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
resource.type = "gce_instance"
ORDER BY timestamp ASC
LIMIT 100
依嚴重程度篩選
您可以依特定嚴重性進行篩選,例如 severity = 'ERROR'
。您也可以使用 IN
陳述式,並指定一組有效值。
舉例來說,下列查詢會讀取最近一小時的資料,然後只保留包含 severity
欄位且值為 'INFO'
或 'ERROR'
的資料列:
SELECT
timestamp, log_name, severity, json_payload, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
severity IS NOT NULL AND
severity IN ('INFO', 'ERROR')
ORDER BY timestamp ASC
LIMIT 100
先前的查詢會依據 severity
欄位的值進行篩選。不過,您也可以編寫查詢,依記錄嚴重性的數值篩選。舉例來說,如果您將 severity
行替換為下列程式碼,查詢就會傳回嚴重程度至少為 NOTICE
的所有記錄項目:
severity_number IS NOT NULL AND
severity_number > 200
如要瞭解列舉值,請參閱 LogSeverity
。
依記錄檔名稱篩選
如要依記錄名稱篩選,可以對 log_name
或 log_id
欄位的值新增限制。log_name
欄位包含資源路徑。也就是說,這個欄位的值類似 projects/myproject/logs/mylog
。log_id
欄位只會儲存記錄名稱,例如 mylog
。
舉例來說,下列查詢會讀取最近一小時的資料,然後保留 log_id
欄位值為 cloudaudit.googleapis.com/data_access
的資料列,接著排序並顯示結果:
SELECT
timestamp, log_id, severity, json_payload, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
log_id = "cloudaudit.googleapis.com/data_access"
ORDER BY timestamp ASC
LIMIT 100
依資源標籤篩選
大多數受監控的資源描述元都會定義用於識別特定資源的標籤。舉例來說,Compute Engine 執行個體的描述元包含區域、專案 ID 和執行個體 ID 的標籤。寫入記錄項目時,系統會為每個欄位指派值。以下為這類範例:
{
type: "gce_instance"
labels: {
instance_id: "1234512345123451"
project_id: "my-project"
zone: "us-central1-f"
}
}
由於 labels
欄位的資料類型為 JSON,因此在查詢中加入 resource.labels.zone = "us-centra1-f"
等限制會導致語法錯誤。如要取得 JSON 資料型別的欄位值,請使用 JSON_VALUE
函式。
舉例來說,下列查詢會讀取最新資料,然後保留資源為 Compute Engine 執行個體且位於 us-central1-f
區域的資料列:
SELECT
timestamp, log_name, severity, JSON_VALUE(resource.labels.zone) AS zone, json_payload, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
resource.type = "gce_instance" AND
JSON_VALUE(resource.labels.zone) = "us-central1-f"
ORDER BY timestamp ASC
LIMIT 100
如要瞭解所有可擷取及轉換 JSON 資料的函式,請參閱 JSON 函式。
依 HTTP 要求篩選
如要篩選記錄檢視畫面,只納入與 HTTP 要求或回覆相應的記錄項目,請新增 http_request IS NOT NULL
限制:
SELECT
timestamp, log_name, severity, http_request, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
http_request IS NOT NULL
ORDER BY timestamp
LIMIT 100
下列查詢只會納入與 GET
或 POST
要求對應的資料列:
SELECT
timestamp, log_name, severity, http_request, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
http_request IS NOT NULL AND
http_request.request_method IN ('GET', 'POST')
ORDER BY timestamp ASC
LIMIT 100
依 HTTP 狀態篩選
如要依 HTTP 狀態篩選,請修改 WHERE
子句,要求定義 http_request.status
欄位:
SELECT
timestamp, log_name, http_request.status, http_request, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
http_request IS NOT NULL AND
http_request.status IS NOT NULL
ORDER BY timestamp ASC
LIMIT 100
如要判斷欄位中儲存的資料類型,請查看結構定義或顯示欄位。先前的查詢結果顯示 http_request.status
欄位儲存整數值。
依 JSON 類型的欄位篩選
如要從資料類型為 JSON 的資料欄中擷取值,請使用 JSON_VALUE
函式。
請參考下列查詢:
SELECT
json_payload
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
json_payload.status IS NOT NULL
和
SELECT
json_payload
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
JSON_VALUE(json_payload.status) IS NOT NULL
先前的查詢會測試記錄項目中 json_payload
欄位的值。這兩項查詢都會捨棄不含標示為 json_payload
的欄位的記錄項目。這兩項查詢的差異在於最後一行,該行定義了要與 NULL
進行測試的內容。現在,假設記錄檢視中有兩個記錄項目。在一個記錄項目中,json_payload
欄位具有下列格式:
{
status: {
measureTime: "1661517845"
}
}
另一個記錄項目的 json_payload
欄位結構不同:
{
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
jobName: "projects/my-project/locations/us-central1/jobs/test1"
relativeUrl: "/food=cake"
status: "NOT_FOUND"
targetType: "APP_ENGINE_HTTP"
}
先前的兩個記錄項目都符合限制條件 json_payload.status IS NOT NULL
。也就是說,第一個查詢的結果會包含這兩筆記錄項目。不過,如果限制為 JSON_VALUE(json_payload.status) IS NOT NULL
,查詢結果只會包含第二個記錄項目。
依規則運算式篩選
如要傳回與規則運算式相符的子字串,請使用 REGEXP_EXTRACT
函式。這個函式的傳回型別為 STRING
或 BYTES
。
下列查詢會顯示最近收到的記錄項目、保留含有 json_payload.jobName
欄位的項目,然後顯示以 test
開頭的名稱部分:
SELECT
timestamp, REGEXP_EXTRACT(JSON_VALUE(json_payload.jobName), r".*(test.*)$") AS name,
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
json_payload.jobName IS NOT NULL
ORDER BY timestamp DESC
LIMIT 20
如需其他範例,請參閱REGEXP_EXTRACT
說明文件。如需其他可用的規則運算式範例,請參閱「函式、運算子和條件式」。
本範例中顯示的查詢效率不佳。如要比對子字串 (如圖所示),請使用 CONTAINS_SUBSTR
函式。
將記錄項目分組及彙整
本節將以先前的範例為基礎,說明如何分組及彙整記錄項目。如果您未指定分組,但指定了匯總,則系統會列印單一結果,因為 SQL 會將滿足 WHERE
子句的所有資料列視為單一群組。
每個 SELECT
運算式都必須包含在群組欄位中,或經過彙整。
依時間分組
如要依時間分組資料,請使用 TIMESTAMP_TRUNC
函式,將時間戳記截斷為指定精細度 (如 MINUTE
)。舉例來說,如果精細程度設為 MINUTE
,格式為 hours:minutes:seconds
的時間戳記 15:30:11
會變成 15:30:00
。
下列查詢會讀取時間範圍選擇器指定間隔內收到的資料,然後保留 json_payload.status
欄位值不是 NULL 的資料列。查詢會將每個資料列的時間戳記截斷至小時,然後依截斷的時間戳記和狀態將資料列分組:
SELECT
TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
JSON_VALUE(json_payload.status) AS status,
COUNT(*) AS count
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
json_payload IS NOT NULL AND
JSON_VALUE(json_payload.status) IS NOT NULL
GROUP BY hour,status
ORDER BY hour ASC
如需其他範例,請參閱TIMESTAMP_TRUNC
說明文件。如要瞭解其他時間函式,請參閱日期時間函式。
依資源分組
下列查詢會讀取最近一小時的資料,然後依資源類型將記錄項目分組。接著,系統會計算每個資源類型的資料列數,並傳回含有兩欄的表格。第一欄列出資源類型,第二欄則顯示該資源類型的列數:
SELECT
resource.type, COUNT(*) AS count
FROM
`TABLE_NAME_OF_LOG_VIEW`
GROUP BY resource.type
LIMIT 100
依嚴重程度分組
下列查詢會讀取最近一小時的資料,然後保留含有嚴重程度欄位的資料列。然後,查詢會依嚴重程度將資料列分組,並計算每個群組的資料列數:
SELECT
severity, COUNT(*) AS count
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
severity IS NOT NULL
GROUP BY severity
ORDER BY severity
LIMIT 100
依「log_id
」分組
下列查詢的結果是含有兩欄的資料表。第一欄列出記錄名稱,第二欄則列出寫入記錄的記錄項目數。查詢會依項目數排序結果:
SELECT
log_id, COUNT(*) AS count
FROM
`TABLE_NAME_OF_LOG_VIEW`
GROUP BY log_id
ORDER BY count DESC
LIMIT 100
計算 HTTP 要求的平均延遲時間
下列查詢說明如何依多個資料欄分組,並計算平均值。查詢會依據 HTTP 要求中包含的網址,以及 labels.checker_location
欄位的值,將資料列分組。分組資料列後,查詢會計算每個群組的平均延遲時間:
SELECT
JSON_VALUE(labels.checker_location) AS location,
AVG(http_request.latency.seconds) AS secs, http_request.request_url
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
http_request IS NOT NULL AND
http_request.request_method IN ('GET')
GROUP BY http_request.request_url, location
ORDER BY location
LIMIT 100
在先前的運算式中,由於 labels
的資料類型為 JSON,因此需要 JSON_VALUE
才能擷取 labels.checker_location
欄位的值。不過,您不會使用這個函式從 http_request.latency.seconds
欄位擷取值。後者欄位的資料類型為整數。
計算子網路測試的平均傳送位元組數
下列查詢說明如何顯示各位置傳送的位元組平均數。
這項查詢會讀取最近一小時的資料,然後只保留資源類型資料欄為 gce_subnetwork
且 json_payload
資料欄不是 NULL 的資料列。接著,查詢會依資源位置將資料列分組。與先前將資料儲存為數值的範例不同,bytes_sent
欄位的值是字串,因此您必須先將值轉換為 FLOAT64
,才能計算平均值:
SELECT JSON_VALUE(resource.labels.location) AS location,
AVG(CAST(JSON_VALUE(json_payload.bytes_sent) AS FLOAT64)) AS bytes
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
resource.type = "gce_subnetwork" AND
json_payload IS NOT NULL
GROUP BY location
LIMIT 100
前一個查詢的結果是資料表,其中每個資料列都會列出位置,以及該位置傳送的平均位元組數。
如要瞭解所有可擷取及轉換 JSON 資料的函式,請參閱 JSON 函式。
如要瞭解 CAST
和其他轉換函式,請參閱「轉換函式」。
計算欄位符合模式的記錄項目
如要傳回與規則運算式相符的子字串,請使用 REGEXP_EXTRACT
函式。這個函式的傳回型別為 STRING
或 BYTES
。
下列查詢會保留 json_payload.jobName
欄位值不是 NULL 的記錄項目。然後,系統會依開頭為 test
的名稱後置字元將項目分組。最後,查詢會計算每個群組中的項目數量:
SELECT
REGEXP_EXTRACT(JSON_VALUE(json_payload.jobName), r".*(test.*)$") AS name,
COUNT(*) AS count
FROM
`TABLE_NAME_OF_LOG_VIEW`
WHERE
json_payload.jobName IS NOT NULL
GROUP BY name
ORDER BY count
LIMIT 20
如需其他範例,請參閱REGEXP_EXTRACT
說明文件。如需其他可用的規則運算式範例,請參閱「函式、運算子和條件式」。
跨欄搜尋
本節說明兩種不同的方法,可用於搜尋表格的多個資料欄。
以符記為準的搜尋
如要在記錄檢視畫面中搜尋符合一組搜尋字詞的項目,請使用 SEARCH
函式。這項函式需要兩個參數:搜尋位置和搜尋查詢。由於 SEARCH
函式有特定的資料搜尋規則,建議您參閱 SEARCH
說明文件。
下列查詢只會保留欄位與「35.193.12.15」完全相符的資料列:
SELECT
timestamp, log_id, proto_payload, severity, resource.type, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW` AS t
WHERE
proto_payload IS NOT NULL AND
log_id = "cloudaudit.googleapis.com/data_access" AND
SEARCH(t,"`35.193.12.15`")
ORDER BY timestamp ASC
LIMIT 20
在先前的查詢中,反引號會將要搜尋的值括住。這可確保 SEARCH
函式會搜尋欄位值與反引號之間的值是否完全相符。
如果查詢字串中省略反引號,系統會根據SEARCH
說明文件中定義的規則分割查詢字串。舉例來說,執行下列陳述式時,查詢字串會分割為四個權杖:「35」、「193」、「12」和「15」:
SEARCH(t,"35.193.12.15")
先前的 SEARCH
陳述式會在單一欄位符合所有四個權杖時,比對資料列。權杖的順序沒有影響。
您可以在查詢中加入多個 SEARCH
陳述式。舉例來說,在先前的查詢中,您可以將記錄 ID 的篩選條件替換為下列陳述式:
SEARCH(t,"`cloudaudit.googleapis.com/data_access`")
先前的陳述式會搜尋記錄檢視畫面中記錄項目的每個欄位,而原始陳述式只會搜尋記錄項目的 log_id
欄位。
如要對多個欄位執行多項搜尋,請以空格分隔個別字串。舉例來說,下列陳述式會比對欄位包含「Hello World」、「happy」和「days」的資料列:
SEARCH(t,"`Hello World` happy days")
最後,您可以搜尋特定欄位,不必搜尋整個表格。舉例來說,下列陳述式只會搜尋名為 text_payload
和 json_payload
的資料欄:
SEARCH((text_payload, json_payload) ,"`35.222.132.245`")
如要瞭解 SEARCH
函式的參數處理方式,請參閱 BigQuery 參考頁面「搜尋函式」。
子字串搜尋
如要執行不區分大小寫的測試,判斷運算式中是否有值,請使用 CONTAINS_SUBSTR
函式。如果值存在,這個函式會傳回 TRUE
,否則會傳回 FALSE
。搜尋值必須是 STRING
常值,但不得為 NULL
常值。
舉例來說,下列查詢會擷取所有具有特定 IP 位址的「資料存取」稽核記錄項目,且這些項目的時間戳記位於特定時間範圍內。最後,查詢會排序結果,然後顯示最舊的 20 個結果:
SELECT
timestamp, log_id, proto_payload, severity, resource.type, resource, labels
FROM
`TABLE_NAME_OF_LOG_VIEW` AS t
WHERE
proto_payload IS NOT NULL AND
log_id = "cloudaudit.googleapis.com/data_access" AND
CONTAINS_SUBSTR(t,"35.193.12.15")
ORDER BY timestamp ASC
LIMIT 20
前一個查詢會執行子字串測試。因此,包含「35.193.12.152」的資料列符合 CONTAINS_SUBSTR
陳述式。
合併多個來源的資料
查詢陳述式可掃描一或多個資料表或運算式,然後傳回運算的結果資料列。舉例來說,您可以使用查詢陳述式,以各種方式合併不同資料表或資料集中的 SELECT
陳述式結果,然後從合併的資料中選取資料欄。
使用彙整作業合併兩個資料表的資料
如要合併兩個資料表的資訊,請使用其中一個 join 運算子。您使用的彙整類型和條件子句,會決定資料列的合併和捨棄方式。
下列查詢會從同一個追蹤記錄範圍寫入的兩個不同資料表,提供 json_payload
欄位。這項查詢會對兩個資料表執行內部 JOIN
,找出兩個資料表中 span_id
和 trace
資料欄值相符的資料列。根據這項結果,查詢會選取來自 TABLE_NAME_OF_LOG_VIEW_1 的 timestamp
、severity
和 json_payload
欄位、來自 TABLE_NAME_OF_LOG_VIEW_2 的 json_payload
欄位,以及兩個資料表聯結的 span_id
和 trace
欄位值,並傳回最多 100 個資料列:
SELECT
a.timestamp, a.severity, a.json_payload, b.json_payload, a.span_id, a.trace
FROM `TABLE_NAME_OF_LOG_VIEW_1` a
JOIN `TABLE_NAME_OF_LOG_VIEW_2` b
ON
a.span_id = b.span_id AND
a.trace = b.trace
LIMIT 100
使用聯集結合多個選取項目
如要合併兩個以上的 SELECT
陳述式結果,並捨棄重複的資料列,請使用 UNION
運算子。如要保留重複的資料列,請使用 UNION ALL
運算子。
下列查詢會從 TABLE_NAME_OF_LOG_VIEW_1 讀取最近一小時的資料、將結果與 TABLE_NAME_OF_LOG_VIEW_2 最近一小時的資料合併、依時間戳記遞增排序合併的資料,然後顯示最舊的 100 個項目:
SELECT
timestamp, log_name, severity, json_payload, resource, labels
FROM(
SELECT * FROM `TABLE_NAME_OF_LOG_VIEW_1`
UNION ALL
SELECT * FROM `TABLE_NAME_OF_LOG_VIEW_2`
)
ORDER BY timestamp ASC
LIMIT 100
移除重複的記錄項目
Log Analytics 不會在執行查詢前移除重複的記錄項目。 這與使用記錄探索工具查詢記錄項目時的行為不同,因為記錄探索工具會比較記錄名稱、時間戳記和插入 ID 欄位,藉此移除重複項目。
您可以使用資料列層級驗證功能,移除重複的記錄項目。
詳情請參閱「疑難排解:Log Analytics 結果中出現重複的記錄項目」。
限制
「記錄檔分析」頁面中使用的查詢支援 GoogleSQL 函式,但有部分例外情況。
透過「記錄檔分析」頁面發出的 SQL 查詢,不支援下列 SQL 指令:
- DDL 和 DML 指令
- JavaScript 使用者定義函式
- BigQuery ML 函式
- SQL 變數
只有透過 BigQuery Studio 和 Looker Studio 頁面,以及 bq 指令列工具查詢連結的資料集時,才支援下列項目:
- JavaScript 使用者定義函式
- BigQuery ML 函式
- SQL 變數
後續步驟
如要瞭解如何傳送及儲存記錄檔項目,請參閱下列文件:
如需 SQL 參考說明文件,請參閱下列文件: