分布分析导出

This commit is contained in:
wuaho 2021-09-24 12:11:38 +08:00
parent b97ce1a77a
commit f8c48df43b
2 changed files with 23 additions and 2 deletions

View File

@ -587,6 +587,27 @@ async def scatter_model_sql(
data = analysis.scatter_model_sql()
return schemas.Msg(code=0, msg='ok', data=[data])
@router.post("/scatter_model_export")
async def retention_model_export(request: Request,
game: str,
ckdb: CKDrive = Depends(get_ck_db),
analysis: BehaviorAnalysis = Depends(BehaviorAnalysis),
current_user: schemas.UserDB = Depends(deps.get_current_user)
):
""" 分布分析 数据导出"""
await analysis.init(data_where=current_user.data_where)
data = analysis.scatter_model_sql()
file_name = quote(f'分布分析.xlsx')
mime = mimetypes.guess_type(file_name)[0]
sql = data['sql']
df = await ckdb.query_dataframe(sql)
df_to_stream = DfToStream((df, '分布分析'))
with df_to_stream as d:
export = d.to_stream()
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
@router.post("/scatter_model")
async def scatter_model(

View File

@ -593,7 +593,7 @@ ORDER BY level
event = self.events[0]
event_name = event['eventName']
analysis = event['analysis']
e_account_id_col = getattr(self.event_tbl.c, '#account_id')
e_account_id_col = getattr(self.event_tbl.c, '#account_id').label('uid')
u_account_id_col = getattr(self.user_tbl.c, '#account_id')
event_name_col = getattr(self.event_tbl.c, '#event_name')
event_time_col = getattr(self.event_tbl.c, '#event_time').label('date')
@ -641,7 +641,7 @@ ORDER BY level
elif event.get('quota'):
event_attr_col = getattr(self.event_tbl.c, event['quota'])
qry = sa.select(event_date_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
qry = sa.select(event_date_col,e_account_id_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
.where(and_(*where)) \
.group_by(event_date_col, *self.groupby, e_account_id_col)
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))