Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- f_user_resource_transaction = {
- '01_truncate_transformation_table': '''
- truncate MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION
- ''',
- '02_set_from_update_variable': '''
- set FROM_USER_TRANSACTION_UPDATED_DT_MNG = (
- SELECT
- NVL(max(LAST_LOAD_DATE), to_timestamp('2023-12-11')) as LAST_UPDATED_DT_MNG
- FROM
- MATCH_MASTERS.manage.management_table
- WHERE
- 1 = 1
- AND table_name = 'CANDIVORE.PROD.F_USER_RESOURCE_TRANSACTION'
- ORDER BY
- ID DESC
- LIMIT
- 1
- );
- ''',
- '03_set_to_update_variable': '''
- set TO_USER_TRANSACTION_UPDATED_DT_MNG = (
- SELECT
- dateadd(day,-1,current_date())
- );
- ''',
- '04_insert_delta_into_trans_table': '''
- insert into MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION (
- EVENT_ID
- ,DERIVED_TSTAMP
- ,TRANSACTION_DATE
- ,TRANSACTION_DT
- ,SESSION_ID
- ,SESSION_START_DT
- ,USER_ID
- ,IS_RECEIVED_RESOURCE
- ,TRANSACTION_SOURCE
- ,BUSINESS_SOURCE
- ,BUSINESS_SOURCE_TYPE
- ,BUSINESS_SOURCE_SUB_TYPE
- ,RESOURCE_ID
- ,RESOURCE_TYPE
- ,RESOURCE_SUB_TYPE
- ,BOOSTER_TIER_GROUP_NAME
- ,RESOURCE_CNT
- ,RESOURCE_ITEM_STATUS
- ,RESOURCE_VERSION
- ,MATCH_TYPE_ID
- ,MATCH_MODE_TYPE
- ,modifier_1
- ,modifier_2
- ,modifier_3
- ,MATCH_ID
- ,OFFER_INDEX
- ,OFFER_ID
- ,SUB_OFFER_ID
- ,LO_EVENT_ID
- ,LO_EVENT_TYPE_CONFIG
- ,LO_EVENT_CONFIG_ID
- ,EVENT_TYPE
- ,LO_ENTRY_ID
- ,TEAM_ID
- ,TEAM_NAME
- ,TRANSACTION_PARTICIPATE_ID
- ,IS_REROLLED
- ,IS_COIN_PAID
- ,IS_USD_PAID
- ,PRIZE_CONTAINER
- ,FULL_CONTAINER
- ,ARRAY_SIZE
- ,PRIZE_TYPE_HISTORIC
- ,IS_CHEST
- ,IS_STICKER
- ,IS_PINIATA
- ,PRIZE_TIER_HISTORIC
- ,IS_UNIQUE_HISTORIC
- ,PINIATA_STICKER_TYPE
- ,PINIATA_STICKER_TIER
- ,PINIATA_IS_STICKER_GURANTEED_UNIQUE
- ,UUID
- ,COUNTRY
- ,LANGUAGE
- ,DEVICE_LANGUAGE
- ,TEST_NAME
- ,TEST_GROUP_NAME
- ,FB_USER_ID
- ,CLIENT_IP
- ,IS_TESTING_USER
- ,IS_DEVELOPER
- ,DEVICE_MODEL
- ,DEVICE_OS
- ,PLATFORM
- ,MEDIA_SOURCE
- ,APP_VERSION
- ,APP_MINOR_VERSION
- ,FIRST_INSTALL_DT
- ,ADVERTISER_ID
- ,APPSFLYER_ID
- ,AD_NAME
- ,CAMPAIGN_NAME
- ,SUBSCRIPTION_TIER
- ,TOTAL_IAP_AMT
- ,CURRENT_ARENA_INDEX
- ,TROPHIES_CNT
- ,STARS_CNT
- ,LT_MATCHES_PLAYED_CNT
- ,LT_MATCHES_WON_CNT
- ,LT_PURCHASES_AMT
- ,EVENT_SOURCE
- ,LTV_GROUP
- ,AD_ID
- ,ADSET
- ,ADSET_ID
- ,CAMPAIGN_ID
- ,INFLUENCER_NAME
- ,USER_NAME
- ,AF_KEYWORDS
- ,SITE_ID
- ,COIN_PRICE
- ,DOLLAR_PRICE
- ,VIDEO_PRICE
- ,ALBUM_ID
- ,STICKER_NUMBER
- ,SHIELDED_BOOSTER_VALUE
- ,PINATA_OR_CHEST_ID
- ,PRIZE_TIER
- ,PRIZE_TYPE
- ,IS_GURANTEED_UNIQUE
- ,PINATA_TYPE
- ,CHEST_TYPE
- ,STAKES_MULTIPLIER
- ,ON_FIRE
- ,SOURCE_ALBUM_ID
- ,ELO
- ,LAST_UPDATED_DT
- ,DW_INSERT_DT
- ,PRIZE_COIN_VALUE_CALCULATED
- ,RESOURCE_COIN_VALUE_CALCULATED
- ,REGION
- ,LO_SEGMENT
- ,LO_EVENT_DIFFICULTY
- ,CONFIG_INDEX
- ,LO_EVENT_LEVEL
- ,LO_EVENT_TYPE
- ,PREMIUM_PASS_END_TIME
- ,RELATIVE_SR
- ,PREMIUM_PASS_ACTIVE
- ,LO_EVENT_SLOT
- ,DEVICE_ID_HASH
- ,APP_ORIGINAL_VERSION
- ,BADGE_GROUP
- ,BADGE_ID
- ,BADGE_LEVEL
- ,BADGE_TYPE
- ,ITEM_ID
- ,PVP_MODE
- ,transaction_sub_source
- ,MATCH_TYPE
- ,rumble_type
- )
- SELECT distinct
- t.EVENT_ID
- ,t.DERIVED_TSTAMP
- ,t.TRANSACTION_DATE
- ,t.TRANSACTION_DT
- ,t.SESSION_ID
- ,t.SESSION_START_DT
- ,t.USER_ID
- ,t.IS_RECEIVED_RESOURCE
- ,t.TRANSACTION_SOURCE
- ,b.business_source
- ,b.business_source_type
- ,b.business_source_sub_type
- ,t.RESOURCE_ID
- ,t.RESOURCE_TYPE
- ,r.resource_sub_type
- ,r.booster_tier_group_name
- ,t.RESOURCE_CNT
- ,t.RESOURCE_ITEM_STATUS
- ,t.RESOURCE_VERSION
- ,t.MATCH_TYPE_ID
- ,t.MATCH_MODE_TYPE
- ,ifnull(e.LO_EVENT1_MODIFIER1_ID,e.LO_ENTRY_MODIFIER_TYPE1) modifier_1
- ,ifnull(e.LO_EVENT1_MODIFIER2_ID,e.LO_ENTRY_MODIFIER_TYPE2) modifier_2
- ,ifnull(e.LO_EVENT1_MODIFIER3_ID,e.LO_ENTRY_MODIFIER_TYPE3) modifier_3
- ,t.MATCH_ID
- ,t.OFFER_INDEX
- ,t.OFFER_ID
- ,t.SUB_OFFER_ID
- ,t.LO_EVENT_ID
- ,e.lo_event_type as lo_event_type_config
- ,e.LO_EVENT_CONFIG_ID
- ,b.event_id as event_type
- ,t.LO_ENTRY_ID
- ,t.TEAM_ID
- ,t.TEAM_NAME
- ,t.TRANSACTION_PARTICIPATE_ID
- ,t.IS_REROLLED
- ,IFNULL(t.IS_COIN_PAID, b.PURCHASED_COINS) as IS_COIN_PAID
- ,IFNULL(t.IS_USD_PAID, b.purchase_usd) as IS_USD_PAID
- ,t.prize_container
- ,t.full_container
- ,t.ARRAY_SIZE
- ,t.prize_type_historic
- ,t.is_chest
- ,t.is_sticker
- ,t.is_piniata
- ,t.prize_tier_historic
- ,t.is_unique_historic
- ,t.piniata_sticker_type
- ,t.piniata_sticker_tier
- ,t.piniata_is_sticker_guranteed_unique
- ,t.uuid
- ,t.country
- ,t.language
- ,t.device_language
- ,t.test_name
- ,t.test_group_name
- ,t.fb_user_ID
- ,t.client_IP
- ,t.is_testing_user
- ,t.is_developer
- ,t.device_model
- ,t.device_os
- ,t.platform
- ,t.media_source
- ,t.app_version
- ,t.app_minor_version
- ,t.first_install_DT
- ,t.advertiser_ID
- ,t.appsflyer_id
- ,t.ad_name
- ,t.campaign_name
- ,t.subscription_tier
- ,t.total_IAP_amt
- ,t.current_arena_index
- ,t.trophies_cnt
- ,t.stars_cnt
- ,t.LT_matches_played_cnt
- ,t.LT_matches_won_cnt
- ,t.LT_purchases_amt
- ,t.event_source
- ,t.LTV_group
- ,t.ad_id
- ,t.adset
- ,t.adset_id
- ,t.campaign_id
- ,t.influencer_name
- ,t.user_name
- ,t.af_keywords
- ,t.site_id
- ,t.coin_price
- ,t.dollar_price
- ,t.video_price
- ,t.album_id
- ,t.sticker_number
- ,t.shielded_booster_value
- ,t.pinata_or_chest_id
- ,t.prize_tier
- ,t.prize_type
- ,t.is_guranteed_unique
- ,t.pinata_type
- ,t.chest_type
- ,t.stakes_multiplier
- ,t.on_fire
- ,t.source_album_id
- ,t.elo
- ,t.DERIVED_TSTAMP as LAST_UPDATED_DT
- ,current_timestamp() as DW_INSERT_DT
- ,PRIZE_COIN_VALUE_CALCULATED
- ,RESOURCE_COIN_VALUE_CALCULATED
- ,t.region
- ,t.lo_segment
- ,t.lo_event_difficulty
- ,t.config_index
- ,t.lo_event_level
- ,t.lo_event_type
- ,t.premium_pass_end_time
- ,t.relative_SR
- ,t.premium_pass_active
- ,e.lo_event_slot
- ,t.device_id_hash
- ,t.app_original_version
- ,t.badge_group
- ,t.badge_id
- ,t.badge_level
- ,t.badge_type
- ,t.item_id
- ,t.pvp_mode
- ,CASE
- when e.lo_event_slot = 'Main' and e.lo_event_id like 'top-masters%' then 'top_masters'
- when e.lo_event_slot = 'Main' and e.lo_event_id like 'sticker-staes%' then 'sticker_stars(triggered_early_main_event)'
- when e.lo_event_slot = 'Main' then 'main_event'
- when t.transaction_source = 'live_event' and e.lo_event_type in ('TeamPrizeLadder','TeamPrizeUpgrade') then b.business_source
- when t.transaction_source = 'live_event' and e.lo_event_type = 'PrizeLadder' then nvl(b.business_source_sub_type,e.lo_event_config_id)
- when t.transaction_source = 'live_event' then nvl(nvl(e.lo_event_type,e.lo_event_type),t.transaction_source)
- when t.lo_event_id like 'lucky-spin%' then 'spin'
- when t.lo_event_id like 'lucky-super-spin%' then 'super_spin'
- ---
- WHEN t.transaction_source LIKE 'subscription%' THEN 'subscription'
- WHEN t.transaction_source LIKE 'no_activity%' THEN 'no_activity'
- WHEN t.transaction_source LIKE 'admin%'
- OR t.transaction_source LIKE 'promote' THEN 'admin_dashboard'
- WHEN t.transaction_source LIKE '%auto_comp%' THEN 'auto_compensations'
- WHEN t.transaction_source = 'daily_deals' AND is_coin_paid = TRUE THEN 'daily_deals_coins'
- WHEN t.transaction_source = 'daily_deals' AND is_usd_paid = TRUE THEN 'daily_deals_usd'
- WHEN t.transaction_source = 'daily_deals' AND is_coin_paid = FALSE AND is_usd_paid = FALSE THEN 'daily_deals_free'
- WHEN t.transaction_source in ('fb_connect','google_connect','apple_connect') THEN 'fb_google_apple_connect'
- WHEN t.transaction_source LIKE 'tournament%' THEN 'tournament'
- else t.transaction_source
- end transaction_sub_source
- ,CASE
- WHEN MATCH_TYPE_ID = 2 THEN 'Classic'
- WHEN MATCH_TYPE_ID = 3 THEN 'Challenge'
- WHEN MATCH_TYPE_ID = 4 OR transaction_source LIKE 'tournament%' THEN 'Tournament'
- when lo_event_id like '%boosters-clash%' or lo_event_id like '%booster-clash%' then 'BoostersClash'
- WHEN lo_event_id LIKE '%mutation%' and PVP_MODE = 'Solo' THEN 'SoloMutationLab'
- WHEN MATCH_TYPE_ID = 5 and (MODIFIER_1 = 'win-by-knockout' or MODIFIER_2 = 'win-by-knockout' or modifier_3 = 'win-by-knockout') AND is_random_mixer = TRUE then 'Random Knockout'
- WHEN MATCH_TYPE_ID = 5 and (MODIFIER_1 = 'win-by-knockout' or MODIFIER_2 = 'win-by-knockout' or modifier_3 = 'win-by-knockout') then 'Knockout'
- WHEN MATCH_TYPE_ID = 5 and (MODIFIER_1 = 'rumble-duo-modifier' or MODIFIER_2 = 'rumble-duo-modifier' or modifier_3 = 'rumble-duo-modifier' or lower(rumble_type) = 'showdown') AND is_random_mixer = TRUE then 'Random Showdown'
- WHEN MATCH_TYPE_ID = 5 AND is_random_mixer = TRUE then 'Random Mixer'
- WHEN MATCH_TYPE_ID = 5 and (MODIFIER_1 = 'rumble-duo-modifier' or MODIFIER_2 = 'rumble-duo-modifier' or modifier_3 = 'rumble-duo-modifier' or lower(rumble_type) = 'showdown') then 'Showdown'
- WHEN MATCH_TYPE_ID = 5 THEN 'Daily'
- when lower(rumble_type) = 'party' then 'Rumble Party'
- when pvp_mode = 'Rumble' or lower(rumble_type) = 'classic' then 'Rumble'
- when lo_event_id like '%onboarding%' then 'Onboarding'
- when PVP_MODE = 'Solo' then 'Solo'
- when lo_event_id like '%adventure%' then 'Adventure'
- when lo_event_id like '%score-race%' or config_id = 'score-race' then 'Leaderboard'
- ELSE 'Other'
- END AS MATCH_TYPE
- ,t.rumble_type
- from snowplow.derived.core_user_resource_transaction t
- left join match_masters.prod.f_liveops_calendar_with_config e
- on t.lo_entry_id = e.lo_entry_id
- left join snowplow.derived.business_transaction_sources b
- on t.transaction_source = b.transaction_source and e.lo_event_config_id = b.business_source
- left join (select * from
- (select *, rank() over (partition by resource_name,resource_type order by db_create_date desc, resource_version
- desc) as resource_rank
- from MATCH_MASTERS.prod.DIM_RESOURCE_VERSION)
- where resource_rank = 1) r
- on t.resource_id = r.resource_name and t.resource_type = r.resource_type
- where t.DERIVED_TSTAMP >= DATEADD(hour, -7, $FROM_USER_TRANSACTION_UPDATED_DT_MNG)
- ;
- ''',
- '05_set_merge_error_helper': '''
- ALTER SESSION SET ERROR_ON_NONDETERMINISTIC_MERGE = false;
- ''',
- '06_merge_prize_missing_value': '''
- MERGE INTO MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION a
- USING (
- select resource_type, resource_type_id, resource_id, resource_name, resource_version,
- resource_coin_value, resource_sub_type, prize_missing_values,
- prize_missing_values_parsed.value as prize_missing_values_parsed
- FROM snowplow.derived.resource_version_events,
- LATERAL FLATTEN(input => prize_missing_values) AS prize_missing_values_parsed
- ) b
- on a.resource_type = b.resource_type
- AND a.resource_id = b.resource_name
- AND a.resource_version = b.resource_version
- WHEN MATCHED and a.resource_type = 'Sticker' and a.is_guranteed_unique = True
- and a.trophies_cnt BETWEEN b.prize_missing_values_parsed:min AND b.prize_missing_values_parsed:max
- THEN UPDATE SET
- a.PRIZE_COIN_VALUE_CALCULATED = b.prize_missing_values_parsed:valueNum
- WHEN MATCHED and a.resource_type = 'Sticker' and a.is_guranteed_unique = True
- and a.trophies_cnt >= b.prize_missing_values_parsed:min AND b.prize_missing_values_parsed:max IS NULL
- THEN UPDATE SET
- a.PRIZE_COIN_VALUE_CALCULATED = b.prize_missing_values_parsed:valueNum
- ''',
- '07_merge_prize_coin_value': '''
- MERGE INTO MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION a
- USING (
- select resource_type, resource_type_id, resource_id, resource_name, resource_version,
- resource_coin_value, resource_sub_type, prize_coin_values,
- prize_coin_values_parsed.value as prize_coin_values_parsed
- FROM snowplow.derived.resource_version_events,
- LATERAL FLATTEN(input => prize_coin_values) AS prize_coin_values_parsed
- ) b
- on a.resource_type = b.resource_type
- AND a.resource_id = b.resource_name
- AND a.resource_version = b.resource_version
- WHEN MATCHED and a.resource_type = 'Sticker' and a.is_guranteed_unique = False
- and a.trophies_cnt BETWEEN b.prize_coin_values_parsed:min AND b.prize_coin_values_parsed:max
- THEN UPDATE SET
- a.PRIZE_COIN_VALUE_CALCULATED = b.prize_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type = 'Sticker' and a.is_guranteed_unique = False
- and a.trophies_cnt >= b.prize_coin_values_parsed:min AND b.prize_coin_values_parsed:max IS NULL
- THEN UPDATE SET
- a.PRIZE_COIN_VALUE_CALCULATED = b.prize_coin_values_parsed:valueNum
- ''',
- '08_merge_resource_coin_values': '''
- MERGE INTO MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION a
- USING (
- select resource_type, resource_type_id, resource_id, resource_name, resource_version,
- resource_coin_value, resource_sub_type, resource_coin_values,
- resource_coin_values_parsed.value as resource_coin_values_parsed
- FROM snowplow.derived.resource_version_events,
- LATERAL FLATTEN(input => resource_coin_values) AS resource_coin_values_parsed
- ) b
- on a.resource_type = b.resource_type
- AND a.resource_id = b.resource_name
- AND a.resource_version = b.resource_version
- WHEN MATCHED and a.resource_type = 'Sticker' and a.resource_item_status = 'unique'
- and a.trophies_cnt BETWEEN b.resource_coin_values_parsed:min AND b.resource_coin_values_parsed:max
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.resource_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type = 'Sticker' and a.resource_item_status = 'unique' and
- a.trophies_cnt >= b.resource_coin_values_parsed:min AND b.resource_coin_values_parsed:max IS NULL
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.resource_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type != 'Sticker' and array_size(b.resource_coin_values) = 1
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.resource_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type != 'Sticker' and array_size(resource_coin_values) > 1 and
- a.trophies_cnt BETWEEN b.resource_coin_values_parsed:min AND b.resource_coin_values_parsed:max
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.resource_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type != 'Sticker' and array_size(resource_coin_values) > 1 and
- a.trophies_cnt >= b.resource_coin_values_parsed:min AND b.resource_coin_values_parsed:max IS NULL
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.resource_coin_values_parsed:valueNum
- ''',
- '09_merge_duplicate_coin_value': '''
- MERGE INTO MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION a
- USING (
- select resource_type, resource_type_id, resource_id, resource_name, resource_version,
- resource_coin_value, resource_sub_type, duplicate_coin_values,
- duplicate_coin_values_parsed.value as duplicate_coin_values_parsed
- FROM snowplow.derived.resource_version_events,
- LATERAL FLATTEN(input => duplicate_coin_values) AS duplicate_coin_values_parsed
- ) b
- on a.resource_type = b.resource_type
- AND a.resource_id = b.resource_name
- AND a.resource_version = b.resource_version
- WHEN MATCHED and a.resource_type = 'Sticker' and a.resource_item_status = 'duplicate'
- and a.trophies_cnt BETWEEN b.duplicate_coin_values_parsed:min AND b.duplicate_coin_values_parsed:max
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.duplicate_coin_values_parsed:valueNum
- WHEN MATCHED and a.resource_type = 'Sticker' and a.resource_item_status = 'duplicate'
- and a.trophies_cnt >= b.duplicate_coin_values_parsed:min AND b.duplicate_coin_values_parsed:max IS NULL
- THEN UPDATE SET
- a.RESOURCE_COIN_VALUE_CALCULATED = b.duplicate_coin_values_parsed:valueNum
- ''',
- '10_merge_temp_to_prod': '''
- MERGE INTO MATCH_MASTERS.PROD.F_USER_RESOURCE_TRANSACTION AS t
- USING MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION AS S
- ON s.EVENT_ID = t.EVENT_ID
- AND t.DERIVED_TSTAMP > DATEADD(week, -1, $FROM_USER_TRANSACTION_UPDATED_DT_MNG)
- WHEN MATCHED THEN UPDATE SET
- t.EVENT_ID = s.EVENT_ID
- ,t.DERIVED_TSTAMP = s.DERIVED_TSTAMP
- ,t.TRANSACTION_DATE = s.TRANSACTION_DATE
- ,t.TRANSACTION_DT = s.TRANSACTION_DT
- ,t.SESSION_ID = s.SESSION_ID
- ,t.SESSION_START_DT = s.SESSION_START_DT
- ,t.USER_ID = s.USER_ID
- ,t.IS_RECEIVED_RESOURCE = s.IS_RECEIVED_RESOURCE
- ,t.TRANSACTION_SOURCE = s.TRANSACTION_SOURCE
- ,t.business_source = s.business_source
- ,t.business_source_type = s.business_source_type
- ,t.business_source_sub_type = s.business_source_sub_type
- ,t.RESOURCE_ID = s.RESOURCE_ID
- ,t.RESOURCE_TYPE = s.RESOURCE_TYPE
- ,t.resource_sub_type = s.resource_sub_type
- ,t.booster_tier_group_name = s.booster_tier_group_name
- ,t.RESOURCE_CNT = s.RESOURCE_CNT
- ,t.RESOURCE_ITEM_STATUS = s.RESOURCE_ITEM_STATUS
- ,t.RESOURCE_VERSION = s.RESOURCE_VERSION
- ,t.MATCH_TYPE_ID = s.MATCH_TYPE_ID
- ,t.MATCH_MODE_TYPE = s.MATCH_MODE_TYPE
- ,t.modifier_1 = s.modifier_1
- ,t.modifier_2 = s.modifier_2
- ,t.modifier_3 = s.modifier_3
- ,t.MATCH_ID = s.MATCH_ID
- ,t.OFFER_INDEX = s.OFFER_INDEX
- ,t.OFFER_ID = s.OFFER_ID
- ,t.SUB_OFFER_ID = s.SUB_OFFER_ID
- ,t.LO_EVENT_ID = s.LO_EVENT_ID
- ,t.lo_event_type_config = s.lo_event_type_config
- ,t.LO_EVENT_CONFIG_ID = s.LO_EVENT_CONFIG_ID
- ,t.event_type = s.event_type
- ,t.LO_ENTRY_ID = s.LO_ENTRY_ID
- ,t.TEAM_ID = s.TEAM_ID
- ,t.TEAM_NAME = s.TEAM_NAME
- ,t.TRANSACTION_PARTICIPATE_ID = s.TRANSACTION_PARTICIPATE_ID
- ,t.IS_REROLLED = s.IS_REROLLED
- ,t.IS_COIN_PAID = s.IS_COIN_PAID
- ,t.IS_USD_PAID = s.IS_USD_PAID
- ,t.prize_container = s.prize_container
- ,t.full_container = s.full_container
- ,t.ARRAY_SIZE = s.ARRAY_SIZE
- ,t.prize_type_historic = s.prize_type_historic
- ,t.is_chest = s.is_chest
- ,t.is_sticker = s.is_sticker
- ,t.is_piniata = s.is_piniata
- ,t.prize_tier_historic = s.prize_tier_historic
- ,t.is_unique_historic = s.is_unique_historic
- ,t.piniata_sticker_type = s.piniata_sticker_type
- ,t.piniata_sticker_tier = s.piniata_sticker_tier
- ,t.piniata_is_sticker_guranteed_unique = s.piniata_is_sticker_guranteed_unique
- ,t.uuid = s.uuid
- ,t.country = s.country
- ,t.language = s.language
- ,t.device_language = s.device_language
- ,t.test_name = s.test_name
- ,t.test_group_name = s.test_group_name
- ,t.fb_user_ID = s.fb_user_ID
- ,t.client_IP = s.client_IP
- ,t.is_testing_user = s.is_testing_user
- ,t.is_developer = s.is_developer
- ,t.device_model = s.device_model
- ,t.device_os = s.device_os
- ,t.platform = s.platform
- ,t.media_source = s.media_source
- ,t.app_version = s.app_version
- ,t.app_minor_version = s.app_minor_version
- ,t.first_install_DT = s.first_install_DT
- ,t.advertiser_ID = s.advertiser_ID
- ,t.appsflyer_id = s.appsflyer_id
- ,t.ad_name = s.ad_name
- ,t.campaign_name = s.campaign_name
- ,t.subscription_tier = s.subscription_tier
- ,t.total_IAP_amt = s.total_IAP_amt
- ,t.current_arena_index = s.current_arena_index
- ,t.trophies_cnt = s.trophies_cnt
- ,t.stars_cnt = s.stars_cnt
- ,t.LT_matches_played_cnt = s.LT_matches_played_cnt
- ,t.LT_matches_won_cnt = s.LT_matches_won_cnt
- ,t.LT_purchases_amt = s.LT_purchases_amt
- ,t.event_source = s.event_source
- ,t.LTV_group = s.LTV_group
- ,t.ad_id = s.ad_id
- ,t.adset = s.adset
- ,t.adset_id = s.adset_id
- ,t.campaign_id = s.campaign_id
- ,t.influencer_name = s.influencer_name
- ,t.user_name = s.user_name
- ,t.af_keywords = s.af_keywords
- ,t.site_id = s.site_id
- ,t.coin_price = s.coin_price
- ,t.dollar_price = s.dollar_price
- ,t.video_price = s.video_price
- ,t.album_id = s.album_id
- ,t.sticker_number = s.sticker_number
- ,t.shielded_booster_value = s.shielded_booster_value
- ,t.pinata_or_chest_id = s.pinata_or_chest_id
- ,t.prize_tier = s.prize_tier
- ,t.prize_type = s.prize_type
- ,t.is_guranteed_unique = s.is_guranteed_unique
- ,t.pinata_type = s.pinata_type
- ,t.chest_type = s.chest_type
- ,t.stakes_multiplier = s.stakes_multiplier
- ,t.on_fire = s.on_fire
- ,t.source_album_id = s.source_album_id
- ,t.elo = s.elo
- ,t.LAST_UPDATED_DT = s.LAST_UPDATED_DT
- ,t.DW_INSERT_DT = s.DW_INSERT_DT
- ,t.PRIZE_COIN_VALUE_CALCULATED = s.PRIZE_COIN_VALUE_CALCULATED
- ,t.RESOURCE_COIN_VALUE_CALCULATED = s.RESOURCE_COIN_VALUE_CALCULATED
- ,t.region = s.region
- ,t.lo_segment = s.lo_segment
- ,t.lo_event_difficulty = s.lo_event_difficulty
- ,t.config_index = s.config_index
- ,t.lo_event_level = s.lo_event_level
- ,t.lo_event_type = s.lo_event_type
- ,t.premium_pass_end_time = s.premium_pass_end_time
- ,t.relative_SR = s.relative_SR
- ,t.premium_pass_active = s.premium_pass_active
- ,t.lo_event_slot = s.lo_event_slot
- ,t.device_id_hash = s.device_id_hash
- ,t.app_original_version = s.app_original_version
- ,t.badge_group = s.badge_group
- ,t.badge_id = s.badge_id
- ,t.badge_level = s.badge_level
- ,t.badge_type = s.badge_type
- ,t.item_id = s.item_id
- ,t.pvp_mode = s.pvp_mode
- ,t.transaction_sub_source = s.transaction_sub_source
- ,t.MATCH_TYPE = s.MATCH_TYPE
- ,t.rumble_type = s.rumble_type
- WHEN NOT MATCHED THEN INSERT (
- EVENT_ID
- ,DERIVED_TSTAMP
- ,TRANSACTION_DATE
- ,TRANSACTION_DT
- ,SESSION_ID
- ,SESSION_START_DT
- ,USER_ID
- ,IS_RECEIVED_RESOURCE
- ,TRANSACTION_SOURCE
- ,business_source
- ,business_source_type
- ,business_source_sub_type
- ,RESOURCE_ID
- ,RESOURCE_TYPE
- ,resource_sub_type
- ,booster_tier_group_name
- ,RESOURCE_CNT
- ,RESOURCE_ITEM_STATUS
- ,RESOURCE_VERSION
- ,MATCH_TYPE_ID
- ,MATCH_MODE_TYPE
- ,modifier_1
- ,modifier_2
- ,modifier_3
- ,MATCH_ID
- ,OFFER_INDEX
- ,OFFER_ID
- ,SUB_OFFER_ID
- ,LO_EVENT_ID
- ,lo_event_type_config
- ,LO_EVENT_CONFIG_ID
- ,event_type
- ,LO_ENTRY_ID
- ,TEAM_ID
- ,TEAM_NAME
- ,TRANSACTION_PARTICIPATE_ID
- ,IS_REROLLED
- ,IS_COIN_PAID
- ,IS_USD_PAID
- ,prize_container
- ,full_container
- ,ARRAY_SIZE
- ,prize_type_historic
- ,is_chest
- ,is_sticker
- ,is_piniata
- ,prize_tier_historic
- ,is_unique_historic
- ,piniata_sticker_type
- ,piniata_sticker_tier
- ,piniata_is_sticker_guranteed_unique
- ,uuid
- ,country
- ,language
- ,device_language
- ,test_name
- ,test_group_name
- ,fb_user_ID
- ,client_IP
- ,is_testing_user
- ,is_developer
- ,device_model
- ,device_os
- ,platform
- ,media_source
- ,app_version
- ,app_minor_version
- ,first_install_DT
- ,advertiser_ID
- ,appsflyer_id
- ,ad_name
- ,campaign_name
- ,subscription_tier
- ,total_IAP_amt
- ,current_arena_index
- ,trophies_cnt
- ,stars_cnt
- ,LT_matches_played_cnt
- ,LT_matches_won_cnt
- ,LT_purchases_amt
- ,event_source
- ,LTV_group
- ,ad_id
- ,adset
- ,adset_id
- ,campaign_id
- ,influencer_name
- ,user_name
- ,af_keywords
- ,site_id
- ,coin_price
- ,dollar_price
- ,video_price
- ,album_id
- ,sticker_number
- ,shielded_booster_value
- ,pinata_or_chest_id
- ,prize_tier
- ,prize_type
- ,is_guranteed_unique
- ,pinata_type
- ,chest_type
- ,stakes_multiplier
- ,on_fire
- ,source_album_id
- ,elo
- ,LAST_UPDATED_DT
- ,DW_INSERT_DT
- ,PRIZE_COIN_VALUE_CALCULATED
- ,RESOURCE_COIN_VALUE_CALCULATED
- ,region
- ,lo_segment
- ,lo_event_difficulty
- ,config_index
- ,lo_event_level
- ,lo_event_type
- ,premium_pass_end_time
- ,relative_SR
- ,premium_pass_active
- ,lo_event_slot
- ,device_id_hash
- ,app_original_version
- ,badge_group
- ,badge_id
- ,badge_level
- ,badge_type
- ,item_id
- ,pvp_mode
- ,transaction_sub_source
- ,MATCH_TYPE
- ,rumble_type
- )
- VALUES
- (
- EVENT_ID
- ,s.DERIVED_TSTAMP
- ,s.TRANSACTION_DATE
- ,s.TRANSACTION_DT
- ,s.SESSION_ID
- ,s.SESSION_START_DT
- ,s.USER_ID
- ,s.IS_RECEIVED_RESOURCE
- ,s.TRANSACTION_SOURCE
- ,s.business_source
- ,s.business_source_type
- ,s.business_source_sub_type
- ,s.RESOURCE_ID
- ,s.RESOURCE_TYPE
- ,s.resource_sub_type
- ,s.booster_tier_group_name
- ,s.RESOURCE_CNT
- ,s.RESOURCE_ITEM_STATUS
- ,s.RESOURCE_VERSION
- ,s.MATCH_TYPE_ID
- ,s.MATCH_MODE_TYPE
- ,s.modifier_1
- ,s.modifier_2
- ,s.modifier_3
- ,s.MATCH_ID
- ,s.OFFER_INDEX
- ,s.OFFER_ID
- ,s.SUB_OFFER_ID
- ,s.LO_EVENT_ID
- ,s.lo_event_type_config
- ,s.LO_EVENT_CONFIG_ID
- ,s.event_type
- ,s.LO_ENTRY_ID
- ,s.TEAM_ID
- ,s.TEAM_NAME
- ,s.TRANSACTION_PARTICIPATE_ID
- ,s.IS_REROLLED
- ,s.IS_COIN_PAID
- ,s.IS_USD_PAID
- ,s.prize_container
- ,s.full_container
- ,s.ARRAY_SIZE
- ,s.prize_type_historic
- ,s.is_chest
- ,s.is_sticker
- ,s.is_piniata
- ,s.prize_tier_historic
- ,s.is_unique_historic
- ,s.piniata_sticker_type
- ,s.piniata_sticker_tier
- ,s.piniata_is_sticker_guranteed_unique
- ,s.uuid
- ,s.country
- ,s.language
- ,s.device_language
- ,s.test_name
- ,s.test_group_name
- ,s.fb_user_ID
- ,s.client_IP
- ,s.is_testing_user
- ,s.is_developer
- ,s.device_model
- ,s.device_os
- ,s.platform
- ,s.media_source
- ,s.app_version
- ,s.app_minor_version
- ,s.first_install_DT
- ,s.advertiser_ID
- ,s.appsflyer_id
- ,s.ad_name
- ,s.campaign_name
- ,s.subscription_tier
- ,s.total_IAP_amt
- ,s.current_arena_index
- ,s.trophies_cnt
- ,s.stars_cnt
- ,s.LT_matches_played_cnt
- ,s.LT_matches_won_cnt
- ,s.LT_purchases_amt
- ,s.event_source
- ,s.LTV_group
- ,s.ad_id
- ,s.adset
- ,s.adset_id
- ,s.campaign_id
- ,s.influencer_name
- ,s.user_name
- ,s.af_keywords
- ,s.site_id
- ,s.coin_price
- ,s.dollar_price
- ,s.video_price
- ,s.album_id
- ,s.sticker_number
- ,s.shielded_booster_value
- ,s.pinata_or_chest_id
- ,s.prize_tier
- ,s.prize_type
- ,s.is_guranteed_unique
- ,s.pinata_type
- ,s.chest_type
- ,s.stakes_multiplier
- ,s.on_fire
- ,s.source_album_id
- ,s.elo
- ,s.LAST_UPDATED_DT
- ,s.DW_INSERT_DT
- ,s.PRIZE_COIN_VALUE_CALCULATED
- ,s.RESOURCE_COIN_VALUE_CALCULATED
- ,s.region
- ,s.lo_segment
- ,s.lo_event_difficulty
- ,s.config_index
- ,s.lo_event_level
- ,s.lo_event_type
- ,s.premium_pass_end_time
- ,s.relative_SR
- ,s.premium_pass_active
- ,s.lo_event_slot
- ,s.device_id_hash
- ,s.app_original_version
- ,s.badge_group
- ,s.badge_id
- ,s.badge_level
- ,s.badge_type
- ,s.item_id
- ,s.pvp_mode
- ,s.transaction_sub_source
- ,s.MATCH_TYPE
- ,s.rumble_type
- );
- ''',
- '11_update_mng_table': '''
- INSERT INTO MATCH_MASTERS.MANAGE.MANAGEMENT_TABLE(
- TABLE_NAME
- ,DW_INSERT_DATE
- ,LAST_LOAD_DATE
- ,ROWS_LOADED
- ) VALUES (
- 'CANDIVORE.PROD.F_USER_RESOURCE_TRANSACTION'
- ,current_timestamp()
- ,(select max(LAST_UPDATED_DT) from MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION)
- ,(select count(*) from MATCH_MASTERS.TRANSFORMATION.TRANS_USER_RESOURCE_TRANSACTION)
- )
- '''
- }
- ;
- select * from match_masters.prod.f_liveops_calendar_with_config where lo_entry_name = 'match-rumble-15-30k-gold-v4'
- ;
- LEFT JOIN (
- select
- calendar_order,
- lo_entry_is_premium_pass_exclusive,
- lo_event_config_id,
- lo_event_dynamic_config_id,
- LO_ORIGINAL_ENTRY_ID,
- LO_ENTRY_MODIFIER_TYPE2,
- LO_ENTRY_MODIFIER_TYPE1,
- LO_ENTRY_ID
- FROM
- SNOWPLOW.DERIVED.LIVEOPS_CALENDAR QUALIFY row_number() over (
- partition by lo_entry_id
- order by
- ifnull(lo_entry_ts, lo_entry_update_ts) DESC
- ) = 1
- ) calendar on UM.match_lop_event_id = calendar.LO_ENTRY_ID
- ;
- ifnull(LO_EVENT1_MODIFIER1_ID,LO_ENTRY_MODIFIER_TYPE1) modifier_1, ifnull(LO_EVENT1_MODIFIER2_ID,LO_ENTRY_MODIFIER_TYPE2) LO_EVENT1_MODIFIER2_ID
- ;
- select * from MATCH_MASTERS.PROD.DIM_EVENT_CONFIG where lo_event_id = 'match-rumble-15-30k-gold-v4'
- ;
- select * from match_masters.prod.f_liveops_calendar where date(derived_tstamp) >= current_date -10 limit 100
- ;
- select a.*,b.*
- from
- (SELECT
- *, to_timestamp(lo_entry_start_ts) lo_entry_start_ts_2
- FROM match_masters.PROD.F_LIVEOPS_CALENDAR where lo_entry_name = 'match-rumble-15-30k-gold-v4') a
- left join
- (SELECT
- nvl(lead(lo_event_config_update_ts) over(partition by lo_event_id order by lo_event_config_update_ts),current_date+20) lagged_ts
- , * exclude (derived_tstamp, event_id)
- from
- (select *
- FROM match_masters.PROD.DIM_EVENT_CONFIG
- qualify row_number() over(partition by event_id order by derived_tstamp) = 1
- )) b
- on a.lo_entry_start_ts_2 >= b.lo_event_config_update_ts and a.lo_entry_start_ts_2 <= b.lagged_ts and a.lo_entry_name = b.lo_event_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement