Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare active_users_aggregates for a backfill with shredder mitigation. #6349

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

lucia-vargas-a
Copy link
Contributor

@lucia-vargas-a lucia-vargas-a commented Oct 15, 2024

Description

This PR prepares active_users_aggregates for a backfill with shredder mitigation, which includes renaming columns to cascade upstream changes.

Related Tickets & Documents

Reviewer, please follow this checklist

┆Issue is synchronized with this Jira Task

…on. Rename columns [first_seen_date, os_version, segment] to cascade upstream changes during the backfill for stable numbers.
…n is backfilled. Remove the view generation from the new version which conflicts with previous version.
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

Copy link
Contributor

@bochocki bochocki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some comments that I think are worth addressing, but it's possible that they're not very relevant. If we can address the comments this looks good to go.

scheduling:
dag_name: bqetl_analytics_aggregations
task_name: {{ app_name }}_active_users_aggregates
task_name: {{ app_name }}_active_users_aggregates_v3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the CODEOWNERS file, all of the tables are referenced as active_users_aggregates_v4. Should the task name match this? Should the directory also be updated from sql_generators/active_users_aggregates_v3/templates/metadata.yaml to sql_generators/active_users_aggregates_v4/templates/metadata.yaml?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You;re right that the task must be named _v4, this happens in the folder for version 4.
In v3 folder the task remains as v3 and pending to be removed from the DAG once the v4 is in production.

Comment on lines +97 to +99
focus_android_view_template = env.get_template("focus_android_view.sql")
mobile_view_template = env.get_template("mobile_view.sql")
view_template = env.get_template("view.sql")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not used?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm intentionally avoiding generating the view for v4 until the table is validated and in production. There should be a PR to generate it then.

TABLE_NAME = os.path.basename(os.path.normpath(THIS_PATH))
BASE_NAME = "_".join(TABLE_NAME.split("_")[:-1])
DATASET_FOR_UNIONED_VIEWS = "telemetry"
CHECKS_TEMPLATE_CHANNELS = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't contain Fenix; is that expected?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it is expected. Fenix checks are in a separate file.

Comment on lines +118 to +125
elif browser.name == "focus_android":
query_sql = reformat(
focus_android_query_template.render(
project_id=target_project,
app_name=browser.name,
)
)
schema_template = mobile_schema_template
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does focus_android have a query template that's distinct from the mobile query template?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was the only browser that required keeping legacy and Glean data, probably something to reevaluate soon.

type: STRING
mode: NULLABLE
- name: attributed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attribution_medium, attribution_source, and attributed all seem to be removed from the schema. Is that intentional?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not intentional, added back, thanks!

@@ -0,0 +1,93 @@
fields:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The desktop v4 schema contains attribution columns while the mobile schema doesn't; is that intentional?

@dataops-ci-bot
Copy link

Integration report for "Ensure attribution columns are present in mobile's schema."

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_analytics_aggregations.py /tmp/workspace/generated-sql/dags/bqetl_analytics_aggregations.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_analytics_aggregations.py	2024-11-11 17:11:26.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_analytics_aggregations.py	2024-11-11 17:26:12.000000000 +0000
@@ -455,6 +455,23 @@
             checks__fail_fenix_derived__active_users_aggregates__v3
         )
 
+    checks__fail_fenix_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_fenix_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__fail_firefox_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__fail_firefox_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -486,6 +503,23 @@
             checks__fail_firefox_ios_derived__active_users_aggregates__v3
         )
 
+    checks__fail_firefox_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_firefox_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__fail_focus_android_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__fail_focus_android_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -517,6 +551,23 @@
             checks__fail_focus_android_derived__active_users_aggregates__v3
         )
 
+    checks__fail_focus_android_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_focus_android_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__fail_focus_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__fail_focus_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -548,6 +599,23 @@
             checks__fail_focus_ios_derived__active_users_aggregates__v3
         )
 
+    checks__fail_focus_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_focus_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__fail_klar_android_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__fail_klar_android_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -579,6 +647,23 @@
             checks__fail_klar_android_derived__active_users_aggregates__v3
         )
 
+    checks__fail_klar_android_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_klar_android_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__fail_klar_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__fail_klar_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -610,6 +695,23 @@
             checks__fail_klar_ios_derived__active_users_aggregates__v3
         )
 
