产品经理要不要懂技术的问题一直有很多的观点和讨论,一般来讲产品懂技术是有一定的优势,但不是充分必要条件。而数据产品是B端更偏底层的工种,有一定技术基础后,开展工作更顺利。找工作的经历里面,有被问到过你对Hadoop生态里面的组件了解多少啊?你们可视化报表数据查询是用的什么查询引擎?这样的问题。作为数据产品经理,对数据生产的上下游流程、大数据专业名词术语至少要有个理解。
最初了解这次名词术语是通过百度、知乎上的文章或回答,但是很多文章都是从技术角度解释,缺少和应用场景的结合,看过一遍之后没多久就忘记了。后来工作过程接触很多偏底层开发工具的大数据产品,对这些术语有了产品角度的理解,结合一个典型的大数据技术架构,和应用场景,来解释相关术语,分享给“想懂技术”的产品同学。
场景一、业务系统交互都需要依赖于数据库来进行数据存储,常见数据库有:
1.关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。常用关系型数据库有:Oracle,SQLServer,DB2,Mysql,TiDB
TiDB:是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品
2.非关系型数据库
NoSQL最常见的解释是“non-relational”,“NotOnlySQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性,常见的有四种数据存储类型:
键值对存储(key-value),如Redis,整个数据库系统加载是在内存中进行,每秒可以进行10W次的读写操作,最常用来做缓存使用,但是价格一般比较贵。
文档存储(documentstore),典型的是MongoDB,MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案,常用来存储用户点评文本、文档文件
基于列的数据库(column-oriented),Hbase,基于列的数据库会将每一列分开单独存放,当查找一个数量较小的列的时候其查找速度是很快的。
图形数据库(graphdatabase),应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系,常见的图形数据库有Neo4j,HugeGraph,应用场景以数据血缘关系、知识图谱为主。
场景二、产品功能上线后,老板问你新版本功能上线后用户使用情况如何?你可能有分析师帮忙输出分析报告、或者有现成的数据产品可以直接查数据,你知道数据是怎么来的吗?
要拿到产品上线后的结果数据,首先要有埋点,否则是巧妇难为无米之炊,产品埋点后由Nginx服务器进行日志数据采集,再由Flume进行数据文件转发,到其他存储器,比如HDFS、HBASE,或Kafka,经过离线或实时ETL后,才可以被查询使用。数据采集环节主要用到:
3.Nginx
Nginx是一个