App Engine StandardのリクエストログをBigQueryにエクスポートしています。BigQuery UDFでappengine_googleapis_com_request_log.protoPayload.lineを処理したい
Applicationによって出力されるログはprotoPayload.lineになっているので、UDFで処理しようとしました。
ただし、タイプの不一致エラーが原因で、クエリを実行できませんでした。 金型を一貫させるつもりですが、どうすれば解決できますか?
Error: No matching signature for function JS:LINE_COUNT for argument types: ARRAY<STRUCT<time TIMESTAMP, severity STRING, logMessage STRING, ...>>. Supported signature: LINE_COUNT(ARRAY<STRUCT<time TIMESTAMP, severity STRING, logMessage STRING, ...>>) at [3:3]
問合せ:これについて
#standardSQL
CREATE TEMPORARY FUNCTION LINE_COUNT(lines ARRAY<STRUCT<time TIMESTAMP,
severity STRING,
logMessage STRING,
sourceLocation STRUCT<file STRING,
line FLOAT64,
functionName STRING>>>)
RETURNS FLOAT64
LANGUAGE js AS """
var count = 0;
for (var i = 0; i < lines.length; i++) {
count++;
}
return count;
""";
SELECT
LINE_COUNT(protoPayload.line)
FROM
`gaelog_from_bqstreaming.appengine_googleapis_com_request_log_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d",
DATE_SUB(CURRENT_DATE(),
INTERVAL 1 DAY))
AND FORMAT_DATE("%Y%m%d",
CURRENT_DATE())
LIMIT
1000
私はあなたのアドバイスで問題を解決しました!ありがとうございました! – sinmetal