Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_new_shows_query(date_day: str) -> str:
- """
- Возвращает SQL-запрос для агрегации данных по показам (shows)
- из таблиц unified.mdsp_request_cloud и unified.mdsp_event_cloud.
- Здесь:
- - dt заменяет show_date,
- - request_ts_ms/event_ts_ms используются вместо show_ts,
- - отсутствующие поля (stat_id, segments и т.п.) заменяются заглушками.
- """
- query = f"""
- WITH req AS (
- SELECT
- dt AS date_day,
- bid_request_id,
- site_id AS pad_id,
- tag_id AS block_id,
- 0 AS adplace_id, -- Заглушка, так как stat_id отсутствует
- 0 AS statid, -- Заглушка
- 0 AS test_id, -- Заглушка
- if(arrayExists(x -> x = 1, regions), toUInt8(regions[1] == 1), 0) AS fl_russia
- FROM unified.mdsp_request_cloud
- WHERE dt = toDate('{date_day}')
- ),
- evt AS (
- SELECT
- dt AS date_day,
- bid_request_id,
- request_site_id AS pad_id,
- request_tag_id AS block_id,
- campaign_id,
- dictGetString('DSP_ProductCategory', 'name',
- dictGetUInt64('DSP_Flight', 'product_category_id', toUInt64(ad_group_id))
- ) AS category
- FROM unified.mdsp_event_cloud
- WHERE dt = toDate('{date_day}')
- AND event_type = 10 -- Предположим, что event_type=10 соответствует показам (shows)
- )
- SELECT
- r.date_day,
- 429675720 AS user_id, -- Фиксированное значение
- r.pad_id,
- r.block_id,
- e.category,
- r.adplace_id,
- r.statid,
- r.test_id,
- e.campaign_id,
- r.fl_russia,
- count(*) AS real_shows,
- 0 AS revenue -- Заглушка для revenue
- FROM evt e
- JOIN req r
- ON e.bid_request_id = r.bid_request_id
- AND e.pad_id = r.pad_id
- AND e.block_id = r.block_id
- GROUP BY
- r.date_day,
- e.campaign_id,
- r.pad_id,
- r.block_id,
- e.category,
- r.adplace_id,
- r.statid,
- r.test_id,
- r.fl_russia
- """
- return query
- def get_new_clicks_query(date_day: str) -> str:
- """
- Возвращает SQL-запрос для агрегации данных по кликам (clicks)
- из таблиц unified.mdsp_request_cloud и unified.mdsp_event_cloud.
- Здесь:
- - dt используется вместо click_date,
- - отсутствующие поля заменяются заглушками.
- """
- query = f"""
- WITH req AS (
- SELECT
- dt AS date_day,
- bid_request_id,
- site_id AS pad_id,
- tag_id AS block_id,
- 0 AS adplace_id, -- Заглушка
- 0 AS statid, -- Заглушка
- 0 AS test_id, -- Заглушка
- 0 AS crosstraffic_id, -- Заглушка
- if(arrayExists(x -> x = 1, regions), toUInt8(regions[1] == 1), 0) AS fl_russia
- FROM unified.mdsp_request_cloud
- WHERE dt = toDate('{date_day}')
- ),
- evt AS (
- SELECT
- dt AS date_day,
- bid_request_id,
- request_site_id AS pad_id,
- request_tag_id AS block_id,
- campaign_id,
- ad_group_id AS dsp_flight_id,
- dictGetString('DSP_ProductCategory', 'name',
- dictGetUInt64('DSP_Flight', 'product_category_id', toUInt64(ad_group_id))
- ) AS category,
- dictGetUInt64('DSP_Flight', 'product_category_id', toUInt64(ad_group_id)) AS product_category_id,
- dictGetUInt64('ATD_Campaign', 'income_source_id',
- dictGetUInt64('ATD_DspCampaign', 'atd_oid', campaign_id)
- ) AS income_source_id
- FROM unified.mdsp_event_cloud
- WHERE dt = toDate('{date_day}')
- AND event_type = 6 -- Предположим, что event_type=6 соответствует кликам
- )
- SELECT
- r.date_day,
- 429675720 AS user_id,
- e.campaign_id,
- r.pad_id,
- e.dsp_flight_id,
- r.block_id,
- e.category,
- r.adplace_id,
- r.statid,
- r.test_id,
- r.crosstraffic_id,
- r.fl_russia,
- e.product_category_id,
- e.income_source_id,
- count(*) AS clicks
- FROM req r
- JOIN evt e
- ON r.bid_request_id = e.bid_request_id
- AND r.pad_id = e.pad_id
- AND r.block_id = e.block_id
- GROUP BY
- r.date_day,
- e.campaign_id,
- r.pad_id,
- e.dsp_flight_id,
- r.block_id,
- e.category,
- r.adplace_id,
- r.statid,
- r.test_id,
- r.crosstraffic_id,
- r.fl_russia,
- e.product_category_id,
- e.income_source_id
- """
- return query
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement