作为产品,你需要了解这些技术知识

11 评论 24199 浏览 236 收藏 17 分钟

小奈:表哥,为什么浏览器好像什么都知道的?我只是刚刚搜了下感冒怎么治,现在就弹出xx医院广告了。

大仁:当xx公司有了海量的数据,再根据这些数据进行精准营销(广告),他们每年都可以挣一大笔广告费。

大仁:广告虽然令人厌恶,但是数据推荐还是必要的,尤其是在信息大爆炸的时代,让信息更精准的出现在你手里。

DBA

小奈:表哥,公司最近好像在招聘DBA(数据库管理员),后端工程师不就可以管理数据库的么?数据库和后端有什么区别?数据库又是什么呢?

大仁:看来你们公司是大公司喔,一般小公司没有dba的岗位。

其实我们常说的后端工程师,他们也设计和管理数据库。但是如果数据到了一定量级,数据库性能调优、安全稳定就需要专业的dba。

数据库发展史

数据库是什么?

大数据背后的一块块基石,则是数据库。

数据库背后有好多故事,你可能不知道数据库,但是最近火的不行区块链,其实就是去中心化的分布式数据库。

说完高大上的区块链,我们开始回溯数据库的发展吧:

文件&文件系统

内存篮子

最开始是计算机的出现,那时候没有硬盘,只有内存,数据不会进行存储,一般只用于科技计算,计算完输出结果后,程序就撤出内存了。

后来技术发展,才有了硬盘、文件,在文件的基础上有了文件系统。文件系统可以满足数据存放和查找的需求。

数据库的诞生

文件系统作为数据库用了一段时间,当数据越来越多、规模越来越大后,数据查找特别麻烦。数据很容易重复(冗余)、占用存储空间多,数据结构化被迫推进。

文件系统和数据库的主要区别是?

简单举个例子,如图所示。

文件系统 vs 数据库

我们理解的数据和文件比较接近,例如文件1存放了玩具狗的数据,文件2存放了系铃铛的狗的数据。但其实玩具狗、玩具猫都是玩具,铃铛和玩具是可以拆分的。

数据库的结构化(玩具库架子),让数据不会重复,玩具狗可以系铃铛,也可以不系。

关系型数据库

数据库出现后,慢慢演化出关系型数据库,之后又演化成非关系型数据库。

我们首先介绍关系型数据库,什么是关系型数据库?

关系数据就是指数据之间是有关系的。像是上图中系铃铛的玩具狗,铃铛是属于(系在)玩具狗,那我把铃铛取下来放到玩具猫上可以么?可以,那关系就变了,铃铛在数据库里的记录变更为属于猫。

其实数据库有个(存储的关系规范)数据库范式,第一范式到到第五范式。玩具狗与铃铛的拆分只是满足了第一范式,越往下数据的压缩率就越高,相应的存储也会变慢(需要关系范式验证)。

结构化、共享访问的

数据库的除了是结构化存储、它还可以共享给程序访问。文件系统时候,程序a读取文件1(小明的玩具),数据库时代,所有程序只要有权限就可以访问所有数据库里的数据(大家的玩具共享)。

数据表长什么样

数据:例如玩具狗,他的各个字段:玩具名称、是否有耳朵、多少条腿等等,玩具狗的所有信息算是一条数据。

数据表:玩具表就像一个excel表格,里面存了所有玩具的数据。

玩具表

铃铛表

手机数据库:sqlite

网页和app的区别大家也都知道了,手机里有数据库,手机app的数据库和沙河一样,每个app都有自己仓库。

redis、memcache

不知道大家看视频的时候,是否喜欢快进,或者回放。

视频文件=几十万张图片(简单约等于),图片文件非常多。如果经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。

浏览器中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活,主要是视频文件。此时Memcached或许是你想要的,当你看一个视频来回拉动进度的时候,本地缓存很重要。

nosql

随着经济发展,村里小孩越来越多了(云计算的到来),玩具厂每年生产的玩具也多了。一个玩具库(单机)不够用了,所以要多建立几个公共玩具库,玩具存放在不同的玩具库(多台计算机)。

为了满足数据爆发式增长的存储需求,数据库部署在多台计算机上,也就是分布式数据库,但是分布式和单机不同的地方在于关系严格性上,分布式要求数据关系不那么严格(半结构化),主要是扩容和大数据存储,所以Nosql(not only sql)就诞生了。

常见的Nosql有mongodb、hbase等,这里以mongodb为例。

数据库连接

var mongoose = require(‘mongoose’)
var db = ‘mongodb://127.0.0.1/test’;
mongoose.connect(db, {
server: { poolSize: 20 }
}, function (err) {
if (err) {
console.log(‘connect to %s error:’, db, err.message)
process.exit(1)
} else {
console.log(‘connected’)
}
})

增删改查

var UserSchema = new Schema({
name: { type: String},
phone: { type: Number}
})
var User = mongoose.model(‘User’, UserSchema);
//create 增加
var user1 = new User();
user1.name = ‘jack1’;
user1.phone = 123456;
user1.save(function (err) {
if (err) {
console.log(err.message)
}
})
var user2 = new User();
user2.name = ‘jack2’;
user2.phone = 234567;
user2.save(function (err) {
if (err) {
console.log(err.message)
}
})
//查找
User.find(function (err, users) {
if (err) {
return console.error(err)
}else {
console.log(users)
}
})

分布式vs集群

很多人可能会混淆分布式和集群的概念,分布式更像是业务拆分到不同服务器上,集群则是多台服务器一起处理同个业务。比较复杂,后续再解释。

数据库图鉴

目前市面上常见的数据库品牌,主要有关系型和非关系型数据库两种。计算机世界发展快速,数据库就像一个大生态,愈发多态化多样化。

  • 关系型:Oracle、mysql、Postgresql
  • nosql: mongodb、hbase

数据库图鉴

区块链:去中心化的分布式数据库

回到区块链,大数据时代无隐私,区块链的去中心化能否保护隐私?

首先得介绍下去中心化,那么中心化又是什么?中心化就是我们常见的通讯模型,客户端需要以服务器获取数据(服务端和数据库交互),上次我们也讲过 输入url 后发生的事情,如果两个客户端之间互相知道彼此的地址,他们可以直接建立通讯。

p2p技术常用于资源共享、音视频等。

中心化vs去中心化

区块链本质上是一种去中心化的分布式数据库,该数据库是由一串使用密码学方法产生的数据区块按时间顺序有序连接而成,每个数据块中包含了一段时间内的全网产生的无法篡改的数据记录信息。

区块链技术让我们的隐私得到了一定程度上的保护。

失控

最后引用下凯文*凯里在《失控》里的一段话:

没有强制性的中心控制,次级单位具有资质的性质:次级单位之间批次高度连接,点对点间的影响通过网络形成了非线性因果关系。

计算机的高速发展,数据库不断进化,大数据越来越精确化,越来越智能,但用户也需要隐私,区块链这种去中心化、自组织的形态会不会成为新趋势?··

竞品数据如何找?

小奈:表哥,竞品分析、竞品数据如何找?

大仁:你可以找你们的数据产品经理啊,常见数据来源如下:

艾瑞咨询 http://data.iresearch.com.cn/

小奈:我们公司没有数据产品经理喔。

大仁:这,那你也可以自己试试啊。

小奈:我不会啊,我现在想要一个xx无人货架的城市分布图,要怎么做?

大仁:我示范下,xx无人货架官网好像有城市bd招聘信息喔,我把这些城市都录入到excel,再生成经纬度,然后就可以了,看下效果。

(可用python也可用数据分析平台)

xx无人货架城市分布图

商家、顾客和优惠券

小奈:数据产品经理好像挺神奇的耶。

大仁:是啊,你们公司是电商的对吧,假如你们老板要你们提高净利润(现有系统基础上),你们会怎么做?