+    checks__fail_klar_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__fail_klar_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_fenix_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_fenix_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -627,6 +729,23 @@
         retries=0,
     )
 
+    checks__warn_fenix_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_fenix_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_firefox_desktop_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_firefox_desktop_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -644,6 +763,23 @@
         retries=0,
     )
 
+    checks__warn_firefox_desktop_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_firefox_desktop_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_firefox_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_firefox_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -661,6 +797,23 @@
         retries=0,
     )
 
+    checks__warn_firefox_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_firefox_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_focus_android_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_focus_android_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -678,6 +831,23 @@
         retries=0,
     )
 
+    checks__warn_focus_android_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_focus_android_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_focus_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_focus_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -695,6 +865,23 @@
         retries=0,
     )
 
+    checks__warn_focus_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_focus_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_klar_android_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_klar_android_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -712,6 +899,23 @@
         retries=0,
     )
 
+    checks__warn_klar_android_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_klar_android_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
     checks__warn_klar_ios_derived__active_users_aggregates__v3 = bigquery_dq_check(
         task_id="checks__warn_klar_ios_derived__active_users_aggregates__v3",
         source_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
@@ -729,8 +933,25 @@
         retries=0,
     )
 
-    fenix_active_users_aggregates = bigquery_etl_query(
-        task_id="fenix_active_users_aggregates",
+    checks__warn_klar_ios_derived__active_users_aggregates__v4 = bigquery_dq_check(
+        task_id="checks__warn_klar_ios_derived__active_users_aggregates__v4",
+        source_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=False,
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+        retries=0,
+    )
+
+    fenix_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="fenix_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="fenix_derived",
         project_id="moz-fx-data-shared-prod",
@@ -745,8 +966,24 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
-    firefox_desktop_active_users_aggregates = bigquery_etl_query(
-        task_id="firefox_desktop_active_users_aggregates",
+    fenix_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="fenix_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    firefox_desktop_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="firefox_desktop_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="firefox_desktop_derived",
         project_id="moz-fx-data-shared-prod",
@@ -762,21 +999,37 @@
     )
 
     with TaskGroup(
-        "firefox_desktop_active_users_aggregates_external",
-    ) as firefox_desktop_active_users_aggregates_external:
+        "firefox_desktop_active_users_aggregates_v3_external",
+    ) as firefox_desktop_active_users_aggregates_v3_external:
         ExternalTaskMarker(
-            task_id="bqetl_dynamic_dau__wait_for_firefox_desktop_active_users_aggregates",
+            task_id="bqetl_dynamic_dau__wait_for_firefox_desktop_active_users_aggregates_v3",
             external_dag_id="bqetl_dynamic_dau",
-            external_task_id="wait_for_firefox_desktop_active_users_aggregates",
+            external_task_id="wait_for_firefox_desktop_active_users_aggregates_v3",
             execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=51300)).isoformat() }}",
         )
 
