Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
M
meta_base_code
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
宋柯
meta_base_code
Commits
64a996cd
Commit
64a996cd
authored
Jun 17, 2021
by
郭羽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
个性化push指标
parent
9c51845d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
41 deletions
+43
-41
ctr_push_strategy.py
task/ctr_push_strategy.py
+43
-41
No files found.
task/ctr_push_strategy.py
View file @
64a996cd
...
@@ -76,7 +76,7 @@ def getSql(startDay,endDay):
...
@@ -76,7 +76,7 @@ def getSql(startDay,endDay):
sql
=
"""
sql
=
"""
--push接收数据
--push接收数据
select day_id
select day_id
,
case when device_os_type = '' then '其他' end
,
device_os_type
,active_type
,active_type
,sum(received_dev_num) as all_receive_num
,sum(received_dev_num) as all_receive_num
,NVL(sum(case when push_type = '101' then received_dev_num end),0) as tractate_receive_num
,NVL(sum(case when push_type = '101' then received_dev_num end),0) as tractate_receive_num
...
@@ -226,48 +226,50 @@ if __name__ == '__main__':
...
@@ -226,48 +226,50 @@ if __name__ == '__main__':
for
res
in
sql_res
:
for
res
in
sql_res
:
print
(
res
)
print
(
res
)
device_os_type
=
res
.
device_os_type
active_type
=
res
.
active_type
day_id
=
res
.
day_id
all_receive_num
=
res
.
all_receive_num
diary_click_num
=
res
.
diary_click_num
tractate_click_num
=
res
.
tractate_click_num
answer_click_num
=
res
.
answer_click_num
diary_receive_num
=
res
.
diary_receive_num
tractate_receive_num
=
res
.
tractate_receive_num
answer_receive_num
=
res
.
answer_receive_num
diary_push_num
=
push_count_d
[
'diary'
]
.
setdefault
(
day_id
,
0
)
tractate_push_num
=
push_count_d
[
'tractate'
]
.
setdefault
(
day_id
,
0
)
answer_push_num
=
push_count_d
[
'answer'
]
.
setdefault
(
day_id
,
0
)
diary_click_rate
=
round
(
diary_click_num
/
diary_receive_num
,
2
)
if
diary_receive_num
!=
0
else
0
tractate_click_rate
=
round
(
tractate_click_num
/
tractate_receive_num
,
2
)
if
tractate_receive_num
!=
0
else
0
answer_click_rate
=
round
(
answer_click_num
/
answer_receive_num
,
2
)
if
answer_receive_num
!=
0
else
0
diary_cover_rate
=
round
(
diary_receive_num
/
all_receive_num
,
2
)
if
all_receive_num
!=
0
else
0
tractate_cover_rate
=
round
(
tractate_receive_num
/
all_receive_num
,
2
)
if
all_receive_num
!=
0
else
0
answer_cover_rate
=
round
(
answer_receive_num
/
all_receive_num
,
2
)
if
all_receive_num
!=
0
else
0
diary_receive_rate
=
round
(
diary_receive_num
/
diary_push_num
,
2
)
if
diary_push_num
!=
0
else
0
tractate_receive_rate
=
round
(
tractate_receive_num
/
tractate_push_num
,
2
)
if
tractate_push_num
!=
0
else
0
answer_receive_rate
=
round
(
answer_receive_num
/
answer_push_num
,
2
)
if
answer_push_num
!=
0
else
0
pid
=
hashlib
.
md5
((
day_id
+
device_os_type
+
active_type
)
.
encode
(
"utf8"
))
.
hexdigest
()
# device_os_type = res.device_os_type
# active_type = res.active_type
# day_id = res.day_id
# all_receive_num = res.all_receive_num
#
# diary_click_num = res.diary_click_num
# tractate_click_num = res.tractate_click_num
# answer_click_num = res.answer_click_num
#
# diary_receive_num = res.diary_receive_num
# tractate_receive_num = res.tractate_receive_num
# answer_receive_num = res.answer_receive_num
#
# diary_push_num = push_count_d['diary'].setdefault(day_id,0)
# tractate_push_num = push_count_d['tractate'].setdefault(day_id,0)
# answer_push_num = push_count_d['answer'].setdefault(day_id,0)
#
#
# diary_click_rate = round(diary_click_num/diary_receive_num,2) if diary_receive_num!=0 else 0
# tractate_click_rate = round(tractate_click_num/tractate_receive_num,2) if tractate_receive_num!=0 else 0
# answer_click_rate = round(answer_click_num/answer_receive_num,2) if answer_receive_num!=0 else 0
#
# diary_cover_rate = round(diary_receive_num/all_receive_num,2) if all_receive_num!=0 else 0
# tractate_cover_rate = round(tractate_receive_num/all_receive_num,2) if all_receive_num!=0 else 0
# answer_cover_rate = round(answer_receive_num/all_receive_num,2) if all_receive_num!=0 else 0
#
# diary_receive_rate = round(diary_receive_num/diary_push_num,2) if diary_push_num!=0 else 0
# tractate_receive_rate = round(tractate_receive_num/tractate_push_num,2) if tractate_push_num!=0 else 0
# answer_receive_rate = round(answer_receive_num/answer_push_num,2) if answer_push_num!=0 else 0
#
# pid = hashlib.md5((day_id + device_os_type + active_type).encode("utf8")).hexdigest()
#
# instert_sql = """replace into ctr_push_strategy(
# day_id,device_os_type,active_type,pid,diary_click_num,tractate_click_num,answer_click_num,diary_receive_num,tractate_receive_num,answer_receive_num
# ,diary_click_rate,tractate_click_rate,answer_receive_rate,diary_cover_rate,tractate_cover_rate,answer_cover_rate,cover_rate
# ,diary_push_num,tractate_push_num,answer_push_num,all_receive_num)
# VALUES('{day_id}','{device_os_type}','{active_type}','{pid}',{diary_click_num},{tractate_click_num},{answer_click_num},{diary_receive_num},{tractate_receive_num},{answer_receive_num}
# ,{diary_click_rate},{tractate_click_rate},{answer_receive_rate},{diary_cover_rate},{tractate_cover_rate},{answer_cover_rate},{diary_push_num},{tractate_push_num},{answer_push_num},{all_receive_num});"""\
# .format(day_id=day_id,device_os_type=device_os_type,active_type=active_type,pid=pid,diary_click_num=diary_click_num,tractate_click_num=tractate_click_num,diary_receive_num=diary_receive_num,tractate_receive_num=tractate_receive_num
# ,diary_click_rate=diary_click_rate,tractate_click_rate=tractate_click_rate,answer_receive_rate=answer_receive_rate,diary_cover_rate=diary_cover_rate,tractate_cover_rate=tractate_cover_rate,answer_cover_rate=answer_cover_rate
# ,diary_push_num=diary_push_num,tractate_push_num=tractate_push_num,answer_push_num=answer_push_num,all_receive_num=all_receive_num)
# print(instert_sql)
instert_sql
=
"""replace into ctr_push_strategy(
day_id,device_os_type,active_type,pid,diary_click_num,tractate_click_num,answer_click_num,diary_receive_num,tractate_receive_num,answer_receive_num
,diary_click_rate,tractate_click_rate,answer_receive_rate,diary_cover_rate,tractate_cover_rate,answer_cover_rate,cover_rate
,diary_push_num,tractate_push_num,answer_push_num,all_receive_num)
VALUES('{day_id}','{device_os_type}','{active_type}','{pid}',{diary_click_num},{tractate_click_num},{answer_click_num},{diary_receive_num},{tractate_receive_num},{answer_receive_num}
,{diary_click_rate},{tractate_click_rate},{answer_receive_rate},{diary_cover_rate},{tractate_cover_rate},{answer_cover_rate},{diary_push_num},{tractate_push_num},{answer_push_num},{all_receive_num});"""
\
.
format
(
day_id
=
day_id
,
device_os_type
=
device_os_type
,
active_type
=
active_type
,
pid
=
pid
,
diary_click_num
=
diary_click_num
,
tractate_click_num
=
tractate_click_num
,
diary_receive_num
=
diary_receive_num
,
tractate_receive_num
=
tractate_receive_num
,
diary_click_rate
=
diary_click_rate
,
tractate_click_rate
=
tractate_click_rate
,
answer_receive_rate
=
answer_receive_rate
,
diary_cover_rate
=
diary_cover_rate
,
tractate_cover_rate
=
tractate_cover_rate
,
answer_cover_rate
=
answer_cover_rate
,
diary_push_num
=
diary_push_num
,
tractate_push_num
=
tractate_push_num
,
answer_push_num
=
answer_push_num
,
all_receive_num
=
all_receive_num
)
print
(
instert_sql
)
# cursor.execute("set names 'UTF8'")
# cursor.execute("set names 'UTF8'")
# db = pymysql.connect(host='172.16.50.175', port=3306, user='doris', passwd='o5gbA27hXHHm',
# db = pymysql.connect(host='172.16.50.175', port=3306, user='doris', passwd='o5gbA27hXHHm',
# db='doris_olap')
# db='doris_olap')
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment