0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

用戶畫像番外篇之隨筆三則

lviY_AI_shequ ? 來源:未知 ? 作者:李倩 ? 2018-10-04 10:27 ? 次閱讀

一則:開發(fā)上的一點記錄

文章說是生活隨筆,到不如說是對本周開發(fā)工作中的一些體會與思考的記錄。

這個專欄我想除了對知識上的一些記錄,以后也可以加入生活上的收獲。好記性不如爛筆頭,或許多年后再回看這些文章,回看進步的歷程,也是一件很有成就感的事情。

4月份換了工作去做數(shù)據(jù)開發(fā),重點項目還是做用戶畫像。開發(fā)時間排的很緊,平均每天要開發(fā)1~2個標簽。從和需求方確認標簽口徑,找標簽對應數(shù)據(jù)所在的表、字段定義、數(shù)據(jù)存儲結(jié)構(gòu),到寫標簽邏輯,上線驗證標簽正確性.... 時間簡直不夠,更不要說某些復雜口徑的一個標簽都要寫上百行的邏輯。

這周到現(xiàn)在又開發(fā)了6個標簽,寫了一個調(diào)度腳本,正在進行著一次數(shù)據(jù)邏輯調(diào)優(yōu)。下面挑兩個重要點的記錄一下:

1、任務調(diào)度腳本開發(fā)

畫像數(shù)據(jù)目前是寫在Spark SQL里面,通過每天定時任務調(diào)python腳本,來執(zhí)行Spark SQL。

但這樣的話開發(fā)效率比較低,一方面開發(fā)人員寫完Hive SQL腳本后,還需要在外面包一層spark才打包成可執(zhí)行腳本,另一個方面對于每一個打包后的python腳本都要寫一個crontab調(diào)度命令。

所以必須要優(yōu)化一下流程。優(yōu)化方式就是:

①開發(fā)人員對畫像標簽只需寫Hive SQL腳本,傳到服務器對應目錄下;

②通過一個python腳本,自動掃描目錄下的sql文件,加載并替換掉sql中的日期變量,并將替換日期后的腳本文件包上spark去執(zhí)行;

③每天crontab命令只需定時調(diào)度該python腳本即可,不需要在每新上一個標簽的Hive SQL邏輯,就上一條調(diào)度命令。

2、數(shù)據(jù)邏輯調(diào)優(yōu)

開發(fā)出的標簽很多了,但有的標簽邏輯復雜,需要做進一步調(diào)優(yōu),提高每日跑批作業(yè)的執(zhí)行效率,這里就與日志數(shù)據(jù)相關的標簽為例。

用戶近30日活躍時間段:這個口徑需要計算用戶近30天是在中午、下午、晚上哪個時間段訪問次數(shù)最多,這顯然是一個與日志數(shù)據(jù)相關的口徑。

而記錄用戶訪問行為的日志數(shù)據(jù)的情況是:

1、做了日期分區(qū),每日全量更新歷史數(shù)據(jù)。而且日志數(shù)據(jù)量很大,每天都有億級pv;

2、這就導致了在每天跑批時都需要從近30天的訪問日志中抽取數(shù)據(jù)計算,一次幾十億pv的計算,相當耗費計算資源了。

后來做的調(diào)優(yōu)方式是:

①首次刷數(shù)據(jù)時刷近30日用戶在每個時間段的活躍次數(shù),做倒排序找出用戶活躍時間段;

②后續(xù)每天跑批任務時,只需計算前一天用戶訪問各時間段對應的次數(shù)(不通過日期分區(qū)字段找,對用戶訪問時間做日期格式處理后通過訪問日期來找),并與歷史數(shù)據(jù)做加總,找出其活躍時間段;

③這樣計算就免去了計算近30日的日志數(shù)據(jù),僅需計算前一天的數(shù)據(jù)即可。

近期在不斷補充學習新知識,spark要搞起來了、shell命令要用熟起來了。都要投入精力搞。

寫到這會已經(jīng)周五早上53分了,過幾個小時還要繼續(xù)投入。這周的一些想法先總結(jié)到這里。

我覺得生活也好、工作也好,或許就是在這么一天天的貌似不起眼的積累中,不斷進步的。

作為一個多年的米粉,記得那次看紅米note3發(fā)布會的末尾,被他文案中樸實、真誠的語句吸引了。在這里想用那句臺詞做結(jié)“我所有的向往”。向往著在每一個看似普通的日子中精彩生活、不斷進步、奔騰向前。

二則:自動發(fā)送郵件腳本

這段時間在對流量部門提供數(shù)據(jù)方面的支持,把每天自動發(fā)送郵件的腳本講一講吧,雖然很基礎,好像沒什么可以說的 ...

在日常運營工作中,數(shù)據(jù)提取人員面對眾多業(yè)務方的數(shù)據(jù)需求,往往應接不暇。他們需要一套自動化的程序去幫助他們完成一些周期性和重復性較強的工作。

為了減少重復性工作,數(shù)據(jù)提取人員可以使用Python自動化腳本跑定時任務。將寫好的HQL語句放入Python腳本中,并在linux服務器上設置crontab定時調(diào)度任務,保證每天定時自動從數(shù)據(jù)倉庫提取數(shù)據(jù)完畢后,將結(jié)果集寫到excel中并發(fā)送郵件到數(shù)據(jù)需求方的郵箱。Python腳本代碼執(zhí)行如下

#coding: utf-8 search_data = """ 創(chuàng)建臨時表查詢昨日運營數(shù)據(jù)""" report_data = ''' select * from 上一步創(chuàng)建的臨時表 ''' import psycopg2 import smtplib import os import openpyxl import datetime from impala.dbapi import connect from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage import pyhs2 # HIVE環(huán)境 wb = openpyxl.load_workbook('/home/path/username/daily_report_v1.xlsx') # 打開服務器存儲路徑下的excel文件 # 連接HIVE環(huán)境 impala_conn = pyhs2.connect(host='10.xx.xx.xx', port=xxx, authMechanism="PLAIN", user='username', password='password', database='dwd') seo_h5_1 = impala_conn.cursor() h5_result = impala_conn.cursor() seo_h5_1.execute('''SET mapreduce.job.queuename=root.yydata''') seo_h5_1.execute(search_data) # 執(zhí)行HQL語句 # 取出來數(shù)據(jù) h5_result.execute(report_data) # 取出來數(shù)據(jù) h5_result = h5_result.fetchall() #放到sheet里面去 sheet = wb.get_sheet_by_name('daily_report') #daily_report表 #清除歷史數(shù)據(jù) for i in range(2,sheet.max_row + 1 ): for j in range(1,sheet.max_column + 1 ): sheet.cell(row=i,column=j).value = '' #填充結(jié)果數(shù)據(jù) for i in range(2,len(h5_result) + 2 ): for j in range(1,len(h5_result[i-2]) + 1 ): sheet.cell(row=i,column=j).value = h5_result[i-2][j-1] #關閉HIVE鏈接 impala_conn.close() wb.save('/home/path/usernamet/daily_report_v1.xlsx') # 保存excel文件 receiver = 'receiver_email@xxx.com' # 收件人郵箱地址 date_str = datetime.datetime.strftime(datetime.date.today()-datetime.timedelta(days=1),'%m%d') mail_txt = """ Dear All, 附件是運營日報,請查收。 """ msgRoot = MIMEMultipart('mixed') msgRoot['Subject'] = unicode(u'日報-%s' % date_str) #添加日期 msgRoot['From'] = 'sender_email@xxx.com' msgRoot['To'] = receiver msgRoot["Accept-Language"]="zh-CN" msgRoot["Accept-Charset"]="ISO-8859-1,utf-8" msg = MIMEText(mail_txt,'plain','utf-8') msgRoot.attach(msg) att = MIMEText(open('/home/path/usernamet/daily_report_v1.xlsx', 'rb').read(), 'base64', 'utf-8') att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'attachment; filename="日報2017%s.xlsx"' % date_str msgRoot.attach(att) smtp = smtplib.SMTP() smtp.connect('mail.address.com') smtp.login('sender_email@xxx.com', 'sender_password') for k in receiver.split(','): smtp.sendmail('receiver_email@xxx.com', k, msgRoot.as_string()) smtp.quit()

將上面的python腳本后放入連接到數(shù)據(jù)倉庫的服務器上,在linux下設置crontab調(diào)度語句,如“10 16 * * * python /home/path/username/auto_email.py”表示每天下午16點10分執(zhí)行/home/ path/username/路徑下的auto_email.py文件。

執(zhí)行代碼后,程序?qū)⒆詣訄?zhí)行SQL語句連接到數(shù)據(jù)庫提取數(shù)據(jù),提數(shù)完畢后將數(shù)據(jù)寫入excel文件中,并自動發(fā)送郵件到數(shù)據(jù)需求方郵箱。

這樣通過定時調(diào)度的腳本即可解決業(yè)務方每天對日報數(shù)據(jù)的需求,將數(shù)據(jù)提取人員從繁重的機械性勞動中解放出來。

三則:一次對渠道流量異常情況的分析

流量部門目前對APP線上推廣需要支付較多的渠道推廣費用,但不同渠道帶來的用戶質(zhì)量、活躍度、消費能力參差不齊

為了支持流量部門高效推廣,減少對垃圾渠道的投放費用。需要對部分投放費用較高,但是營收、活躍度轉(zhuǎn)化較低的渠道需要重點分析

對于渠道流量進行分析的幾個關鍵指標:

根據(jù)AARRR模型,從獲取用戶到用戶付費環(huán)節(jié)依次遞進的關系,這里主要從激活、留存、付費三個環(huán)節(jié)展開

1)激活環(huán)節(jié)

①激活注冊轉(zhuǎn)化率:用戶從應用商店下載APP后,不一定都會有注冊行為。對于刷下載量、用戶為搶紅包、賺積分等目的而進行的下載,后續(xù)的注冊量會很低。對于一些問題渠道來說,他的激活注冊轉(zhuǎn)化率(注冊量/激活量)會遠低于正常渠道;

②激活時間:在某些特殊情況下(如部門為沖KPI而刷下載量),一些問題渠道的激活時間會存在問題。正常來說,用戶激活時間也符合人的正常作息時間段,而異常渠道因為存在機器刷量的情況,激活時間段分布也就沒有那么規(guī)律了,下圖就是一個栗子:

橙色和黃色線對應的渠道的激活時間分布存在一些不正常。

2)留存環(huán)節(jié)

③7日留存率:對正常渠道來說,該渠道的用戶下載APP是為了使用,后續(xù)的留存會多一些。而對于刷量、刷積分下載、搶紅包下載等目的而下載的來說,下載激活后可能接著就卸載掉或再不使用了。從7日留存率這個指標也能看出一些問題渠道;

④訪問深度:這里就指PV/UV了,對于渠道來說PV只該渠道一定時間段內(nèi)的用戶總訪問量,UV只該時間段內(nèi)訪問用戶數(shù),相除代表該渠道每個用戶平均訪問頁面數(shù)。正常來說,用戶下載了APP即時不注冊也是為了使用或查看資訊等目的,因此訪問深度不會很低。而問題渠道的用戶根本目的不是為了使用產(chǎn)品,因此這些渠道的訪問深度就很低了;

3)付費環(huán)節(jié)

⑤用戶獲客成本:對正常渠道來說,獲取的付費用戶量按照AARRR這個模型一層層下來,付費用戶數(shù)/激活用戶數(shù)(即付費用戶獲取比例)會在一個正常邏輯區(qū)間內(nèi)。而對于垃圾渠道來說,激活用戶人數(shù)可能會很多,但是付費用戶人數(shù)很少,就會導致付費用戶獲取比例極低,用戶獲取成本高的驚人....

現(xiàn)在刷下載的供應商很多,在流量分析時候?qū)λ⑾螺d的供應商進行一些調(diào)研,了解他們的刷量模式和報價也是對分析很有幫助的。這會刷量不僅能刷激活、還能刷注冊、刷留存、刷好評....反正我們分析什么指標,他們都能刷這些指標的值....

但是垃圾渠道就是垃圾渠道,再怎么刷還是能分析出問題和破綻的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)

    關注

    8

    文章

    6715

    瀏覽量

    88309
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84077
  • 用戶畫像
    +關注

    關注

    0

    文章

    7

    瀏覽量

    2373

原文標題:用戶畫像番外篇之隨筆三則

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    番外篇】WSL2下的usb設備使用

    番外篇】WSL2下的usb設備使用
    的頭像 發(fā)表于 06-13 09:06 ?1887次閱讀

    【小e開發(fā)板試用體驗】『流逝』番外篇 小e的性價比怎么樣?

    ` 本帖最后由 電子工程師2014 于 2016-1-5 23:43 編輯 寫番外篇還是流逝的第一次,用了兩天板子,看了下器件,大家都是做電子的,什么東西。什么價格大家心里都有數(shù),要說小e
    發(fā)表于 01-05 23:25

    【MAX32660試用體驗】【番外篇】+基于MAXIM MAX32660的高集成度高速收發(fā)一體光模塊的設計構(gòu)思

    。基本原理圖:以上是構(gòu)思部分,能否具備可行性得經(jīng)過論證和實驗~~關于MAX32660的使用番外篇,暫時那就先到這里吧謝謝@美麗心琴的大力支持及MAXIM的好產(chǎn)品`
    發(fā)表于 02-28 22:16

    flex的布局隨筆

    flex布局隨筆
    發(fā)表于 05-07 13:42

    Android NDK編程--- JNI中類參數(shù)的傳遞與返回

    前言代碼往往在不斷寫的情況下學習到新的東西,本以為NDK程序這塊出完番外篇后應該就不用再出了,結(jié)果在使用過程中還是會有新的東西加入,所以又有了今天這一篇。往期回顧因為這篇的代碼也是在原來...
    發(fā)表于 07-02 07:03

    STM32學習隨筆

    STM32學習隨筆跟隨【洋桃電子】STM32學習入門100步學習,總結(jié)內(nèi)容不全,歡迎指正。
    發(fā)表于 07-23 08:12

    如何將IAP與APP合并為一個燒錄文件

    之前寫過一個小專題是基于STM32有關IAP的應用的專題,現(xiàn)在新增一個番外篇是關于如何將IAP與APP合并為一個燒錄文件及相關實例。
    發(fā)表于 12-10 07:29

    【飛騰派4G版免費試用】番外篇-來自飛騰技術廣州有限公司總經(jīng)理在全國行業(yè)職業(yè)技能競賽開幕式上的介紹

    的關系相當大也是本次發(fā)這個番外篇的原因,做為一名國芯愛好者,這種事可不能隨意缺席呀 這是一個全國行業(yè)職業(yè)技能競賽-工業(yè)信創(chuàng)領域的全國總決賽 所用的開發(fā)設備便是我們此次試用計劃所用的飛騰派開發(fā)板,飛騰
    發(fā)表于 12-09 15:57

    Labview運算

    Labview運算,很好的Labview資料,快來下載學習吧。
    發(fā)表于 04-19 10:56 ?0次下載

    基于卡方檢驗和SVM的用戶搜索畫像技術研究

    基于用戶畫像的廣告定向技術普遍應用于品牌展示和精準競價廣告,然而現(xiàn)有的用戶搜索畫像技術存在著特征維度大、矩陣稀疏的問題。針對這一問題,本文采用卡方檢驗和線性核支持向量機相結(jié)合的方法,首
    發(fā)表于 12-21 15:23 ?0次下載
    基于卡方檢驗和SVM的<b class='flag-5'>用戶</b>搜索<b class='flag-5'>畫像</b>技術研究

    SpeakIn發(fā)布用戶語音畫像識別和聲紋識別小程序插件

    SpeakIn發(fā)布行業(yè)首個用戶語音畫像識別和聲紋識別的小程序插件,即插即用且永久免費,將能力免費開放給更多微信小程序生態(tài)下的企業(yè)和個人開發(fā)者。
    的頭像 發(fā)表于 04-28 11:13 ?6987次閱讀
    SpeakIn發(fā)布<b class='flag-5'>用戶</b>語音<b class='flag-5'>畫像</b>識別和聲紋識別小程序插件

    什么是用戶畫像?用戶畫像的四階段

    用戶畫像的焦點工作就是為用戶打“標簽”,而一個標簽通常是人為規(guī)定的高度精煉的特征標識,如年齡、性別、地域、用戶偏好等,最后將用戶的所有標簽綜
    的頭像 發(fā)表于 09-14 15:39 ?9496次閱讀

    大數(shù)據(jù)用戶畫像的推薦模式與優(yōu)缺點

    基于用戶畫像,根據(jù)每個用戶使用路徑與個人偏好推薦內(nèi)容已經(jīng)成為內(nèi)容類產(chǎn)品常見的功能模式,也是提升活躍度與轉(zhuǎn)化率最有效的方式之一。
    的頭像 發(fā)表于 05-05 19:50 ?5955次閱讀
    大數(shù)據(jù)<b class='flag-5'>用戶</b><b class='flag-5'>畫像</b>的推薦模式與優(yōu)缺點

    如何構(gòu)建用戶畫像系統(tǒng)?

    喬巴:我是一枚半路轉(zhuǎn)行的數(shù)據(jù)產(chǎn)品經(jīng)理,現(xiàn)在大數(shù)據(jù)火熱,所在公司想搭建畫像系統(tǒng),但自己對用戶畫像沒有概念,對畫像系統(tǒng)是怎樣的架構(gòu),有哪些常見的功能等事項全然不知,真是困煞我也! ? 索隆
    的頭像 發(fā)表于 02-04 13:45 ?2657次閱讀
    如何構(gòu)建<b class='flag-5'>用戶</b><b class='flag-5'>畫像</b>系統(tǒng)?

    用戶畫像分析就是基于大量的數(shù)據(jù)

    假如某個電商平臺需要做個活動給不同的層次的用戶發(fā)放不同的券, 那么我們就要利用用戶畫像用戶進行劃分, 比如劃分成不同的付費的活躍度的用戶,
    的頭像 發(fā)表于 03-12 15:24 ?2055次閱讀