-        firefox_desktop_active_users_aggregates_external.set_upstream(
-            firefox_desktop_active_users_aggregates
+        firefox_desktop_active_users_aggregates_v3_external.set_upstream(
+            firefox_desktop_active_users_aggregates_v3
         )
 
-    firefox_ios_active_users_aggregates = bigquery_etl_query(
-        task_id="firefox_ios_active_users_aggregates",
+    firefox_desktop_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="firefox_desktop_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    firefox_ios_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="firefox_ios_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="firefox_ios_derived",
         project_id="moz-fx-data-shared-prod",
@@ -791,8 +1044,24 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
-    focus_android_active_users_aggregates = bigquery_etl_query(
-        task_id="focus_android_active_users_aggregates",
+    firefox_ios_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="firefox_ios_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    focus_android_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="focus_android_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="focus_android_derived",
         project_id="moz-fx-data-shared-prod",
@@ -807,8 +1076,24 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
-    focus_ios_active_users_aggregates = bigquery_etl_query(
-        task_id="focus_ios_active_users_aggregates",
+    focus_android_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="focus_android_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    focus_ios_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="focus_ios_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="focus_ios_derived",
         project_id="moz-fx-data-shared-prod",
@@ -823,8 +1108,24 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
-    klar_android_active_users_aggregates = bigquery_etl_query(
-        task_id="klar_android_active_users_aggregates",
+    focus_ios_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="focus_ios_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="focus_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    klar_android_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="klar_android_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="klar_android_derived",
         project_id="moz-fx-data-shared-prod",
@@ -839,8 +1140,24 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
-    klar_ios_active_users_aggregates = bigquery_etl_query(
-        task_id="klar_ios_active_users_aggregates",
+    klar_android_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="klar_android_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_android_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
+    klar_ios_active_users_aggregates_v3 = bigquery_etl_query(
+        task_id="klar_ios_active_users_aggregates_v3",
         destination_table='active_users_aggregates_v3${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
         dataset_id="klar_ios_derived",
         project_id="moz-fx-data-shared-prod",
@@ -855,6 +1172,22 @@
         parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
     )
 
+    klar_ios_active_users_aggregates_v4 = bigquery_etl_query(
+        task_id="klar_ios_active_users_aggregates_v4",
+        destination_table='active_users_aggregates_v4${{ macros.ds_format(macros.ds_add(ds, -1), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="klar_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{macros.ds_add(ds, -1)}}"],
+    )
+
     telemetry_derived__cohort_daily_statistics__v1 = bigquery_etl_query(
         task_id="telemetry_derived__cohort_daily_statistics__v1",
         destination_table="cohort_daily_statistics_v1",
@@ -912,27 +1245,71 @@
     )
 
     checks__fail_fenix_derived__active_users_aggregates__v3.set_upstream(
-        fenix_active_users_aggregates
+        fenix_active_users_aggregates_v3
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__fail_fenix_derived__active_users_aggregates__v4.set_upstream(
+        fenix_active_users_aggregates_v4
     )
 
     checks__fail_firefox_ios_derived__active_users_aggregates__v3.set_upstream(
-        firefox_ios_active_users_aggregates
+        firefox_ios_active_users_aggregates_v3
+    )
+
+    checks__fail_firefox_ios_derived__active_users_aggregates__v4.set_upstream(
+        firefox_ios_active_users_aggregates_v4
     )
 
     checks__fail_focus_android_derived__active_users_aggregates__v3.set_upstream(
-        focus_android_active_users_aggregates
+        focus_android_active_users_aggregates_v3
+    )
+
+    checks__fail_focus_android_derived__active_users_aggregates__v4.set_upstream(
+        focus_android_active_users_aggregates_v4
     )
 
     checks__fail_focus_ios_derived__active_users_aggregates__v3.set_upstream(
-        focus_ios_active_users_aggregates
+        focus_ios_active_users_aggregates_v3
+    )
+
+    checks__fail_focus_ios_derived__active_users_aggregates__v4.set_upstream(
+        focus_ios_active_users_aggregates_v4
     )
 
     checks__fail_klar_android_derived__active_users_aggregates__v3.set_upstream(
-        klar_android_active_users_aggregates
+        klar_android_active_users_aggregates_v3
+    )
+
+    checks__fail_klar_android_derived__active_users_aggregates__v4.set_upstream(
+        klar_android_active_users_aggregates_v4
     )
 
     checks__fail_klar_ios_derived__active_users_aggregates__v3.set_upstream(
-        klar_ios_active_users_aggregates
+        klar_ios_active_users_aggregates_v3
+    )
+
+    checks__fail_klar_ios_derived__active_users_aggregates__v4.set_upstream(
+        klar_ios_active_users_aggregates_v4
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
@@ -956,7 +1333,31 @@
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        fenix_active_users_aggregates
+        fenix_active_users_aggregates_v3
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+    )
+
+    checks__warn_fenix_derived__active_users_aggregates__v4.set_upstream(
+        fenix_active_users_aggregates_v4
     )
 
     checks__warn_firefox_desktop_derived__active_users_aggregates__v3.set_upstream(
@@ -964,126 +1365,254 @@
     )
 
     checks__warn_firefox_desktop_derived__active_users_aggregates__v3.set_upstream(
-        firefox_desktop_active_users_aggregates
+        firefox_desktop_active_users_aggregates_v3
+    )
+
+    checks__warn_firefox_desktop_derived__active_users_aggregates__v4.set_upstream(
+        wait_for_checks__fail_telemetry_derived__clients_last_seen__v2
+    )
+
+    checks__warn_firefox_desktop_derived__active_users_aggregates__v4.set_upstream(
+        firefox_desktop_active_users_aggregates_v4
     )
 
     checks__warn_firefox_ios_derived__active_users_aggregates__v3.set_upstream(
-        firefox_ios_active_users_aggregates
+        firefox_ios_active_users_aggregates_v3
+    )
+
+    checks__warn_firefox_ios_derived__active_users_aggregates__v4.set_upstream(
+        firefox_ios_active_users_aggregates_v4
     )
 
     checks__warn_focus_android_derived__active_users_aggregates__v3.set_upstream(
-        focus_android_active_users_aggregates
+        focus_android_active_users_aggregates_v3
+    )
+
+    checks__warn_focus_android_derived__active_users_aggregates__v4.set_upstream(
+        focus_android_active_users_aggregates_v4
     )
 
     checks__warn_focus_ios_derived__active_users_aggregates__v3.set_upstream(
-        focus_ios_active_users_aggregates
+        focus_ios_active_users_aggregates_v3
+    )
+
+    checks__warn_focus_ios_derived__active_users_aggregates__v4.set_upstream(
+        focus_ios_active_users_aggregates_v4
     )
 
     checks__warn_klar_android_derived__active_users_aggregates__v3.set_upstream(
-        klar_android_active_users_aggregates
+        klar_android_active_users_aggregates_v3
+    )
+
+    checks__warn_klar_android_derived__active_users_aggregates__v4.set_upstream(
+        klar_android_active_users_aggregates_v4
     )
 
     checks__warn_klar_ios_derived__active_users_aggregates__v3.set_upstream(
-        klar_ios_active_users_aggregates
+        klar_ios_active_users_aggregates_v3
+    )
+
+    checks__warn_klar_ios_derived__active_users_aggregates__v4.set_upstream(
+        klar_ios_active_users_aggregates_v4
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_fenix_derived__firefox_android_clients__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
     )
 
-    fenix_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v3.set_upstream(
         wait_for_fenix_derived__metrics_clients_last_seen__v1
     )
 
-    firefox_desktop_active_users_aggregates.set_upstream(
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_fenix_derived__firefox_android_clients__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+    )
+
+    fenix_active_users_aggregates_v4.set_upstream(
+        wait_for_fenix_derived__metrics_clients_last_seen__v1
+    )
+
+    firefox_desktop_active_users_aggregates_v3.set_upstream(
+        wait_for_checks__fail_telemetry_derived__clients_last_seen__v2
+    )
+
+    firefox_desktop_active_users_aggregates_v4.set_upstream(
         wait_for_checks__fail_telemetry_derived__clients_last_seen__v2
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_firefox_ios_derived__clients_activation__v1
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_firefox_ios_derived__firefox_ios_clients__v1
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_ios_fennec_derived__baseline_clients_last_seen__v1
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_ios_firefox_derived__baseline_clients_last_seen__v1
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_ios_firefoxbeta_derived__baseline_clients_last_seen__v1
     )
 
-    firefox_ios_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v3.set_upstream(
         wait_for_firefox_ios_derived__metrics_clients_last_seen__v1
     )
 
-    focus_android_active_users_aggregates.set_upstream(
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_firefox_ios_derived__clients_activation__v1
+    )
+
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_firefox_ios_derived__firefox_ios_clients__v1
+    )
+
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_ios_fennec_derived__baseline_clients_last_seen__v1
+    )
+
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_ios_firefox_derived__baseline_clients_last_seen__v1
+    )
+
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_ios_firefoxbeta_derived__baseline_clients_last_seen__v1
+    )
+
+    firefox_ios_active_users_aggregates_v4.set_upstream(
+        wait_for_firefox_ios_derived__metrics_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v3.set_upstream(
+        wait_for_checks__fail_org_mozilla_focus_beta_derived__baseline_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v3.set_upstream(
+        wait_for_checks__fail_org_mozilla_focus_derived__baseline_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v3.set_upstream(
+        wait_for_checks__fail_org_mozilla_focus_nightly_derived__baseline_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v3.set_upstream(
+        wait_for_focus_android_derived__metrics_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v3.set_upstream(
+        wait_for_telemetry_derived__core_clients_last_seen__v1
+    )
+
+    focus_android_active_users_aggregates_v4.set_upstream(
         wait_for_checks__fail_org_mozilla_focus_beta_derived__baseline_clients_last_seen__v1
     )
 
-    focus_android_active_users_aggregates.set_upstream(
+    focus_android_active_users_aggregates_v4.set_upstream(
         wait_for_checks__fail_org_mozilla_focus_derived__baseline_clients_last_seen__v1
     )
 
-    focus_android_active_users_aggregates.set_upstream(
+    focus_android_active_users_aggregates_v4.set_upstream(
         wait_for_checks__fail_org_mozilla_focus_nightly_derived__baseline_clients_last_seen__v1
     )
 
-    focus_android_active_users_aggregates.set_upstream(
+    focus_android_active_users_aggregates_v4.set_upstream(
         wait_for_focus_android_derived__metrics_clients_last_seen__v1
     )
 
-    focus_android_active_users_aggregates.set_upstream(
+    focus_android_active_users_aggregates_v4.set_upstream(
         wait_for_telemetry_derived__core_clients_last_seen__v1
     )
 
-    focus_ios_active_users_aggregates.set_upstream(
+    focus_ios_active_users_aggregates_v3.set_upstream(
+        wait_for_bigeye__org_mozilla_ios_focus_derived__baseline_clients_last_seen__v1
+    )
+
+    focus_ios_active_users_aggregates_v3.set_upstream(
+        wait_for_focus_ios_derived__metrics_clients_last_seen__v1
+    )
+
+    focus_ios_active_users_aggregates_v4.set_upstream(
         wait_for_bigeye__org_mozilla_ios_focus_derived__baseline_clients_last_seen__v1
     )
 
-    focus_ios_active_users_aggregates.set_upstream(
+    focus_ios_active_users_aggregates_v4.set_upstream(
         wait_for_focus_ios_derived__metrics_clients_last_seen__v1
     )
 
-    klar_android_active_users_aggregates.set_upstream(
+    klar_android_active_users_aggregates_v3.set_upstream(
         wait_for_checks__fail_org_mozilla_klar_derived__baseline_clients_last_seen__v1
     )
 
-    klar_android_active_users_aggregates.set_upstream(
+    klar_android_active_users_aggregates_v3.set_upstream(
         wait_for_klar_android_derived__metrics_clients_last_seen__v1
     )
 
-    klar_ios_active_users_aggregates.set_upstream(
+    klar_android_active_users_aggregates_v4.set_upstream(
+        wait_for_checks__fail_org_mozilla_klar_derived__baseline_clients_last_seen__v1
+    )
+
+    klar_android_active_users_aggregates_v4.set_upstream(
+        wait_for_klar_android_derived__metrics_clients_last_seen__v1
+    )
+
+    klar_ios_active_users_aggregates_v3.set_upstream(
+        wait_for_checks__fail_org_mozilla_ios_klar_derived__baseline_clients_last_seen__v1
+    )
+
+    klar_ios_active_users_aggregates_v3.set_upstream(
+        wait_for_klar_ios_derived__metrics_clients_last_seen__v1
+    )
+
+    klar_ios_active_users_aggregates_v4.set_upstream(
         wait_for_checks__fail_org_mozilla_ios_klar_derived__baseline_clients_last_seen__v1
     )
 
-    klar_ios_active_users_aggregates.set_upstream(
+    klar_ios_active_users_aggregates_v4.set_upstream(
         wait_for_klar_ios_derived__metrics_clients_last_seen__v1
     )
 
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_dynamic_dau.py /tmp/workspace/generated-sql/dags/bqetl_dynamic_dau.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_dynamic_dau.py	2024-11-11 17:11:26.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_dynamic_dau.py	2024-11-11 17:26:14.000000000 +0000
@@ -126,10 +126,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_firefox_desktop_active_users_aggregates = ExternalTaskSensor(
-        task_id="wait_for_firefox_desktop_active_users_aggregates",
+    wait_for_firefox_desktop_active_users_aggregates_v3 = ExternalTaskSensor(
+        task_id="wait_for_firefox_desktop_active_users_aggregates_v3",
         external_dag_id="bqetl_analytics_aggregations",
-        external_task_id="firefox_desktop_active_users_aggregates",
+        external_task_id="firefox_desktop_active_users_aggregates_v3",
         execution_delta=datetime.timedelta(seconds=35100),
         check_existence=True,
         mode="reschedule",
@@ -194,5 +194,5 @@
     )
 
     telemetry_derived__segmented_dau_28_day_rolling__v1.set_upstream(
-        wait_for_firefox_desktop_active_users_aggregates
+        wait_for_firefox_desktop_active_users_aggregates_v3
     )
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/focus_android_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/focus_ios_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/klar_android_derived: active_users_aggregates_v4
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/klar_ios_derived: active_users_aggregates_v4
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -67,7 +67,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -67,7 +67,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -67,7 +67,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:28.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -87,7 +87,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:28.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -67,7 +67,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2024-11-11 17:05:46.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2024-11-11 17:15:37.000000000 +0000
@@ -1,49 +1,49 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: source
+  mode: NULLABLE
+- name: source
   type: STRING
-- mode: NULLABLE
-  name: event_type
+  mode: NULLABLE
+- name: event_type
   type: STRING
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: subdivision1
+  mode: NULLABLE
+- name: subdivision1
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: event_count
+  mode: NULLABLE
+- name: event_count
   type: INTEGER
-- mode: NULLABLE
-  name: user_count
+  mode: NULLABLE
+- name: user_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2024-11-11 17:05:46.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2024-11-11 17:15:25.000000000 +0000
@@ -1,40 +1,40 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: impression_count
+  mode: NULLABLE
+- name: impression_count
   type: INTEGER
-- mode: NULLABLE
-  name: click_count
+  mode: NULLABLE
+- name: click_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2024-11-11 17:09:43.000000000 +0000
@@ -67,7 +67,7 @@
   LEFT JOIN
     UNNEST(event.extra) AS event_extra
   WHERE
-    DATE(submission_timestamp) >= "2024-11-09"
+    DATE(submission_timestamp) >= "2024-11-11"
   GROUP BY
     submission_date,
     window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/active_users_aggregates/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/active_users_aggregates/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/active_users_aggregates/schema.yaml	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/active_users_aggregates/schema.yaml	2024-11-11 17:15:14.000000000 +0000
@@ -2,81 +2,115 @@
 - name: segment
   type: STRING
   mode: NULLABLE
+  description: Classification of client_ids based on usage and active state.
 - name: attribution_medium
   type: STRING
   mode: NULLABLE
+  description: The utm_medium this install is attributed to. Reported by the install
+    referrer service, not Adjust.
 - name: attribution_source
   type: STRING
   mode: NULLABLE
+  description: The utm_term this install is attributed to. Reported by the install
+    referrer service, not Adjust.
 - name: attributed
   type: BOOLEAN
   mode: NULLABLE
+  description: True if the attribution source and medium are present.
 - name: city
   type: STRING
   mode: NULLABLE
+  description: City reported by the client.
 - name: country
   type: STRING
   mode: NULLABLE
+  description: Country reported by the client.
 - name: distribution_id
   type: STRING
   mode: NULLABLE
+  description: A string containing the distribution identifier. This was used to identify
+    installs from Mozilla Online, but now also identifies partnership deal distributions.
 - name: first_seen_year
   type: INTEGER
   mode: NULLABLE
+  description: Year extracted from the first_seen_date, that corresponds to the date
+    when the first ping was received.
 - name: is_default_browser
   type: BOOLEAN
   mode: NULLABLE
+  description: Whether the browser is set as the default browser on the client side.
 - name: locale
   type: STRING
   mode: NULLABLE
+  description: Locale reported by the client, which is a combination of language and
+    regional settings.
 - name: channel
   type: STRING
   mode: NULLABLE
+  description: Browser installation channel installed on the client.
 - name: os
   type: STRING
   mode: NULLABLE
+  description: Operating system reported by the client.
 - name: os_version
   type: STRING
   mode: NULLABLE
+  description: OS version reported by the client.
 - name: os_version_major
   type: INTEGER
   mode: NULLABLE
+  description: Major or first part of the OS version reported by the client.
 - name: os_version_minor
   type: INTEGER
   mode: NULLABLE
+  description: Minor or second part of the OS version reported by the client.
 - name: submission_date
   type: DATE
   mode: NULLABLE
+  description: Date when ping is received on the server side.
 - name: adjust_network
   type: STRING
   mode: NULLABLE
+  description: The source of a client installation.
 - name: install_source
   type: STRING
   mode: NULLABLE
+  description: The id of the browser distribution made available in installation sources.
 - name: daily_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who report a ping in a day.
 - name: weekly_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 7 days.
 - name: monthly_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 28 days.
 - name: dau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who reported a ping on the submission_date that qualify
+    as active.
 - name: wau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 7 days and qualify
+    as active.
 - name: mau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 28 days and qualify
+    as active.
 - name: app_name
   type: STRING
   mode: NULLABLE
+  description: Browser name.
 - name: app_version
   type: STRING
   mode: NULLABLE
+  description: Browser version installed on the client.
 - name: app_version_major
   type: NUMERIC
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2024-11-11 17:05:46.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2024-11-11 17:14:57.000000000 +0000
@@ -26,6 +26,9 @@
 - name: adjust_network
   type: STRING
   mode: NULLABLE
+- name: install_source
+  type: STRING
+  mode: NULLABLE
 - name: retained_week_2
   type: BOOLEAN
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2024-11-11 17:05:46.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2024-11-11 17:15:04.000000000 +0000
@@ -48,6 +48,10 @@
   description: 'The type of source of a client installation.
 
     '
+- name: install_source
+  type: STRING
+  mode: NULLABLE
+  description: null
 - name: new_profiles
   type: INTEGER
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml	2024-11-11 17:19:34.000000000 +0000
@@ -1,11 +1,11 @@
 fields:
 - name: normalized_app_id
-  type: STRING
   mode: NULLABLE
+  type: STRING
   description: App ID of the channel data was received from
 - name: normalized_channel
-  type: STRING
   mode: NULLABLE
+  type: STRING
   description: Normalized channel name
 - name: additional_properties
   type: STRING
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/metadata.yaml	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/metadata.yaml	2024-11-11 17:21:05.000000000 +0000
@@ -14,6 +14,10 @@
   The table is labeled as "change_controlled", which implies
   that changes require the approval of at least one owner.
 
+  The label "shredder mitigation" indicates that this table is set up for
+  managed backfill with shredder mitigation, as described in
+  https://mozilla.github.io/bigquery-etl/cookbooks/creating_a_derived_dataset/#initiating-the-backfill.
+
   Proposal:
   https://docs.google.com/document/d/1qvWO49Lr_Z_WErh3I3058A3B1YuiuURx19K3aTdmejM/edit?usp=sharing
 owners:
@@ -22,11 +26,12 @@
 labels:
   incremental: true
   change_controlled: true
+  shredder_mitigation: true
   dag: bqetl_analytics_aggregations
   owner1: lvargas
 scheduling:
   dag_name: bqetl_analytics_aggregations
-  task_name: fenix_active_users_aggregates
+  task_name: fenix_active_users_aggregates_v3
   date_partition_offset: -1
 bigquery:
   time_partitioning:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/query.sql	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/query.sql	2024-11-11 17:22:33.000000000 +0000
@@ -180,4 +180,23 @@
 FROM
   todays_metrics
 GROUP BY
-  ALL
+  segment,
+  app_version,
+  attribution_medium,
+  attribution_source,
+  attributed,
+  city,
+  country,
+  distribution_id,
+  first_seen_year,
+  is_default_browser,
+  locale,
+  app_name,
+  channel,
+  os,
+  os_version,
+  os_version_major,
+  os_version_minor,
+  submission_date,
+  adjust_network,
+  install_source
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/schema.yaml	2024-11-11 17:06:27.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v3/schema.yaml	2024-11-11 17:14:40.000000000 +0000
@@ -2,84 +2,112 @@
 - name: segment
   type: STRING
   mode: NULLABLE
-- name: app_version
-  type: STRING
-  mode: NULLABLE
-- name: attribution_medium
+  description: Classification of client_ids based on usage and active state.
+- name: app_name
   type: STRING
   mode: NULLABLE
-- name: attribution_source
+  description: Browser name.
+- name: app_version
   type: STRING
   mode: NULLABLE
-- name: attributed
-  type: BOOLEAN
-  mode: NULLABLE
-- name: city
+  description: Browser version installed on the client.
+- name: channel
   type: STRING
   mode: NULLABLE
+  description: Browser installation channel installed on the client.
 - name: country
   type: STRING
   mode: NULLABLE
-- name: distribution_id
+  description: Country reported by the client.
+- name: city
   type: STRING
   mode: NULLABLE
-- name: first_seen_year
-  type: INTEGER
-  mode: NULLABLE
-- name: is_default_browser
-  type: BOOLEAN
-  mode: NULLABLE
+  description: City reported by the client.
 - name: locale
   type: STRING
   mode: NULLABLE
-- name: app_name
-  type: STRING
-  mode: NULLABLE
-- name: channel
-  type: STRING
+  description: Locale reported by the client, which is a combination of language and regional settings.
+- name: first_seen_year
+  type: INTEGER
   mode: NULLABLE
+  description: Year extracted from the first_seen_date, that corresponds to the date when the first ping was received.
 - name: os
   type: STRING
   mode: NULLABLE
+  description: Operating system reported by the client.
 - name: os_version
   type: STRING
   mode: NULLABLE
+  description: OS version reported by the client.
 - name: os_version_major
   type: INTEGER
   mode: NULLABLE
+  description: Major or first part of the OS version reported by the client.
 - name: os_version_minor
   type: INTEGER
   mode: NULLABLE
+  description: Minor or second part of the OS version reported by the client.
 - name: submission_date
   type: DATE
   mode: NULLABLE
+  description: Date when ping is received on the server side.
+- name: is_default_browser
+  type: BOOLEAN
+  mode: NULLABLE
+  description: Whether the browser is set as the default browser on the client side.
+- name: distribution_id
+  type: STRING
+  mode: NULLABLE
+  description: A string containing the distribution identifier. This was used to identify installs from Mozilla Online, but now also identifies partnership deal distributions.
+- name: attribution_source
+  type: STRING
+  mode: NULLABLE
+  description: The utm_term this install is attributed to. Reported by the install referrer service, not Adjust.
+- name: attribution_medium
+  type: STRING
+  mode: NULLABLE
+  description: The utm_medium this install is attributed to. Reported by the install referrer service, not Adjust.
+- name: attributed
+  type: BOOLEAN
+  mode: NULLABLE
+  description: True if the attribution source and medium are present.
 - name: adjust_network
   type: STRING
   mode: NULLABLE
+  description: The source of a client installation.
 - name: install_source
   type: STRING
   mode: NULLABLE
+  description: The id of the browser distribution made available in installation sources.
 - name: daily_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who report a ping in a day.
 - name: weekly_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 7 days.
 - name: monthly_users
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 28 days.
 - name: dau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who reported a ping on the submission_date that qualify as active.
 - name: wau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 7 days and qualify as active.
 - name: mau
   type: INTEGER
   mode: NULLABLE
+  description: Count of users who have reported a ping over the last 28 days and qualify as active.
 - name: uri_count
   type: INTEGER
   mode: NULLABLE
+  description: Count of uri.
 - name: active_hours
   type: FLOAT64
   mode: NULLABLE
+  description: Count of active hours.
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v4/checks.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v4/checks.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v4/checks.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/active_users_aggregates_v4/checks.sql	2024-11-11 17:22:33.000000000 +0000
@@ -0,0 +1,152 @@
+
+#warn
+WITH daily_users_sum AS (
+  SELECT
+    SUM(daily_users),
+  FROM
+    `{{ project_id }}.{{ dataset_id }}.{{ table_name }}`
+  WHERE
+    submission_date = @submission_date
+),
+distinct_client_count_nightly_base AS (
+  SELECT
+    client_info.client_id,
+    "nightly" AS channel,
+  FROM
+    `moz-fx-data-shared-prod.org_mozilla_fenix_live.baseline_v1`
+  WHERE
+    DATE(sub

⚠️ Only part of the diff is displayed.

Link to full diff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants