Skip to content

Commit 1b3678c

Browse files
committed
all metrics in the same table
1 parent 385e426 commit 1b3678c

2 files changed

Lines changed: 39 additions & 36 deletions

File tree

definitions/output/reports/reports_dynamic.js

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,42 +33,37 @@ for (
3333
date,
3434
metric,
3535
sql,
36-
lense: { name: key, sql: value },
36+
lens: { name: key, sql: value },
3737
devRankFilter: constants.devRankFilter
3838
})
3939
}
4040
})
4141
})
4242
}
4343

44-
if (startDate === endDate) {
45-
iterations.forEach((params, i) => {
46-
publish(params.metric.id + '_' + params.sql.type + '_' + params.lens.name, {
47-
type: 'incremental',
48-
protected: true,
49-
bigquery: params.sql.type === 'histogram' ? { partitionBy: 'date', clusterBy: ['client'] } : {},
50-
schema: 'reports',
51-
tags: ['crawl_complete', 'reports']
52-
}).preOps(ctx => `
53-
--DELETE FROM ${ctx.self()}
54-
--WHERE date = '${params.date}';
55-
`).query(ctx => `
56-
/* {"dataform_trigger": "report_complete", "date": "${params.date}", "name": "${params.metric.id}", "type": "${params.sql.type}", "lense": "${params.lens.name}"} */` +
57-
params.sql.query(ctx, params)
58-
)
59-
})
60-
} else {
61-
iterations.forEach((params, i) => {
62-
operate(
63-
params.metric.id + '_' + params.sql.type + '_' + params.lens.name + '_' + params.date)
64-
.tags(['crawl_complete', 'reports'])
65-
.queries(ctx => `
44+
iterations.forEach((params, i) => {
45+
operate(
46+
params.metric.id + '_' + params.sql.type + '_' + params.lens.name + '_' + params.date)
47+
.tags(['crawl_complete', 'reports'])
48+
.queries(ctx => `
49+
CREATE TABLE IF NOT EXISTS reports.${params.metric.id}_${params.sql.type} (
50+
metric STRING,
51+
date DATE,
52+
client STRING,
53+
lens STRING,
54+
bin INT64,
55+
volume INT64,
56+
pdf FLOAT64,
57+
cdf FLOAT64
58+
)
59+
PARTITION BY date
60+
CLUSTER BY client, lens;
61+
6662
DELETE FROM reports.${params.metric.id}_${params.sql.type}
6763
WHERE date = '${params.date}';
6864
6965
/* {"dataform_trigger": "report_complete", "date": "${params.date}", "name": "${params.metric.id}", "type": "${params.sql.type}", "lense": "${params.lens.name}"} */
7066
INSERT INTO reports.${params.metric.id}_${params.sql.type}` +
7167
params.sql.query(ctx, params)
72-
)
73-
})
74-
}
68+
)
69+
})

includes/reports.js

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,31 @@ const config = {
77
{
88
type: 'histogram',
99
query: DataformTemplateBuilder.create((ctx, params) => `
10+
WITH pages AS (
11+
SELECT
12+
date,
13+
client,
14+
CAST(FLOOR(INT64(summary.bytesTotal) / 1024 / 100) * 100 AS INT64) AS bin
15+
FROM crawl.pages
16+
WHERE
17+
date = '${params.date}' ${params.lens.sql} AND
18+
is_root_page AND
19+
INT64(summary.bytesTotal) > 0
20+
)
21+
1022
SELECT
1123
*,
24+
'${params.lens.name}' AS lens,
1225
SUM(pdf) OVER (PARTITION BY client ORDER BY bin) AS cdf
1326
FROM (
1427
SELECT
1528
*,
1629
volume / SUM(volume) OVER (PARTITION BY client) AS pdf
1730
FROM (
1831
SELECT
19-
date,
20-
client,
21-
CAST(FLOOR(INT64(summary.bytesTotal) / 1024 / 100) * 100 AS INT64) AS bin,
32+
*,
2233
COUNT(0) AS volume
23-
FROM ${ctx.ref('crawl', 'pages')}
24-
WHERE
25-
date = '${params.date}' ${params.devRankFilter} ${params.lense.sql} AND
26-
is_root_page AND
27-
INT64(summary.bytesTotal) > 0
34+
FROM pages
2835
GROUP BY
2936
date,
3037
client,
@@ -46,16 +53,17 @@ WITH pages AS (
4653
date,
4754
client,
4855
INT64(summary.bytesTotal) AS bytesTotal
49-
FROM ${ctx.ref('crawl', 'pages')}
56+
FROM crawl.pages
5057
WHERE
51-
date = '${params.date}' ${params.devRankFilter} ${params.lense.sql} AND
58+
date = '${params.date}' $ ${params.lens.sql} AND
5259
is_root_page AND
5360
INT64(summary.bytesTotal) > 0
5461
)
5562
5663
SELECT
5764
date,
5865
client,
66+
'${params.lens.name}' AS lens,
5967
UNIX_SECONDS(TIMESTAMP(date)) AS timestamp,
6068
ROUND(APPROX_QUANTILES(bytesTotal, 1001)[OFFSET(101)] / 1024, 2) AS p10,
6169
ROUND(APPROX_QUANTILES(bytesTotal, 1001)[OFFSET(251)] / 1024, 2) AS p25,

0 commit comments

Comments
 (0)