Quellcode durchsuchen

添加数据统计脚本

ck vor 4 Jahren
Ursprung
Commit
fe81fa8df8

+ 0 - 0
app/etl/__init__.py


+ 0 - 0
app/etl/data_stat_daily.py


+ 13 - 0
app/etl/data_stat_hourly.py

@@ -0,0 +1,13 @@
+from model.DateUtils import DateUtils
+from model.log import logger
+from model.DingTalkUtils import DingTalkUtils
+from data_stat_task import *
+log=logger()
+dt = DateUtils()
+
+
+if __name__ == '__main__':
+    today = dt.get_n_days()
+    dw_daily_channel(today)
+
+

+ 54 - 0
app/etl/data_stat_task.py

@@ -0,0 +1,54 @@
+from model.DataBaseUtils import MysqlUtils,CkUtils
+from model.DateUtils import DateUtils
+from model.log import logger
+log=logger()
+db = MysqlUtils()
+ck = CkUtils()
+dt = DateUtils()
+from datetime import datetime
+
+
+def dw_daily_channel(dt):
+    sql = """select '{0}' as dt,c.channel as channel,pitcher,stage,order_count,order_user,order_amount,first_order_count,first_order_user,first_order_amount,
+          view_count,click_count, cost
+
+           from
+    (select channel,order_count,order_user,order_amount,first_order_count,first_order_user,first_order_amount from
+    (select channel,count(1) as order_count,count(distinct user_id) as order_user,sum(amount) as order_amount from order
+    where date='{0}'
+    group by channel) a
+        left outer JOIN
+
+    (select channel,count(1) as first_order_count,
+    count(distinct user_id) as first_order_user,
+    sum(amount) as first_order_amount from order
+     where formatDateTime(reg_time,'%Y-%m-%d')='{0}' and date ='{0}'
+     group by channel )  b
+        on a.channel=b.channel) p
+
+      right OUTER JOIN
+
+    ( select channel,pitcher,stage,sum(cost) as cost, sum(view_count) as view_count,sum(valid_click_count) as click_count from
+    (select account_id,cost,view_count,valid_click_count  from daily_qq where date='{0}'
+     union all
+     select account_id,cost,view_count,valid_click_count from daily_vx where date='{0}') h
+    right outer join
+    (select account_id,name as channel,stage,pitcher from advertiser_vx_qq where name!='') j on h.account_id=j.account_id
+        group by channel,stage,pitcher) c
+        on p.channel=c.channel""".format(dt)
+
+    data = ck.execute(sql)
+
+    data1 = []
+    for i in data:
+        li = list(i)
+        li[6] = int(li[6])
+        li[9] = int(li[9])
+        data1.append(tuple(li))
+
+    insert_sql = "insert into dw_daily_channel values {}".format(str(data1)[1:-1])
+    # print(insert_sql)
+    db.quchen_text.execute(insert_sql)
+
+
+

+ 0 - 0
app/moniter/__init__.py


+ 2 - 1
model/DataBaseUtils.py

@@ -57,7 +57,8 @@ class CkUtils:
                            send_receive_timeout=5)
 
     def execute(self, sql):
-        self.client.execute(sql)
+
+        return self.client.execute(sql)
 
 
     def insertMany(self,table,col,data):