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

mobile internet outages - rough draft #5975

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft

Conversation

lelilia
Copy link
Contributor

@lelilia lelilia commented Jul 25, 2024

hack week first draft for mobile

┆Issue is synchronized with this Jira Task

@lelilia lelilia self-assigned this Jul 25, 2024
-- Firefox for Android
fenix_baseline as (
select
metadata.geo.country,
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we just use your udf here and have ?? if values are missing. This way we know that downstream we only need to deal with ??

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thought about it, but since we are not joining we don't really need it though?

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot
Copy link

Integration report for "feat: add mobile_global_outages_v1 checks, metadata and scheam"

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_generated_funnels.py /tmp/workspace/generated-sql/dags/bqetl_generated_funnels.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_generated_funnels.py	2024-07-26 15:00:35.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_generated_funnels.py	2024-07-26 15:18:14.000000000 +0000
@@ -276,6 +276,21 @@
         )
     )
 
+    monitor_frontend_derived__monitor_dashboard_user_journey_funnels__v1 = bigquery_etl_query(
+        task_id="monitor_frontend_derived__monitor_dashboard_user_journey_funnels__v1",
+        destination_table="monitor_dashboard_user_journey_funnels_v1",
+        dataset_id="monitor_frontend_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="ksiegler@mozilla.org",
+        email=[
+            "ascholtz@mozilla.com",
+            "ksiegler@mozilla.org",
+            "telemetry-alerts@mozilla.com",
+        ],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
     accounts_frontend_derived__email_first_reg_login_funnels__v1.set_upstream(
         wait_for_copy_deduplicate_all
     )
@@ -325,3 +340,7 @@
     firefox_accounts_derived__registration_funnels_legacy_events__v1.set_upstream(
         wait_for_firefox_accounts_derived__fxa_stdout_events__v1
     )
+
+    monitor_frontend_derived__monitor_dashboard_user_journey_funnels__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_internet_outages.py /tmp/workspace/generated-sql/dags/bqetl_internet_outages.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_internet_outages.py	2024-07-26 15:00:35.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_internet_outages.py	2024-07-26 15:18:10.000000000 +0000
@@ -88,6 +88,19 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
+    checks__fail_internet_outages__global_outages__v1 = bigquery_dq_check(
+        task_id="checks__fail_internet_outages__global_outages__v1",
+        source_table="global_outages_v1",
+        dataset_id="internet_outages",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="aplacitelli@mozilla.com",
+        email=["aplacitelli@mozilla.com"],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{ds}}"],
+        retries=0,
+    )
+
     checks__warn_internet_outages__global_outages__v1 = bigquery_dq_check(
         task_id="checks__warn_internet_outages__global_outages__v1",
         source_table="global_outages_v1",
@@ -101,9 +114,9 @@
         retries=0,
     )
 
-    checks__warn_internet_outages__global_outages__v2 = bigquery_dq_check(
-        task_id="checks__warn_internet_outages__global_outages__v2",
-        source_table="global_outages_v2",
+    checks__warn_internet_outages__mobile_global_outages__v1 = bigquery_dq_check(
+        task_id="checks__warn_internet_outages__mobile_global_outages__v1",
+        source_table="mobile_global_outages_v1",
         dataset_id="internet_outages",
         project_id="moz-fx-data-shared-prod",
         is_dq_check_fail=False,
@@ -125,9 +138,9 @@
         depends_on_past=False,
     )
 
-    internet_outages__global_outages__v2 = bigquery_etl_query(
-        task_id="internet_outages__global_outages__v2",
-        destination_table="global_outages_v2",
+    internet_outages__mobile_global_outages__v1 = bigquery_etl_query(
+        task_id="internet_outages__mobile_global_outages__v1",
+        destination_table="mobile_global_outages_v1",
         dataset_id="internet_outages",
         project_id="moz-fx-data-shared-prod",
         owner="aplacitelli@mozilla.com",
@@ -136,12 +149,16 @@
         depends_on_past=False,
     )
 
+    checks__fail_internet_outages__global_outages__v1.set_upstream(
+        internet_outages__global_outages__v1
+    )
+
     checks__warn_internet_outages__global_outages__v1.set_upstream(
         internet_outages__global_outages__v1
     )
 
-    checks__warn_internet_outages__global_outages__v2.set_upstream(
-        internet_outages__global_outages__v2
+    checks__warn_internet_outages__mobile_global_outages__v1.set_upstream(
+        internet_outages__mobile_global_outages__v1
     )
 
     internet_outages__global_outages__v1.set_upstream(wait_for_copy_deduplicate_all)
@@ -154,12 +171,6 @@
         wait_for_telemetry_derived__clients_daily_joined__v1
     )
 
-    internet_outages__global_outages__v2.set_upstream(wait_for_copy_deduplicate_all)
-
-    internet_outages__global_outages__v2.set_upstream(
-        wait_for_copy_deduplicate_main_ping
-    )
-
-    internet_outages__global_outages__v2.set_upstream(
-        wait_for_telemetry_derived__clients_daily_joined__v1
+    internet_outages__mobile_global_outages__v1.set_upstream(
+        wait_for_copy_deduplicate_all
     )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_mobile_search.py /tmp/workspace/generated-sql/dags/bqetl_mobile_search.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_mobile_search.py	2024-07-26 15:00:35.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_mobile_search.py	2024-07-26 15:18:11.000000000 +0000
@@ -158,23 +158,6 @@
             search_derived__mobile_search_clients_daily__v1
         )
 
-    search_derived__mobile_search_clients_daily__v2 = bigquery_etl_query(
-        task_id="search_derived__mobile_search_clients_daily__v2",
-        destination_table="mobile_search_clients_daily_v2",
-        dataset_id="search_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cmorales@mozilla.com",
-        email=[
-            "akomar@mozilla.com",
-            "akommasani@mozilla.com",
-            "anicholson@mozilla.com",
-            "cmorales@mozilla.com",
-            "telemetry-alerts@mozilla.com",
-        ],
-        date_partition_parameter="submission_date",
-        depends_on_past=False,
-    )
-
     search_derived__mobile_search_clients_last_seen__v1 = bigquery_etl_query(
         task_id="search_derived__mobile_search_clients_last_seen__v1",
         destination_table="mobile_search_clients_last_seen_v1",
@@ -199,10 +182,6 @@
         wait_for_copy_deduplicate_all
     )
 
-    search_derived__mobile_search_clients_daily__v2.set_upstream(
-        wait_for_copy_deduplicate_all
-    )
-
     search_derived__mobile_search_clients_last_seen__v1.set_upstream(
         search_derived__mobile_search_clients_daily__v1
     )
Only in /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl: firefox_desktop_glam_nightly__histogram_percentiles_v1
Only in /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl: firefox_desktop_glam_nightly__scalar_percentiles_v1
Only in /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl: org_mozilla_fenix_glam_nightly__histogram_percentiles_v1
Only in /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl: org_mozilla_fenix_glam_nightly__scalar_percentiles_v1
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages: global_outages
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages: global_outages_v2
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/internet_outages: mobile_global_outages_v1
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/monitoring_derived: outerbounds_cost_per_flow_run_v1
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/monitoring_derived: outerbounds_cost_per_flow_v1
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/search_derived: mobile_search_clients_daily_v2
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/telemetry_derived: histogram_percentiles_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/telemetry_derived: scalar_percentiles_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__extract_probe_counts_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__extract_probe_counts_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__extract_probe_counts_v1/query.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__extract_probe_counts_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -19,6 +19,9 @@
   client_agg_type,
   MAX(total_users) AS total_users,
   MAX(IF(agg_type = "histogram", mozfun.glam.histogram_cast_json(aggregates), NULL)) AS histogram,
+  MAX(
+    IF(agg_type = "percentiles", mozfun.glam.histogram_cast_json(aggregates), NULL)
+  ) AS percentiles,
 FROM
   `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__view_probe_counts_v1`
 WHERE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/metadata.yaml	2024-07-26 15:12:11.000000000 +0000
@@ -0,0 +1,11 @@
+friendly_name: |-
+  Glam Etl - Firefox Desktop Glam Nightly - Histogram Percentiles
+description: |-
+  [DESCRIPTION_MISSING]
+owners:
+- efilho@mozilla.com
+
+# Generated by bigquery_etl.dependency
+references:
+  query.sql:
+  - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_probe_counts_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__histogram_percentiles_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,14 @@
+-- query for firefox_desktop_glam_nightly__histogram_percentiles_v1;
+SELECT
+  * EXCEPT (aggregates) REPLACE('percentiles' AS agg_type),
+  ARRAY<STRUCT<key STRING, value FLOAT64>>[
+    ('5', mozfun.glam.percentile(5, aggregates, metric_type)),
+    ('25', mozfun.glam.percentile(25, aggregates, metric_type)),
+    ('50', mozfun.glam.percentile(50, aggregates, metric_type)),
+    ('75', mozfun.glam.percentile(75, aggregates, metric_type)),
+    ('95', mozfun.glam.percentile(95, aggregates, metric_type)),
+    ('99', mozfun.glam.percentile(99, aggregates, metric_type)),
+    ('99.9', mozfun.glam.percentile(99.9, aggregates, metric_type))
+  ] AS aggregates
+FROM
+  `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_probe_counts_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/metadata.yaml	2024-07-26 15:12:11.000000000 +0000
@@ -0,0 +1,11 @@
+friendly_name: |-
+  Glam Etl - Firefox Desktop Glam Nightly - Scalar Percentiles
+description: |-
+  [DESCRIPTION_MISSING]
+owners:
+- efilho@mozilla.com
+
+# Generated by bigquery_etl.dependency
+references:
+  query.sql:
+  - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__clients_scalar_aggregates_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__scalar_percentiles_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,78 @@
+-- query for firefox_desktop_glam_nightly__scalar_percentiles_v1;
+WITH flat_clients_scalar_aggregates AS (
+  SELECT
+    * EXCEPT (scalar_aggregates)
+  FROM
+    `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__clients_scalar_aggregates_v1`
+  CROSS JOIN
+    UNNEST(scalar_aggregates)
+),
+-- Cross join with the attribute combinations to reduce the query complexity
+-- with respect to the number of operations. A table with n rows cross joined
+-- with a combination of m attributes will generate a new table with n*m rows.
+-- The glob ("*") symbol can be understood as selecting all of values belonging
+-- to that group.
+static_combos AS (
+  SELECT
+    combos.*
+  FROM
+    UNNEST(
+      ARRAY<STRUCT<ping_type STRING, os STRING, app_build_id STRING>>[
+        (NULL, NULL, NULL),
+        (NULL, NULL, "*"),
+        (NULL, "*", NULL),
+        ("*", NULL, NULL),
+        (NULL, "*", "*"),
+        ("*", NULL, "*"),
+        ("*", "*", NULL),
+        ("*", "*", "*")
+      ]
+    ) AS combos
+),
+all_combos AS (
+  SELECT
+    table.* EXCEPT (ping_type, os, app_build_id),
+    COALESCE(combo.ping_type, table.ping_type) AS ping_type,
+    COALESCE(combo.os, table.os) AS os,
+    COALESCE(combo.app_build_id, table.app_build_id) AS app_build_id
+  FROM
+    flat_clients_scalar_aggregates table
+  CROSS JOIN
+    static_combos combo
+),
+percentiles AS (
+  SELECT
+    ping_type,
+    os,
+    app_version,
+    app_build_id,
+    channel,
+    metric,
+    metric_type,
+    key,
+    agg_type AS client_agg_type,
+    'percentiles' AS agg_type,
+    COUNT(DISTINCT(client_id)) AS total_users,
+    APPROX_QUANTILES(value, 1000) AS aggregates
+  FROM
+    all_combos
+  GROUP BY
+    ping_type,
+    os,
+    app_version,
+    app_build_id,
+    channel,
+    metric,
+    metric_type,
+    key,
+    client_agg_type
+)
+SELECT
+  * REPLACE (
+    mozfun.glam.map_from_array_offsets_precise(
+      [5.0, 25.0, 50.0, 75.0, 95.0, 99.0, 99.9],
+      aggregates
+    ) AS aggregates
+  )
+FROM
+  percentiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/metadata.yaml	2024-07-26 14:54:54.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/metadata.yaml	2024-07-26 15:12:11.000000000 +0000
@@ -2,5 +2,7 @@
 # Generated by bigquery_etl.dependency
 references:
   view.sql:
+  - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_percentiles_v1
   - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_probe_counts_v1
+  - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__scalar_percentiles_v1
   - glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__scalar_probe_counts_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/view.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/view.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/view.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/firefox_desktop_glam_nightly__view_probe_counts_v1/view.sql	2024-07-26 14:54:56.000000000 +0000
@@ -12,6 +12,16 @@
     *
   FROM
     `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_probe_counts_v1`
+  UNION ALL
+  SELECT
+    *
+  FROM
+    `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__scalar_percentiles_v1`
+  UNION ALL
+  SELECT
+    *
+  FROM
+    `glam-fenix-dev.glam_etl.firefox_desktop_glam_nightly__histogram_percentiles_v1`
 )
 SELECT
   *
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/query.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -18,7 +18,10 @@
   SUBSTR(REPLACE(key, r"\x00", ""), 0, 200) AS metric_key,
   client_agg_type,
   MAX(total_users) AS total_users,
-  MAX(IF(agg_type = "histogram", mozfun.glam.histogram_cast_json(aggregates), NULL)) AS histogram
+  MAX(IF(agg_type = "histogram", mozfun.glam.histogram_cast_json(aggregates), NULL)) AS histogram,
+  MAX(
+    IF(agg_type = "percentiles", mozfun.glam.histogram_cast_json(aggregates), NULL)
+  ) AS percentiles,
 FROM
   `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__view_probe_counts_v1`
 WHERE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/schema.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/schema.yaml	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__extract_probe_counts_v1/schema.yaml	2024-07-26 14:54:56.000000000 +0000
@@ -35,3 +35,6 @@
 - mode: NULLABLE
   name: histogram
   type: STRING
+- mode: NULLABLE
+  name: percentiles
+  type: STRING
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/metadata.yaml	2024-07-26 15:12:12.000000000 +0000
@@ -0,0 +1,11 @@
+friendly_name: |-
+  Glam Etl - Org Mozilla Fenix Glam Nightly - Histogram Percentiles
+description: |-
+  [DESCRIPTION_MISSING]
+owners:
+- efilho@mozilla.com
+
+# Generated by bigquery_etl.dependency
+references:
+  query.sql:
+  - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_probe_counts_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,12 @@
+-- query for org_mozilla_fenix_glam_nightly__histogram_percentiles_v1;
+SELECT
+  * EXCEPT (aggregates) REPLACE('percentiles' AS agg_type),
+  ARRAY<STRUCT<key STRING, value FLOAT64>>[
+    ('5', mozfun.glam.percentile(5, aggregates, metric_type)),
+    ('25', mozfun.glam.percentile(25, aggregates, metric_type)),
+    ('50', mozfun.glam.percentile(50, aggregates, metric_type)),
+    ('75', mozfun.glam.percentile(75, aggregates, metric_type)),
+    ('95', mozfun.glam.percentile(95, aggregates, metric_type))
+  ] AS aggregates
+FROM
+  `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_probe_counts_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/schema.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__histogram_percentiles_v1/schema.yaml	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,44 @@
+fields:
+- mode: NULLABLE
+  name: ping_type
+  type: STRING
+- mode: NULLABLE
+  name: os
+  type: STRING
+- mode: NULLABLE
+  name: app_version
+  type: INTEGER
+- mode: NULLABLE
+  name: app_build_id
+  type: STRING
+- mode: NULLABLE
+  name: channel
+  type: STRING
+- mode: NULLABLE
+  name: metric
+  type: STRING
+- mode: NULLABLE
+  name: metric_type
+  type: STRING
+- mode: NULLABLE
+  name: key
+  type: STRING
+- mode: NULLABLE
+  name: client_agg_type
+  type: STRING
+- mode: NULLABLE
+  name: agg_type
+  type: STRING
+- mode: NULLABLE
+  name: total_users
+  type: INTEGER
+- fields:
+  - mode: NULLABLE
+    name: key
+    type: STRING
+  - mode: NULLABLE
+    name: value
+    type: FLOAT
+  mode: REPEATED
+  name: aggregates
+  type: RECORD
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/metadata.yaml	2024-07-26 15:12:12.000000000 +0000
@@ -0,0 +1,11 @@
+friendly_name: |-
+  Glam Etl - Org Mozilla Fenix Glam Nightly - Scalar Percentiles
+description: |-
+  [DESCRIPTION_MISSING]
+owners:
+- efilho@mozilla.com
+
+# Generated by bigquery_etl.dependency
+references:
+  query.sql:
+  - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__clients_scalar_aggregates_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/query.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/query.sql	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,78 @@
+-- query for org_mozilla_fenix_glam_nightly__scalar_percentiles_v1;
+WITH flat_clients_scalar_aggregates AS (
+  SELECT
+    * EXCEPT (scalar_aggregates)
+  FROM
+    `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__clients_scalar_aggregates_v1`
+  CROSS JOIN
+    UNNEST(scalar_aggregates)
+),
+-- Cross join with the attribute combinations to reduce the query complexity
+-- with respect to the number of operations. A table with n rows cross joined
+-- with a combination of m attributes will generate a new table with n*m rows.
+-- The glob ("*") symbol can be understood as selecting all of values belonging
+-- to that group.
+static_combos AS (
+  SELECT
+    combos.*
+  FROM
+    UNNEST(
+      ARRAY<STRUCT<ping_type STRING, os STRING, app_build_id STRING>>[
+        (NULL, NULL, NULL),
+        (NULL, NULL, "*"),
+        (NULL, "*", NULL),
+        ("*", NULL, NULL),
+        (NULL, "*", "*"),
+        ("*", NULL, "*"),
+        ("*", "*", NULL),
+        ("*", "*", "*")
+      ]
+    ) AS combos
+),
+all_combos AS (
+  SELECT
+    table.* EXCEPT (ping_type, os, app_build_id),
+    COALESCE(combo.ping_type, table.ping_type) AS ping_type,
+    COALESCE(combo.os, table.os) AS os,
+    COALESCE(combo.app_build_id, table.app_build_id) AS app_build_id
+  FROM
+    flat_clients_scalar_aggregates table
+  CROSS JOIN
+    static_combos combo
+),
+percentiles AS (
+  SELECT
+    ping_type,
+    os,
+    app_version,
+    app_build_id,
+    channel,
+    metric,
+    metric_type,
+    key,
+    agg_type AS client_agg_type,
+    'percentiles' AS agg_type,
+    APPROX_COUNT_DISTINCT(client_id) AS total_users,
+    APPROX_QUANTILES(value, 1000) AS aggregates
+  FROM
+    all_combos
+  GROUP BY
+    ping_type,
+    os,
+    app_version,
+    app_build_id,
+    channel,
+    metric,
+    metric_type,
+    key,
+    client_agg_type
+)
+SELECT
+  * REPLACE (
+    mozfun.glam.map_from_array_offsets_precise(
+      [0.1, 1.0, 5.0, 25.0, 50.0, 75.0, 95.0, 99.0, 99.9],
+      aggregates
+    ) AS aggregates
+  )
+FROM
+  percentiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/schema.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__scalar_percentiles_v1/schema.yaml	2024-07-26 14:54:56.000000000 +0000
@@ -0,0 +1,44 @@
+fields:
+- mode: NULLABLE
+  name: ping_type
+  type: STRING
+- mode: NULLABLE
+  name: os
+  type: STRING
+- mode: NULLABLE
+  name: app_version
+  type: INTEGER
+- mode: NULLABLE
+  name: app_build_id
+  type: STRING
+- mode: NULLABLE
+  name: channel
+  type: STRING
+- mode: NULLABLE
+  name: metric
+  type: STRING
+- mode: NULLABLE
+  name: metric_type
+  type: STRING
+- mode: NULLABLE
+  name: key
+  type: STRING
+- mode: NULLABLE
+  name: client_agg_type
+  type: STRING
+- mode: NULLABLE
+  name: agg_type
+  type: STRING
+- mode: NULLABLE
+  name: total_users
+  type: INTEGER
+- fields:
+  - mode: NULLABLE
+    name: key
+    type: STRING
+  - mode: NULLABLE
+    name: value
+    type: FLOAT
+  mode: REPEATED
+  name: aggregates
+  type: RECORD
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/metadata.yaml /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/metadata.yaml	2024-07-26 14:54:54.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/metadata.yaml	2024-07-26 15:12:13.000000000 +0000
@@ -2,5 +2,7 @@
 # Generated by bigquery_etl.dependency
 references:
   view.sql:
+  - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_percentiles_v1
   - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_probe_counts_v1
+  - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__scalar_percentiles_v1
   - glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__scalar_probe_counts_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/view.sql /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/view.sql
--- /tmp/workspace/main-generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/view.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/glam-fenix-dev/glam_etl/org_mozilla_fenix_glam_nightly__view_probe_counts_v1/view.sql	2024-07-26 14:54:56.000000000 +0000
@@ -12,6 +12,16 @@
     *
   FROM
     `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_probe_counts_v1`
+  UNION ALL
+  SELECT
+    *
+  FROM
+    `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__scalar_percentiles_v1`
+  UNION ALL
+  SELECT
+    *
+  FROM
+    `glam-fenix-dev.glam_etl.org_mozilla_fenix_glam_nightly__histogram_percentiles_v1`
 )
 SELECT
   *
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/mozfun/glam/histogram_cast_struct/udf.sql /tmp/workspace/generated-sql/sql/mozfun/glam/histogram_cast_struct/udf.sql
--- /tmp/workspace/main-generated-sql/sql/mozfun/glam/histogram_cast_struct/udf.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/mozfun/glam/histogram_cast_struct/udf.sql	2024-07-26 14:54:57.000000000 +0000
@@ -13,7 +13,7 @@
   const json_dict = JSON.parse(json_str);
   const entries = Object.entries(json_dict).map(
       (r)=>Object.fromEntries(
-        [["KEY", r[0]],["value", parseFloat(r[1])]]
+        [["KEY", parseFloat(r[0])],["value", parseFloat(r[1])]]
       )
   );
   return entries;
@@ -28,8 +28,4 @@
     ARRAY<STRUCT<key STRING, value FLOAT64>>[("0", 0.1111), ("1", 0.6667), ("2", 0), ("10", 100)],
     glam.histogram_cast_struct('{"0":0.1111,"1":0.6667,"2":0,"10":100}')
   ),
-  assert.array_empty(glam.histogram_cast_struct('{}')),
-  assert.array_equals(
-    ARRAY<STRUCT<key STRING, value FLOAT64>>[("always", 0.5), ("never", 0.5)],
-    glam.histogram_cast_struct('{"always":0.5,"never":0.5}')
-  )
+  assert.array_empty(glam.histogram_cast_struct('{}'))
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/mozfun/norm/windows_version_info/udf.sql /tmp/workspace/generated-sql/sql/mozfun/norm/windows_version_info/udf.sql
--- /tmp/workspace/main-generated-sql/sql/mozfun/norm/windows_version_info/udf.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/mozfun/norm/windows_version_info/udf.sql	2024-07-26 14:54:57.000000000 +0000
@@ -33,9 +33,6 @@
     WHEN os_version = '10.0'
       AND windows_build_number < 22000
       THEN 'Windows 10'
-    WHEN os_version = '10.0'
-      AND windows_build_number IS NULL
-      THEN 'Windows 10 or 11'
     ELSE NULL
   END
 );
@@ -50,6 +47,6 @@
   assert.equals('Windows 7', norm.windows_version_info('Windows_NT', '6.1', 7601)),
   assert.equals('Windows 10', norm.windows_version_info('Windows_NT', '10.0', 19043)),
   assert.equals('Windows 11', norm.windows_version_info('Windows_NT', '10.0', 22623)),
-  assert.equals('Windows 10 or 11', norm.windows_version_info('Windows_NT', '10.0', NULL)),
   assert.null(norm.windows_version_info('Darwin', '11.4.2', NULL)),
-  assert.null(norm.windows_version_info('Windows_NT', '7.7', 19043))
+  assert.null(norm.windows_version_info('Windows_NT', '7.7', 19043)),
+  assert.null(norm.windows_version_info('Windows_NT', '10.0', NULL))
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_beta_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_beta_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_beta_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_beta_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -43,17 +43,17 @@
       S.metric_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.total_sample,
       S.non_norm_histogram,
-      NULL
+      S.non_norm_percentiles
     )
   WHEN MATCHED
 THEN
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.total_sample = S.total_sample,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL
+    T.non_norm_percentiles = S.non_norm_percentiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_nightly_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_nightly_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_nightly_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_nightly_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -48,17 +48,17 @@
       S.metric_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.total_sample,
       S.non_norm_histogram,
-      NULL
+      S.non_norm_percentiles
     )
   WHEN MATCHED
 THEN
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.total_sample = S.total_sample,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL
+    T.non_norm_percentiles = S.non_norm_percentiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_release_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_release_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_release_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_desktop_release_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -48,17 +48,17 @@
       S.metric_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.total_sample,
       S.non_norm_histogram,
-      NULL
+      S.non_norm_percentiles
     )
   WHEN MATCHED
 THEN
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.total_sample = S.total_sample,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL
+    T.non_norm_percentiles = S.non_norm_percentiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_beta_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_beta_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_beta_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_beta_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_nightly_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_nightly_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_nightly_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_nightly_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_release_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_release_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_release_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fenix_release_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_beta_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_beta_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_beta_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_beta_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_nightly_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_nightly_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_nightly_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_nightly_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_release_aggregates_v1/script.sql /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_release_aggregates_v1/script.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_release_aggregates_v1/script.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-glam-prod-fca7/glam_etl/glam_fog_release_aggregates_v1/script.sql	2024-07-26 14:54:57.000000000 +0000
@@ -50,9 +50,9 @@
       S.client_agg_type,
       S.total_users,
       S.histogram,
-      NULL,
+      S.percentiles,
       S.non_norm_histogram,
-      NULL,
+      S.non_norm_percentiles,
       S.total_sample
     )
   WHEN MATCHED
@@ -60,7 +60,7 @@
   UPDATE
     SET T.total_users = S.total_users,
     T.histogram = S.histogram,
-    T.percentiles = NULL,
+    T.percentiles = S.percentiles,
     T.non_norm_histogram = S.non_norm_histogram,
-    T.non_norm_percentiles = NULL,
+    T.non_norm_percentiles = S.non_norm_percentiles,
     T.total_sample = S.total_sample
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-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2024-07-26 15:03:02.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-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2024-07-26 15:03:02.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/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-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2024-07-26 15:04:13.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-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2024-07-26 15:04:14.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/use_counters/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/use_counters/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/use_counters/schema.yaml	2024-07-26 14:54:55.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/use_counters/schema.yaml	2024-07-26 15:06:15.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/focus_android/use_counters/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/focus_android/use_counters/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/focus_android/use_counters/schema.yaml	2024-07-26 14:54:55.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/focus_android/use_counters/schema.yaml	2024-07-26 15:12:08.000000000 +0000
@@ -1,11 +1,11 @@
 fields:
 - name: normalized_app_id
-  mode: NULLABLE
   type: STRING
+  mode: NULLABLE
   description: App ID of the channel data was received from
 - name: normalized_channel
-  mode: NULLABLE
   type: STRING
+  mode: NULLABLE
   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/google_search_console/search_impressions_by_page/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_page/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_page/schema.yaml	2024-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_page/schema.yaml	2024-07-26 15:03:15.000000000 +0000
@@ -6,9 +6,10 @@
 - name: site_url
   type: STRING
   mode: NULLABLE
-  description: |-
-    For domain properties, this will be `sc-domain:` followed by the domain name.
-    For URL-prefix properties, it will be the full URL of the property definition.
+  description: 'For domain properties, this will be `sc-domain:` followed by the domain
+    name.
+
+    For URL-prefix properties, it will be the full URL of the property definition.'
 - name: site_domain_name
   type: STRING
   mode: NULLABLE
@@ -16,103 +17,110 @@
 - name: page_url
   type: STRING
   mode: NULLABLE
-  description: |-
-    The final page URL linked by a search result after any skip redirects.
-    This will be null for anonymized Discover impressions.
+  description: 'The final page URL linked by a search result after any skip redirects.
+
+    This will be null for anonymized Discover impressions.'
 - name: page_domain_name
   type: STRING
   mode: NULLABLE
-  description: |-
-    Domain name of the page URL.
-    This will be null for anonymized Discover impressions.
+  description: 'Domain name of the page URL.
+
+    This will be null for anonymized Discover impressions.'
 - name: page_path
   type: STRING
   mode: NULLABLE
-  description: |-
-    The path part of the page URL.
-    This will be null for anonymized Discover impressions.
+  description: 'The path part of the page URL.
+
+    This will be null for anonymized Discover impressions.'
 - name: localized_site_code
   type: STRING
   mode: NULLABLE
-  description: |-
-    Localized site code such as `en-US` or `de` found in the first segment of the page URL path (if any).
-    This will be null for anonymized Discover impressions.
+  description: 'Localized site code such as `en-US` or `de` found in the first segment
+    of the page URL path (if any).
+
+    This will be null for anonymized Discover impressions.'
 - name: localized_site
   type: STRING
   mode: NULLABLE
-  description: |-
-    Description of the localized site language and/or country based on `localized_site_code` (if any).
-    This will be null for anonymized Discover impressions.
+  description: 'Description of the localized site language and/or country based on
+    `localized_site_code` (if any).
+
+    This will be null for anonymized Discover impressions.'
 - name: localized_site_language_code
   type: STRING
   mode: NULLABLE
-  description: |-
-    Localized site language code in ISO-639-alpha-2 format found in the first segment of the page URL path (if any).
-    This will be null for anonymized Discover impressions.
+  description: 'Localized site language code in ISO-639-alpha-2 format found in the
+    first segment of the page URL path (if any).
+
+    This will be null for anonymized Discover impressions.'
 - name: localized_site_language
   type: STRING
   mode: NULLABLE
-  description: |-
-    Localized site language based on `localized_site_language_code` (if any).
-    This will be null for anonymized Discover impressions.
+  description: 'Localized site language based on `localized_site_language_code` (if
+    any).
+
+    This will be null for anonymized Discover impressions.'
 - name: query
   type: STRING
   mode: NULLABLE
-  description: |-
-    The search query.
-    This will be null for anonymized search impressions, and all Discover and Google News search impressions.
+  description: 'The search query.
+
+    This will be null for anonymized search impressions, and all Discover and Google
+    News search impressions.'
 - name: query_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    Type of search query:
-      * Anonymized: Query was redacted by Google to protect the users' privacy.
-      * Brand: Query contained one or more Mozilla brand keywords.
-      * Non-Brand: Query didn't contain any Mozilla brand keywords.
-      * Unknown: Query couldn't be classified.
-    This will be null for all Discover and Google News search impressions.
+  description: "Type of search query:\n  * Anonymized: Query was redacted by Google\
+    \ to protect the users' privacy.\n  * Brand: Query contained one or more Mozilla\
+    \ brand keywords.\n  * Non-Brand: Query didn't contain any Mozilla brand keywords.\n\
+    \  * Unknown: Query couldn't be classified.\nThis will be null for all Discover\
+    \ and Google News search impressions."
 - name: is_anonymized
   type: BOOLEAN
   mode: NULLABLE
-  description: |-
-    Whether Google has anonymized the search impression to protect the users' privacy.
+  description: 'Whether Google has anonymized the search impression to protect the
+    users'' privacy.
+
     The `query` field will be null for anonymized search impressions.
-    The `country_code`, `page_url`, and related fields will be null for anonymized Discover impressions.
+
+    The `country_code`, `page_url`, and related fields will be null for anonymized
+    Discover impressions.'
 - name: has_good_page_experience
   type: BOOLEAN
   mode: NULLABLE
-  description: |-
-    Whether Google Search considers the page to be providing a good page experience.
-    This will be null when the source data wasn't exported directly to BigQuery by Google.
+  description: 'Whether Google Search considers the page to be providing a good page
+    experience.
+
+    This will be null when the source data wasn''t exported directly to BigQuery by
+    Google.'
 - name: search_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    Where the link was seen by the user:
-      * Web: In Google Search's default "All" tab.
-      * Image: In Google Search's "Images" tab.
-      * Video: In Google Search's "Videos" tab.
-      * News: In Google Search's "News" tab.
-      * Discover: In Google's Discover feed.
-      * Google News: On news.google.com or in the Google News app on Android and iOS.
+  description: "Where the link was seen by the user:\n  * Web: In Google Search's\
+    \ default \"All\" tab.\n  * Image: In Google Search's \"Images\" tab.\n  * Video:\
+    \ In Google Search's \"Videos\" tab.\n  * News: In Google Search's \"News\" tab.\n\
+    \  * Discover: In Google's Discover feed.\n  * Google News: On news.google.com\
+    \ or in the Google News app on Android and iOS."
 - name: search_appearance
   type: STRING
   mode: NULLABLE
-  description: |-
-    How the search result appeared (e.g. normal result, translated result, video).
-    This will be null when the source data wasn't exported directly to BigQuery by Google.
+  description: 'How the search result appeared (e.g. normal result, translated result,
+    video).
+
+    This will be null when the source data wasn''t exported directly to BigQuery by
+    Google.'
 - name: user_country_code
   type: STRING
   mode: NULLABLE
-  description: |-
-    Country from which the user was searching, in ISO-3166-1-alpha-3 format.
-    This will be null for anonymized Discover impressions.
+  description: 'Country from which the user was searching, in ISO-3166-1-alpha-3 format.
+
+    This will be null for anonymized Discover impressions.'
 - name: user_country
   type: STRING
   mode: NULLABLE
-  description: |-
-    Country from which the user was searching.
-    This will be null for anonymized Discover impressions.
+  description: 'Country from which the user was searching.
+
+    This will be null for anonymized Discover impressions.'
 - name: user_region
   type: STRING
   mode: NULLABLE
@@ -124,13 +132,15 @@
 - name: device_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    The type of device on which the user was searching: Desktop, Mobile, or Tablet.
-    This will be null for Discover impressions.
+  description: 'The type of device on which the user was searching: Desktop, Mobile,
+    or Tablet.
+
+    This will be null for Discover impressions.'
 - name: impressions
   type: INTEGER
   mode: NULLABLE
-  description: The number of times that search results with a link to the page were shown to a user.
+  description: The number of times that search results with a link to the page were
+    shown to a user.
 - name: clicks
   type: INTEGER
   mode: NULLABLE
@@ -138,6 +148,7 @@
 - name: average_position
   type: FLOAT
   mode: NULLABLE
-  description: |-
-    The average position of the page in the search results, where `1` is the topmost position.
-    This will be null for Discover and Google News search impressions.
+  description: 'The average position of the page in the search results, where `1`
+    is the topmost position.
+
+    This will be null for Discover and Google News search impressions.'
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_site/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_site/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_site/schema.yaml	2024-07-26 14:54:15.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/google_search_console/search_impressions_by_site/schema.yaml	2024-07-26 15:03:15.000000000 +0000
@@ -6,9 +6,10 @@
 - name: site_url
   type: STRING
   mode: NULLABLE
-  description: |-
-    For domain properties, this will be `sc-domain:` followed by the domain name.
-    For URL-prefix properties, it will be the full URL of the property definition.
+  description: 'For domain properties, this will be `sc-domain:` followed by the domain
+    name.
+
+    For URL-prefix properties, it will be the full URL of the property definition.'
 - name: site_domain_name
   type: STRING
   mode: NULLABLE
@@ -20,27 +21,23 @@
 - name: query_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    Type of search query:
-      * Anonymized: Query was redacted by Google to protect the users' privacy.
-      * Brand: Query contained one or more Mozilla brand keywords.
-      * Non-Brand: Query didn't contain any Mozilla brand keywords.
-      * Unknown: Query couldn't be classified.
+  description: "Type of search query:\n  * Anonymized: Query was redacted by Google\
+    \ to protect the users' privacy.\n  * Brand: Query contained one or more Mozilla\
+    \ brand keywords.\n  * Non-Brand: Query didn't contain any Mozilla brand keywords.\n\
+    \  * Unknown: Query couldn't be classified."
 - name: is_anonymized
   type: BOOLEAN
   mode: NULLABLE
-  description: |-
-    Whether Google has anonymized the search impression to protect the users' privacy.
-    The `query` field will be null for anonymized search impressions.
+  description: 'Whether Google has anonymized the search impression to protect the
+    users'' privacy.
+
+    The `query` field will be null for anonymized search impressions.'
 - name: search_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    Where the link was seen by the user:
-      * Web: In Google Search's default "All" tab.
-      * Image: In Google Search's "Images" tab.
-      * Video: In Google Search's "Videos" tab.
-      * News: In Google Search's "News" tab.
+  description: "Where the link was seen by the user:\n  * Web: In Google Search's\
+    \ default \"All\" tab.\n  * Image: In Google Search's \"Images\" tab.\n  * Video:\
+    \ In Google Search's \"Videos\" tab.\n  * News: In Google Search's \"News\" tab."
 - name: user_country_code
   type: STRING
   mode: NULLABLE
@@ -60,17 +57,20 @@
 - name: device_type
   type: STRING
   mode: NULLABLE
-  description: |-
-    The type of device on which the user was searching: Desktop, Mobile, or Tablet.
+  description: 'The type of device on which the user was searching: Desktop, Mobile,
+    or Tablet.'
 - name: impressions
   type: INTEGER
   mode: NULLABLE
-  description: The number of times that search results with at least one link to the site were shown to a user.
+  description: The number of times that search results with at least one link to the
+    site were shown to a user.
 - name: clicks
   type: INTEGER
   mode: NULLABLE
-  description: The number of times a user clicked at least one search result link to the site.
+  description: The number of times a user clicked at least one search result link
+    to the site.
 - name: average_top_position
   type: FLOAT
   mode: NULLABLE
-  description: The average top position of the site in the search results, where `1` is the topmost position.
+  description: The average top position of the site in the search results, where `1`
+    is the topmost position.
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/metadata.yaml	2024-07-26 14:54:55.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-friendly_name: Global Outages
-description: |-
-  Please provide a description for the query
-owners: []
-labels: {}
-bigquery: null
-workgroup_access:
-- role: roles/bigquery.dataViewer
-  members:
-  - workgroup:mozilla-confidential
-  - workgroup:internet-outages/external
-references:
-  view.sql:
-  - moz-fx-data-shared-prod.internet_outages.global_outages_v1
-  - moz-fx-data-shared-prod.internet_outages.global_outages_v2
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/view.sql	2024-07-26 14:54:16.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/internet_outages/global_outages/view.sql	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-CREATE OR REPLACE VIEW
-  `moz-fx-data-shared-prod.internet_outages.global_outages`
-AS
-SELECT
-  country,
-  city,
-  geo_subdivision1,
-  geo_subdivision2,
-  `datetime`,
-  proportion_undefined,
-  proportion_timeout,
-  proportion_abort,
-  proportion_unreachable,
-  proportion_terminated,
-  proportion_channel_open,
-  avg_dns_success_time,
-  missing_dns_success,
-  avg_dns_failure_time,
-  missing_dns_failure,
-  count_dns_failure,
-  ssl_error_prop,
-  avg_tls_handshake_time,
-  "v2" AS dataset_version,
-FROM
-  `moz-fx-data-shared-prod.internet_outages.global_outages_v2`
-WHERE
-  DATE(`datetime`) >= "2024-07-26"
-UNION ALL
-SELECT
-  country,
-  city,
-  CAST(NULL AS STRING) AS geo_subdivision1,
-  CAST(NULL AS STRING) AS geo_subdivision2,
-  `datetime`,
-  proportion_undefined,
-  proportion_timeout,
-  proportion_abort,
- 

⚠️ 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