Snowflake, dbt: получаю ошибку invalid identifier
Делаю такой код в dbt, чтобы сделать запрос к Snowflake:
WITH cte_1 AS (
SELECT
{{ xdb.hash(['bumg.global_user_id']) }} AS global_user_id
, fai.ad_impression_id AS ad_impression_id
, TO_CHAR((
CASE
WHEN 'Ad Served Date' = 'Ad Requested Date' THEN fai.ad_requested_at
WHEN 'Ad Served Date' = 'Ad Requested Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Requested Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Served Date' THEN fai.ad_served_at
WHEN 'Ad Served Date' = 'Ad Served Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Served Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Date' THEN fai.ad_downloaded_at
WHEN 'Ad Served Date' = 'Ad Downloaded Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Date' THEN fac.ad_clicked_at
WHEN 'Ad Served Date' = 'Ad Clicked Month' THEN {{ dbt_utils.date_trunc('month', 'fac.ad_clicked_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Week' THEN {{ dbt_utils.date_trunc('week', 'fac.ad_clicked_at') }}
ELSE NULL
END), 'YYYY-MM-DD') AS fact_ad_impressions_date
, ods.prefix AS prefix
, (
CASE
WHEN 'fac.ad_click_id' IS NOT NULL THEN 'Yes'
ELSE 'No'
END) AS impression_was_clicked
FROM {{ source('prod', 'fact_ad_impressions') }} AS fai
LEFT JOIN {{ source('prod', 'dim_ad_user') }} AS dau ON dau.ad_user_key = fai.ad_user_key
LEFT JOIN {{ source('prod', 'bridge_user_model_gam') }} AS bumg ON dau.ad_user_key = bumg.ad_user_key
LEFT JOIN {{ source('prod', 'dim_page_url') }} AS dpu ON dpu.page_url_key = fai.page_url_key
LEFT JOIN {{ source('prod', 'outrigger_dim_site') }} AS ods ON ods.site_name = dpu.page_url_host
LEFT JOIN {{ source('prod', 'fact_ad_clicks') }} AS fac ON fac.ad_impression_id = fai.ad_impression_id
WHERE
fai.ad_requested_at IS NOT NULL
AND fai.ad_served_at IS NOT NULL
AND fai.ad_downloaded_at IS NOT NULL
AND (
CASE
WHEN 'Ad Served Date' = 'Ad Requested Date' THEN fai.ad_requested_at
WHEN 'Ad Served Date' = 'Ad Requested Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Requested Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Served Date' THEN fai.ad_served_at
WHEN 'Ad Served Date' = 'Ad Served Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Served Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Date' THEN fai.ad_downloaded_at
WHEN 'Ad Served Date' = 'Ad Downloaded Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Date' THEN fac.ad_clicked_at
WHEN 'Ad Served Date' = 'Ad Clicked Month' THEN {{ dbt_utils.date_trunc('month', 'fac.ad_clicked_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Week' THEN {{ dbt_utils.date_trunc('week', 'fac.ad_clicked_at') }}
ELSE NULL
END) >= {{ dbt_date.n_months_ago(4, tz="America/New_York") }}
AND (NOT (fac.ad_click_id IS NOT NULL) OR (fac.ad_click_id IS NOT NULL) IS NULL)
AND ods.site_name IS NOT NULL
{{ dbt_utils.group_by(5) }}
ORDER BY ad_impression_id
)
, cte_2 AS (
SELECT
{{ xdb.hash(['bumg.global_user_id']) }} AS global_user_id
, fai.ad_impression_id AS ad_impression_id
, TO_CHAR((
CASE
WHEN 'Ad Served Date' = 'Ad Requested Date' THEN fai.ad_requested_at
WHEN 'Ad Served Date' = 'Ad Requested Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Requested Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Served Date' THEN fai.ad_served_at
WHEN 'Ad Served Date' = 'Ad Served Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Served Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Date' THEN fai.ad_downloaded_at
WHEN 'Ad Served Date' = 'Ad Downloaded Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Date' THEN fac.ad_clicked_at
WHEN 'Ad Served Date' = 'Ad Clicked Month' THEN {{ dbt_utils.date_trunc('month', 'fac.ad_clicked_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Week' THEN {{ dbt_utils.date_trunc('week', 'fac.ad_clicked_at') }}
ELSE NULL
END), 'YYYY-MM-DD') AS fact_ad_impressions_date
, ods.prefix AS prefix
, CASE
WHEN 'fac.ad_click_id' IS NOT NULL THEN 'Yes'
ELSE 'No'
END AS impression_was_clicked
FROM {{ source('prod', 'fact_ad_impressions') }} AS fai
LEFT JOIN {{ source('prod', 'dim_ad_user') }} AS dau ON dau.ad_user_key = fai.ad_user_key
LEFT JOIN {{ source('prod', 'bridge_user_model_gam') }} AS bumg ON dau.ad_user_key = bumg.ad_user_key
LEFT JOIN {{ source('prod', 'dim_page_url') }} AS dpu ON dpu.page_url_key = fai.page_url_key
LEFT JOIN {{ source('prod', 'outrigger_dim_site') }} AS ods ON ods.site_name = dpu.page_url_host
LEFT JOIN {{ source('prod', 'fact_ad_clicks') }} AS fac ON fac.ad_impression_id = fai.ad_impression_id
WHERE
fai.ad_requested_at IS NOT NULL
AND fai.ad_served_at IS NOT NULL
AND fai.ad_downloaded_at IS NOT NULL
AND (
CASE
WHEN 'Ad Served Date' = 'Ad Requested Date' THEN fai.ad_requested_at
WHEN 'Ad Served Date' = 'Ad Requested Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Requested Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_requested_at') }}
WHEN 'Ad Served Date' = 'Ad Served Date' THEN fai.ad_served_at
WHEN 'Ad Served Date' = 'Ad Served Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Served Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_served_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Date' THEN fai.ad_downloaded_at
WHEN 'Ad Served Date' = 'Ad Downloaded Month' THEN {{ dbt_utils.date_trunc('month', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Downloaded Week' THEN {{ dbt_utils.date_trunc('week', 'fai.ad_downloaded_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Date' THEN fac.ad_clicked_at
WHEN 'Ad Served Date' = 'Ad Clicked Month' THEN {{ dbt_utils.date_trunc('month', 'fac.ad_clicked_at') }}
WHEN 'Ad Served Date' = 'Ad Clicked Week' THEN {{ dbt_utils.date_trunc('week', 'fac.ad_clicked_at') }}
ELSE NULL
END) >= {{ dbt_date.n_months_ago(7, tz="America/New_York") }}
AND fac.ad_click_id IS NOT NULL
AND ods.site_name IS NOT NULL
{{ dbt_utils.group_by(5) }}
ORDER BY ad_impression_id
)
, cte_3 AS (
SELECT
*
FROM cte_1
UNION
SELECT
*
FROM cte_2
)
SELECT
global_user_id
, ad_impression_id
, fact_ad_impressions_date
, prefix
, impression_was_clicked
FROM cte_3
Получаю ошибку:
invalid identifier 'FAI.AD_IMPRESSION_ID'
Уже пару часов "курю" - не могу понять, где ошибся.
Можете кто-то свежим взглядом взглянуть?