Skip to content

Commit 6665ce3

Browse files
authored
fix(stable_views): Filter schemas according to the generate.stable_views.skip_datasets config (#8394)
* fix(stable_views): Filter schemas according to the `generate.stable_views.skip_datasets` config. * chore(stable_views): Pre-commit check fixes.
1 parent 991f37d commit 6665ce3

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

sql_generators/stable_views/__init__.py

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@
1919
from pathos.multiprocessing import ProcessingPool
2020

2121
from bigquery_etl.cli.utils import use_cloud_function_option
22-
from bigquery_etl.schema.stable_table_schema import SchemaFile, get_stable_table_schemas
23-
from bigquery_etl.dryrun import get_id_token
2422
from bigquery_etl.config import ConfigLoader
23+
from bigquery_etl.dryrun import get_id_token
24+
from bigquery_etl.schema.stable_table_schema import SchemaFile, get_stable_table_schemas
2525

26-
BOT_GENERATED = 'LOWER(IFNULL(metadata.isp.name, "")) = "browserstack" AS is_bot_generated'
26+
BOT_GENERATED = (
27+
'LOWER(IFNULL(metadata.isp.name, "")) = "browserstack" AS is_bot_generated'
28+
)
2729

2830
VIEW_QUERY_TEMPLATE = """\
2931
-- Generated via ./bqetl generate stable_views
@@ -63,10 +65,10 @@
6365
* REPLACE(
6466
{replacements}),
6567
`moz-fx-data-shared-prod`.udf.funnel_derived_installs(
66-
silent,
67-
submission_timestamp,
68-
build_id,
69-
attribution,
68+
silent,
69+
submission_timestamp,
70+
build_id,
71+
attribution,
7072
distribution_id
7173
) AS funnel_derived,
7274
`moz-fx-data-shared-prod`.udf.distribution_model_installs(distribution_id) AS distribution_model,
@@ -145,7 +147,7 @@ def write_dataset_metadata_if_not_exists(
145147

146148

147149
def write_view_if_not_exists(
148-
target_project: str, sql_dir: Path, id_token=None, schema: SchemaFile = None
150+
target_project: str, sql_dir: Path, schema: SchemaFile, id_token=None
149151
):
150152
"""If a view.sql does not already exist, write one to the target directory."""
151153
# add imports here to run in multiple processes via pathos
@@ -224,7 +226,7 @@ def write_view_if_not_exists(
224226
for metrics_datetime_field in metrics_field["fields"]
225227
]:
226228
datetime_replacements_clause = (
227-
f"REPLACE (STRUCT("
229+
"REPLACE (STRUCT("
228230
+ ", ".join(
229231
field_select
230232
for field in metrics_datetime_fields
@@ -287,7 +289,7 @@ def write_view_if_not_exists(
287289
)
288290

289291
replacements += [
290-
f"(SELECT AS STRUCT "
292+
"(SELECT AS STRUCT "
291293
+ ", ".join([metrics_select] + metrics_2_aliases)
292294
+ ") AS metrics"
293295
]
@@ -457,26 +459,29 @@ def generate(target_project, output_dir, log_level, parallelism, use_cloud_funct
457459
skipped_tables_config = ConfigLoader.get(
458460
"generate", "stable_views", "skip_tables", fallback={}
459461
)
462+
skipped_datasets_config = ConfigLoader.get(
463+
"generate", "stable_views", "skip_datasets", fallback=[]
464+
)
460465
schemas = [
461-
schema for schema in
462-
get_stable_table_schemas()
463-
if schema.bq_table_unversioned not in skipped_tables_config.get(schema.bq_dataset_family, [])
466+
schema
467+
for schema in get_stable_table_schemas()
468+
if schema.bq_table_unversioned
469+
not in skipped_tables_config.get(schema.bq_dataset_family, [])
470+
and schema.bq_dataset_family not in skipped_datasets_config
464471
]
465472
one_schema_per_dataset = [
466-
last
467-
for k, (*_, last) in groupby(schemas, lambda t: t.bq_dataset_family)
468-
if k
469-
not in ConfigLoader.get(
470-
"generate", "stable_views", "skip_datasets", fallback=[]
471-
)
473+
last for k, (*_, last) in groupby(schemas, lambda t: t.bq_dataset_family)
472474
]
473475

474476
id_token = get_id_token()
475477

476478
with ProcessingPool(parallelism) as pool:
477479
pool.map(
478480
partial(
479-
write_view_if_not_exists, target_project, Path(output_dir), id_token
481+
write_view_if_not_exists,
482+
target_project,
483+
Path(output_dir),
484+
id_token=id_token,
480485
),
481486
schemas,
482487
)

0 commit comments

Comments
 (0)