Advertisement
YuvalGai

Untitled

Mar 13th, 2024
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.51 KB | None | 0 0
  1.  
  2. '03_insert_delta_into_trans_table': '''
  3. INSERT INTO CANDIVORE.TRANSFORMATION.TRANS_SPECIAL_ALBUMS(
  4. USER_ID
  5. ,ALBUM_ID
  6. ,DATE
  7. ,TOTAL_IAP_AMT
  8. ,UNIQUE_STICKERS
  9. ,DUPLICATE_STICKERS
  10. ,LTV_GROUP
  11. ,IS_COMPLETED
  12. ,IS_OPENED
  13. ,PAGES_COMPLETED
  14. ,ARENA
  15. ,payers_segment
  16. ,LAST_UPDATED_DT
  17. ,DW_INSERT_DT
  18. )
  19.  
  20. select
  21. t.user_id
  22. ,t.album_id
  23. ,t.date
  24. ,t.total_iap_amt
  25. ,t.unique_stickers
  26. ,t.duplicate_stickers
  27. ,CASE
  28. WHEN total_iap_amt = 0 THEN '0'
  29. WHEN total_iap_amt <= 10 THEN 'Low'
  30. WHEN total_iap_amt <= 100 THEN 'Med'
  31. WHEN total_iap_amt <= 299 THEN 'High'
  32. WHEN total_iap_amt <= 999 THEN 'Very High'
  33. WHEN total_iap_amt >= 1000 THEN 'VIP'
  34. END AS LTV_group
  35. ,case
  36. when s.is_completed = 1 then 1
  37. else 0
  38. end as is_completed
  39. ,case
  40. when s.is_opened = 1 then 1
  41. else 0
  42. end as is_opened
  43. ,case
  44. when s.pages_completed > 0 then pages_completed
  45. else 0
  46. end as pages_completed
  47. ,t.arena
  48. ,t.payers_segment
  49. ,t.date as LAST_UPDATED_DT
  50. ,current_timestamp() as DW_INSERT_DT
  51. from
  52. (
  53. (
  54. select
  55. a.user_id,
  56. a.album_id,
  57. a.transaction_date as date,
  58. b.payers_segment
  59. max(a.current_arena_index) as arena,
  60. max(a.total_iap_amt) as total_iap_amt,
  61. sum(
  62. case
  63. when resource_item_status = 'unique' then resource_cnt
  64. else 0
  65. end
  66. ) as unique_stickers,
  67. sum(
  68. case
  69. when resource_item_status = 'duplicate' then resource_cnt
  70. else 0
  71. end
  72. ) as duplicate_stickers
  73. from
  74. CANDIVORE.PROD.F_USER_RESOURCE_TRANSACTION a
  75. left join candivore.prod.daily_users_from_params b on a.user_id = b.user_id and a.transaction_date = b.interval_date
  76. where
  77. resource_type = 'Sticker'
  78. and transaction_date >= DATEADD(day, -2, $T_SPECIAL_ALBUMS_UPDATED_DT_MNG)
  79. and (
  80. resource_id = 'StickerSeasonal'
  81. or resource_id = 'StickerAdventure'
  82. )
  83. group by all
  84. ) as t
  85. left join (
  86. select
  87. user_id,
  88. album_id,
  89. to_date(derived_tstamp) as date,
  90. payers_segment,
  91. max(
  92. case
  93. when set_type = 'AlbumOpen' then 1
  94. else 0
  95. end
  96. ) as is_opened,
  97. max(
  98. case
  99. when set_type = 'AlbumComplete' then 1
  100. else 0
  101. end
  102. ) as is_completed,
  103. count(
  104. distinct case
  105. when set_type = 'PageComplete' then set_number
  106. end
  107. ) as pages_completed
  108. from
  109. CANDIVORE.PROD.F_ALBUM_SET_COMPLETE aa
  110. left join candivore.prod.daily_users_from_params bb on aa.user_id = bb.user_id and aa.to_date(derived_tstamp) = bb.interval_date
  111. where
  112. to_date(derived_tstamp) >= DATEADD(day, -2, $T_SPECIAL_ALBUMS_UPDATED_DT_MNG)
  113. group by all
  114. ) as s on t.user_id = s.user_id
  115. and t.album_id = s.album_id
  116. and t.date = s.date
  117. )
  118. where 1=1
  119. and t.date >= DATEADD(day, -1, $T_SPECIAL_ALBUMS_UPDATED_DT_MNG)
  120. and t.album_id is not null
  121. ;
  122. ''',
  123. '04_set_merge_error_helper': '''
  124. ALTER SESSION SET ERROR_ON_NONDETERMINISTIC_MERGE = false;
  125. ''',
  126. '05_merge_temp_to_prod': '''
  127. MERGE INTO CANDIVORE.SEMANTIC_LAYER.T_SPECIAL_ALBUMS AS t
  128. USING CANDIVORE.TRANSFORMATION.TRANS_SPECIAL_ALBUMS AS S
  129. ON s.DATE = t.DATE
  130. AND s.USER_ID = t.USER_ID
  131. AND s.ALBUM_ID = t.ALBUM_ID
  132. WHEN MATCHED THEN UPDATE SET
  133. t.USER_ID = s.USER_ID
  134. ,t.ALBUM_ID = s.ALBUM_ID
  135. ,t.DATE = s.DATE
  136. ,t.TOTAL_IAP_AMT = s.TOTAL_IAP_AMT
  137. ,t.UNIQUE_STICKERS = s.UNIQUE_STICKERS
  138. ,t.DUPLICATE_STICKERS = s.DUPLICATE_STICKERS
  139. ,t.LTV_GROUP = s.LTV_GROUP
  140. ,t.IS_COMPLETED = s.IS_COMPLETED
  141. ,t.IS_OPENED = s.IS_OPENED
  142. ,t.PAGES_COMPLETED = s.PAGES_COMPLETED
  143. ,t.ARENA = s.ARENA
  144. ,t.payers_segment = s.payers_segment
  145. ,t.LAST_UPDATED_DT = s.LAST_UPDATED_DT
  146. ,t.DW_INSERT_DT = s.DW_INSERT_DT
  147. WHEN NOT MATCHED THEN INSERT (
  148. USER_ID
  149. ,ALBUM_ID
  150. ,DATE
  151. ,TOTAL_IAP_AMT
  152. ,UNIQUE_STICKERS
  153. ,DUPLICATE_STICKERS
  154. ,LTV_GROUP
  155. ,IS_COMPLETED
  156. ,IS_OPENED
  157. ,PAGES_COMPLETED
  158. ,ARENA
  159. ,payers_segment
  160. ,LAST_UPDATED_DT
  161. ,DW_INSERT_DT
  162. )
  163. VALUES (
  164. s.USER_ID
  165. ,s.ALBUM_ID
  166. ,s.DATE
  167. ,s.TOTAL_IAP_AMT
  168. ,s.UNIQUE_STICKERS
  169. ,s.DUPLICATE_STICKERS
  170. ,s.LTV_GROUP
  171. ,s.IS_COMPLETED
  172. ,s.IS_OPENED
  173. ,s.PAGES_COMPLETED
  174. ,s.ARENA
  175. ,s.payers_segment
  176. ,s.LAST_UPDATED_DT
  177. ,s.DW_INSERT_DT
  178. );
  179. ''',
  180. '06_update_mng_table': '''
  181. INSERT INTO CANDIVORE.MANAGE.MANAGEMENT_TABLE(
  182. TABLE_NAME
  183. ,DW_INSERT_DATE
  184. ,LAST_LOAD_DATE
  185. ,ROWS_LOADED
  186. ) VALUES (
  187. 'CANDIVORE.SEMANTIC_LAYER.T_SPECIAL_ALBUMS'
  188. ,current_timestamp()
  189. ,(select max(LAST_UPDATED_DT) from CANDIVORE.TRANSFORMATION.TRANS_SPECIAL_ALBUMS)
  190. ,(select count(*) from CANDIVORE.TRANSFORMATION.TRANS_SPECIAL_ALBUMS)
  191. )
  192.  
  193.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement