Skip to content

Commit 3f29b9d

Browse files
authored
feat: refactor win10 models to remove daily and fix partitioning of braze sync table (#8240)
1 parent 3848c54 commit 3f29b9d

File tree

6 files changed

+94
-101
lines changed

6 files changed

+94
-101
lines changed

sql/moz-fx-data-shared-prod/braze_derived/fxa_win10_users_daily_v1/metadata.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

sql/moz-fx-data-shared-prod/braze_derived/fxa_win10_users_daily_v1/query.sql

Lines changed: 0 additions & 81 deletions
This file was deleted.

sql/moz-fx-data-shared-prod/braze_derived/fxa_win10_users_historical_v1/metadata.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ labels:
1010
owner: lmcfall
1111
scheduling:
1212
dag_name: bqetl_braze_win10_sync
13+
date_partition_parameter: submission_date
1314
bigquery:
1415
time_partitioning:
1516
type: day

sql/moz-fx-data-shared-prod/braze_derived/fxa_win10_users_historical_v1/query.sql

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,87 @@
1-
WITH current_list AS (
1+
WITH win10_users AS (
2+
SELECT DISTINCT
3+
TO_HEX(SHA256(metrics.string.client_association_uid)) AS fxa_id_sha256,
4+
FIRST_VALUE(DATE(submission_timestamp)) OVER (
5+
PARTITION BY
6+
TO_HEX(SHA256(metrics.string.client_association_uid))
7+
ORDER BY
8+
submission_timestamp DESC
9+
) AS submission_date,
10+
FIRST_VALUE(client_info.os) OVER (
11+
PARTITION BY
12+
TO_HEX(SHA256(metrics.string.client_association_uid))
13+
ORDER BY
14+
submission_timestamp DESC
15+
) AS os,
16+
FIRST_VALUE(client_info.os_version) OVER (
17+
PARTITION BY
18+
TO_HEX(SHA256(metrics.string.client_association_uid))
19+
ORDER BY
20+
submission_timestamp DESC
21+
) AS os_version,
22+
FIRST_VALUE(client_info.locale) OVER (
23+
PARTITION BY
24+
TO_HEX(SHA256(metrics.string.client_association_uid))
25+
ORDER BY
26+
submission_timestamp DESC
27+
) AS locale
28+
FROM
29+
`moz-fx-data-shared-prod.firefox_desktop.fx_accounts`
30+
WHERE
31+
DATE(submission_timestamp) = @submission_date
32+
AND client_info.os = 'Windows'
33+
AND client_info.os_version = '10.0'
34+
),
35+
last_seen_14_days AS (
36+
SELECT
37+
user_id_sha256,
38+
MIN(days_seen_bits) AS last_seen_min
39+
FROM
40+
`moz-fx-data-shared-prod.accounts_backend_derived.users_services_last_seen_v1`
41+
WHERE
42+
submission_date = @submission_date
43+
GROUP BY
44+
1
45+
-- bit pattern 100000000000000, last seen 14 days from submission date
46+
HAVING
47+
last_seen_min = 16384
48+
),
49+
inactive_win10_users AS (
50+
SELECT
51+
win10.submission_date,
52+
last_seen.user_id_sha256,
53+
win10.os,
54+
win10.os_version,
55+
win10.locale
56+
FROM
57+
last_seen_14_days AS last_seen
58+
LEFT JOIN
59+
win10_users AS win10
60+
ON last_seen.user_id_sha256 = win10.fxa_id_sha256
61+
-- filter out users that don't have an FX account
62+
WHERE
63+
win10.fxa_id_sha256 IS NOT NULL
64+
),
65+
current_day_users_to_add AS (
66+
SELECT
67+
inactive.submission_date,
68+
braze_users.external_id AS external_id,
69+
-- if user is in our braze users table use their email, otherwise use the email associated with their fxa_id
70+
IFNULL(braze_users.email, fxa_emails.normalizedEmail) AS email,
71+
inactive.user_id_sha256,
72+
inactive.locale
73+
FROM
74+
inactive_win10_users AS inactive
75+
LEFT JOIN
76+
`moz-fx-data-shared-prod.braze_derived.users_v1` AS braze_users
77+
ON inactive.user_id_sha256 = braze_users.fxa_id_sha256
78+
LEFT JOIN
79+
`moz-fx-data-shared-prod.accounts_backend_external.emails_v1` AS fxa_emails
80+
ON inactive.user_id_sha256 = TO_HEX(SHA256(fxa_emails.uid))
81+
-- some users have multiple email addresses in this table, only use primary
82+
AND fxa_emails.isPrimary = TRUE
83+
),
84+
current_list AS (
285
SELECT
386
fxa_id_sha256
487
FROM
@@ -11,7 +94,7 @@ SELECT
1194
daily.locale,
1295
daily.user_id_sha256 AS fxa_id_sha256
1396
FROM
14-
`moz-fx-data-shared-prod.braze_derived.fxa_win10_users_daily_v1` AS daily
97+
current_day_users_to_add AS daily
1598
LEFT JOIN
1699
current_list AS historical
17100
ON historical.fxa_id_sha256 = daily.user_id_sha256

sql/moz-fx-data-shared-prod/braze_external/win10_users_sync_v1/metadata.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ labels:
99
owner1: lmcfall
1010
scheduling:
1111
dag_name: bqetl_braze_win10_sync
12-
# destination is the whole table, not a single partition,
13-
# so don't use date_partition_parameter
14-
date_partition_parameter: null
12+
date_partition_parameter: submission_date
13+
bigquery:
14+
time_partitioning:
15+
type: day
16+
field: submission_date
17+
require_partition_filter: false
18+
expiration_days: null

sql/moz-fx-data-shared-prod/braze_external/win10_users_sync_v1/query.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
SELECT
22
CURRENT_TIMESTAMP() AS updated_at,
3+
submission_date,
34
external_id,
45
TO_JSON(
56
STRUCT(

0 commit comments

Comments
 (0)