来看下数据产品经理怎么做:

假设一瓶牛奶成本3元,定价6元时,50人会接受此价格。定价10元时,有30人会接受此价格,前者利润为(6-3)×50=150元,后者利润为(10-3)×30=210元。

但商家不想放弃另外20个支付意愿较低的消费者,于是决定用4元优惠券来吸引他们,同时对剩下那30个对价格不敏感的消费者依然维持10元的原价销售。

通过用户画像、优惠券来提高销售利润,这就是数据产品经理干的事之一,如何才能做到呢?

首先得有自己的BI系统,或者说得有用户画像。

什么是用户画像呢?

用户画像

有了用户画像,知道哪些用户对价格不敏感,哪些用户不反感车的广告,再进行推送,大大提高转化率,净利润得到有效增长。

那么用户标签体系该如何搭建?

业务需求促进标签体系建立,具体从老板战略目标、功能、业务。

用户画像标签体系

数据产品经理需要结合业务建立标签体系,背后真正的分析工作则由数据分析师来,数据分析该如何入门呢?

数据分析

数据分析可由数据产品经理+数据分析师一起完成,也可以数据产品经理+数据分析平台(bdp、神策等)。数据分析该如何入门和培养意识呢?

数据分析基础

想学习数据分析的同学不妨先从Excel开始,从熟悉excel的函数开始,掌握一些统计学基础。

  • 均值:平均值, =AVERAGE(B2:B19),B2:B19为数据范围;
  • 中位数:先将数据升序排列,若为数据个数为单数,则为中间那个数,若为偶数,则为取中间两个数据的平均值,=MEDIAN(B2:B19);
  • 众数:出现次数最多的数,=MODE(B2:B19);
  • 方差:用来计算每一个变量(观察值)与总体均数之间的差异,=VAR(B2:B19)
  • 标准差:方差开根号后为标准差,用于评估数据稳定性,=STDEV.S(B2:B19)
  • 标准误差:是描述对应的样本统计量抽样分布的离散程度及衡量对应样本统计量抽样误差,=STDEV(B2:B19)/SQRT(COUNTA(B2:B19))
  • 最大值:=MAX(B2:B19)
  • 最小值: =MIN(B2:B19)
  • 峰度:=KURT(B2:B19)
  • 偏度:=SKEW(B2:B19)

统计学基础

心理学

数据分析要结合心理。

数据分析要结合心理

大数据“杀熟”?

微博网友“x师傅”讲述,他经常通过某旅行服务网站订某个特定价格酒店的房间,长年价格在380元到400元左右。
偶然一次,通过前台他了解到,淡季的价格在300元上下。他用朋友的账号查询后发现,果然是300元;但用自己的账号去查,还是380元。

相信不同的人看完故事有不同的理解,从数据运营角度 可以看出用户分层、用户画像(标签化)、消费心理分析(优惠券能给用户占便宜的错觉)等的重要性;从用户角度可以发现生活处处有套路。

在我看来,技术的发展终会回归到善与恶的哲学问题。

 

作者:Jack,新零售数据PM,公众号:产品经理的技术课堂

本文由 @Jack 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Unsplash ,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 赞!!

    来自广东 回复
  2. 又更新啦,数据杀熟深有体会呀,某打车软件,不同手机下单价格居然不一样

    来自北京 回复
    1. 是的

      来自广东 回复
  3. 统计学基础

    回复
    1. 关注微信公众号(打少了),回复“统计学基础”可获得excel原文件

      来自广东 回复
  4. 回复“统计学基础”可获得excel原文件

    来自广东 回复
    1. 统计学基础

      回复
    2. 统计学基础

      回复
    3. 关注微信公众号(打少了),回复“统计学基础”可获得excel原文件

      来自广东 回复
    4. 你好👋,搜索公众号没有找到「产品经理的技术课堂」这个公众号,是改名了么?

      来自河北 回复
  5. 666

    来自江苏 回复