产品经理成长系列(7):功能&交互

1

通过前面几篇文章,我们已经弄清了做一款商业产品所需的前期准备工作,对要做的产品做出了价值和机会判断,接下来就要确定产品真正做成什么样子。

产品通过功能、界面、内容传递应用价值,用户也是通过这三点来触达和体验产品。所以狭义的产品经理日常执行工作,也是重点围绕这三点来展开。

分两篇来说,这一篇说功能与交互,下一篇说界面和内容。

之所以要把功能和交互放在一起,是因为这两者密不可分,用户要使用一项功能,就离不开人机交互。

我们从下面这张图看起。期望转型或已经成为产品经理的同学都应该见过这张图。

战略层,通过对外部环境(政策、经济、技术、市场)、内部资源优势及用户需求深入分析之后,确定了产品的目标和资源计划、运营计划。

范围层和结构层,即是本文讲述的重点。

框架层和表现层,放在下一篇文章中阐述。

2

我们设计一个产品,确定包含哪些功能(功能范围),这需要系统化思维、结构化思维的过程。

一个系统,包含了参与方、互动关系(生产、消费)和反馈链,反应到产品中,就是产品谁来用(用户角色),他们目标是什么,产生和消费了什么,资源如何流动?

比如电商平台,必要的参与方有平台、商家、顾客。

平台方要建设和运营平台,服务好商家和顾客,让他们在线上完成交易,把制定的交易规则落地到流程中,需招募商家,举办活动,充分满足商家的商品曝光和销售需求,还需要分析数据,观察商家、顾客的行为,追踪平台运营的各项指标。

商家需入驻平台,编辑商品和上架、接受咨询、处理订单、发货、进行售后服务、收款提现、对账等,还要做推广,维护客情。

顾客要搜索挑选商品、比价、下单、付款、收货、评价……

这里以电商的业务举例,一是假设大家对剁手熟悉,容易理解。换作其它产品也是用同样的系统化思维切入,按参与方分解子系统,梳理相互关系、资源流动与反馈链条,从而确定整个系统的功能范围。

在本系列第一篇,回顾了互联网产品历史和分类,每种类型的产品都可以用系统化思维来分解参与方角色,用功能来框定角色的责权利。

二是因为电商是一种典型的交易模型,从更高的维度来看,很多人类活动和产品模型都是广义交易模型,有生产方和消费方,过程中发生着信息、资金、物质的交换。

一个系统的实体要素,可以总结为五大项:人、财、物、活动、管理。活动是人、事物的核心事件和行为,比如发生在公司里的生产、研发、销售、市场、财务等经营活动,在学校里,主要活动有教、学、科研。

C 端用户也类似,用户面对自身、家庭、工作所进行的学习提升、娱乐休闲等,就是主要活动。管理,就是对前四者的计划、配置、监控、统计。一个产品的功能范围,就要覆盖这几个方面。

当某项活动足够复杂,或者信息密度低、流通不畅的时候,必然要诞生新的角色提供相应的服务,这就是中间商、中介。对于我们的启发有两点。

一是能不能发现成为一个中介的机会。比如新浪微博早期没有自建广告平台,「微博易」之类的中介公司乘势崛起,建设了中间平台,撮合广告主和大 V 的交易,盈利状况非常好。微信公众平台就比微博更聪明,在功能规划里包含了广告平台,没有把肥肉丢给外人。

二是能不能发现干掉中介的机会。这方面就不多说了。

回到一个功能的设计,即是围绕这五项展开。也是另一项重要的思维——结构化思维的用武之地。比如确定了参与方后,再细分参与方的角色、使用场景、行为流程……方法是确定每一层的分类方法不断细分下去,直到落实到可以在页面上所能进行操作的功能上。

如上图是对 B 类电商典型买家角色的细分。产品经理就是在不断界定产品的服务对象和服务环节,结合机会和自身优势,将某类对象的主要痛点充分地解决。

确定功能范围这项工作,最终的交付成果,可以是 Feature List、用户故事地图、用例图。贴几张图看一下。

3

最难同时也是最重要的是从全面、广泛的功能中确定核心功能。一个产品功能十分全面,不代表是一个好产品,也许是中庸的代名词。产品的功能复杂,也只能说明产品经理具备复杂化的能力,更有价值的是复杂化后回归简单的能力,当然,很多时候产品经理可能都不具备精确复杂化的能力……

产品的功能范围,可以体现一个产品经理对判断力的信心,没信心的时候,往往就追求大而全,指望能面面俱到,通过广撒网的方式不丢失用户。真正有信心的产品,核心的功能一定是较为单一明确的。

从最终产品交付来讲,一开始就试图设计一个完善的系统是不可能实现的。虽然能一定程度避免返工,但无法确保最终市场的胜利。尤其是从无到有这个阶段,速度很重要。

这方面可以和产品需求 KANO 模型进行关联。

4

结构层,简单谈信息架构。信息架构确定如何组织和展示内容、功能,用户通过功能的入口、操作的路径和可见的内容功能集合来感知信息架构是否合理。

这里面最重要的是同理心的运用。在我的经验中,最容易出问题的是菜单、导航、快捷方式、功能层级等按照非常严谨的方式组织起来,逻辑上完全正确、标准,但用户使用起来变扭,感觉不方便。

反观有些产品貌似杂乱,但用起来却很顺手,相信不少人都有过类似的体验。大数据里常举一个伪例是啤酒和尿布放一起,在这里倒可以作为以上道理的例子。

在需要的地方出现,这是信息架构和交互原则里最重要的一项。

5

再来说交互。交互就是人和机器的互动。

  • 人用眼睛看屏幕,屏幕有大有小;
  • 人用手指触摸屏幕,分左右手、拇指食指,可拖动、点按、长按、捏合;
  • 人操作鼠标,有单击、右击、双击、拖动、滚动。有移入、移出、按下、抬起。
  • 人可以操作键盘、发出语音指令……

人通过器官、设备向机器输入,机器输出过程和结果信息,这就是交互。交互设计就是对输入输出对象的格式、大小、操作方式、反馈方式的设计。

产品经理很重要的一项工作就是交互原型设计,有的公司会把这项工作细分出来,交给交互设计师。

产品经理如何快速入门交互原型设计?有一个极简单、直接的方法,它就是(画重点):

Google、Apple、Bootstrap 三篇关于交互和设计的文档,用三周时间,每篇看三遍以上。

  • 《Material Design 》:https://www.material.io/
  • 《Apple 人机界面指南》:https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/
  • 《Bootstrap 中文文档》:https://v3.bootcss.com/css/

因为交互设计里有太多的知识,比如布局的栅格系统、比如几十种典型的表单组件规范……

授人以鱼不如授人以渔,熟悉了上面三篇文档,不管是做交互原型,还是做界面设计,从思维、原理、方法上都有系统的把控。

(* 文中图片来源于互联网,版权归原作者所有)

来源于:微信公众号「关耳爷」

形形色色的数据库

形形色色的数据库

——一文读懂 OLTP 和 OLAP

1

为什么会有这么多类型的数据库?

因为满足不了用户使用数据的全部需求。

数据使用说起来很简单,概括起来就是「读、写」二字,但实际操作中,无比复杂。

数据业务在大的方向上有两类,分别是交易型业务和分析型业务。

你可能见过这两个词:OLTP 和 OLAP,基本上就是对应这两种情况。

数据库为满足业务需求,也分为两大类:交易型数据库和分析型数据库。

交易型数据库是什么?

交易型数据库用于业务系统数据的增、删、改、查。又称为操作型数据库、事务型数据库。

业务系统就是我们平常所能接触到的各种功能系统,如企业经营过程中使用的各种管理系统,包括设计、研发、制造、销售、人力、财务的各种系统;个人生活娱乐、工作中用到的各种应用,如电商、微博、微信等。都可以看成业务系统。

这些系统,需要把我们提交的信息实时保存下来,也需要把保存好的数据展示出来,按用户各种查询条件过滤数据,还可接受用户的修改、删除。

通常,完整的一段信息会被分开存储,如一篇文章,分成标题、正文、作者等部分,按固定的结构存储,这就叫「结构化存储」。这种存储方式,有很多优点,因为粒度细、结构规整,想局部、全部地读写数据都很方便,效率非常高。

交易型业务,有两个字非常重要,即「实时」。数据要实时地成功写入,快速地读取。想想看,发生了一笔充值或消费的操作,数据却没有被实时地记录,后果非常严重。

哪种数据库用来支持交易型业务?

适用于以上场景的数据库,主要是大家所熟知的关系型数据库,如 MySQL、Oracle、SQL Server、PostgreSQL 等。

它们共同特点是一个库里会有多张表,相当于一个 Excel 文件中有多个 Sheet 页。每张表会存储相同业务和结构的数据,如商品表,只存储和商品有关的信息,有商品名称、商品规格、商品描述……订单表,只存储和订单相关的信息,订单号、订单金额、下单时间……每张表有多个列(字段)存储这些数据,同 Excel 文件的列一样。

这些数据库,有的是商业公司开发的,有的是开源的。一般来说,商业数据库,会支持更多的特性,性能、稳定性也更高,有好的服务保障。关键行业应用的数据库,如银行,用的都是商业数据库。

开源数据库应对一般的使用场景也没有问题,还可以按需调优和改造。很多国产关系型数据库就是基于开源关系型数据库改造而来。

关系型数据库除了上述几种,还有一类轻量的产品,以 SQLite 为代表,非常适合手机等移动设备应用本地存储。

只有关系型数据库就够了吗?

关系型数据库太「规范」了,事先需要有大量的结构设计(即建模)工作,到用的时候需要知道结构才能取出所需要的数据。读写的速度也不行,因为它最终要存储在硬盘上,如果数据从内存中读取,速度可以保障,但丢失风险高。

我们的目的是用数据,可不想耗费精力在它的结构上,通过结构化对数据进行使用,只是一种方法和手段而已,并不是一定得把数据结构化后才能用。况且,有时候结构本身是数据的一部分,拆成行、列的存储形式用起来反而不方便。

有些数据,非常适合用 JSON 的结构存储,如下图。再把这种 JSON 文档存储在不同的「单元格」中,这种存储方式和上面关系型数据库的原理有本质的差别。实际上这种方式就是 NoSQL 数据库的一种类型,叫做文档数据库。代表产品是 MongoDB。用户可以事先不关注数据库结构,只需关注文档内部的结构,每个文档的内部结构都可以不同,这样一来更贴合人类「自然」的使用。

NoSQL 除了文档型数据库,还有键值型数据库、列式数据库、图数据库、时序数据库等。各自典型的代表有 Redis、HBase、Neo4j、InfluxDB 等。

NoSQL 数据库为什么也有这么多种类型?

简单来说,有两个原因,一是数据本身的特点;二是出于使用场景的需要。

一种新技术或新产品的出现,一定是为解决某个具体的痛点。

比如 Redis 是基于内存的键值数据库,键值这种存储结构,类似于查字典,查询速度非常快,数据又是在内存读取,比硬盘快很多倍。它的应用场景在于较稳定不变的数据的高频读取,不必每次都从关系型数据库中查询,所有一般应用在数据缓存的场景中。

时序数据,即按照固定频率不断生成的周期性数据,一般物联网设备、日志数据等都会呈现时序特征,这类数据有非常显著的特点,比如说插入频率较为稳定,不会像天猫双十一活动非常高的并发写入,写入的数据几乎不被更新,不会像订单数据那样进行状态更新,也很少会删除单条数据,一般是对过期数据批量化删除。时序数据偶尔丢失几条,不会对整体业务造成太大的影响。它们的某些维度,可以合并存入,降低存储成本,如某台设备的 ID、IP 地址、甚至是地区,可以是类似「合并单元格」的存储方式,这实际上就是时序数据的压缩技术,可以有效节省存储空间。针对以上特点进行优化设计,就产生了专门的时序数据库。

图数据库,和图片、图像完全没有关系。它擅长实体关系的存储和表达,如社交关系、投资关系等,关系型数据库也能做到,多个实体可以通过主外键来建立关联,多对多的关系需要产生一张中间表来关联,如果存在大量的这种数据,关系型数据库就会耗费大量的存储资源,关联查询和递归查询效率也会比较低。即使是同一实体,如果关系穿透路径较长时,有时也会低到不可用的地步。图数据库利用节点和边的结构,比较完美地解决了上述问题。

从 NoSQL 这里,就有了向分析型数据库过渡的倾向,这一点在列式数据库上有明显的体现。列式数据库典型的代表是 HBase,顾名思义,在物理存储上,列式数据库按列存储数据,最大的优势是获取「局部数据」更快,在数据统计分析的场景下,我们通常是按列进行操作,比如对价格一列进行求总和、平均值、最大值、最小值等(术语上称为「聚合查询」,是分析的基础),这一列数据物理上存储在一个区域,一次就可以读取,而如果是按行存储,需要读取每一行,才能从每一行数据中找到「价格」那个单元格,这就是它最大的优势,所以数据分析业务,即 OLAP,列式数据库有很高的性能。

这种列式存储的结构,也非常有利于分布式存储。天然适合大数据。2

分析型数据库有什么特点?

简单地说,分析型数据库,是面向分析的,而不是面向记录数据和更新数据(这是交易型数据库做的事情)。

分析就是通过对数据进行有逻辑的计算,得出新的数据,新的数据可以印证一定的假设。想要做好数据分析,要求分析型数据库有以下特点:

首先,它需要存储大量静态的数据,基于尽可能多的数据,才最有可能还原真实情况。其次,需要能很快地取出计算所需的数据,这对于快速得到计算结果至关重要。最后,取出的数据可以很快地得到聚合的结果。

上面已经说到,列式数据库在前两点上已经支持的不错了。

换个角度来说,分析就是尽可能多角度地看待某项定量数据。多角度,就是「维度」,定量数据,就是「度量」,分析的核心内容,围绕的就是这两个关键词。

而这两个关键词的背后,就是离散数据和连续数据,两者之间相互转化的主要手段,就是聚合查询。所以最后一点,能快速得到聚合的结果,也是分析型数据库的着力点之一。由此诞生了很多 OLAP 的引擎。我们耳熟能详的有:Hive、Presto、Impala、Clickhouse、Greenplum、Doris、Druid、TiDB。

这些大数据开源工具,很难严格地界定它们是数据库,还是 OLAP 引擎,还是交互式查询(即席查询)引擎,正是由于上面提到的最后一个要求。它们通过各种技术原理和方法,实现能够快速地进行维度构建、关联、转换和度量的计算,最终达到快速获得分析结果。

另一方面,分析型数据库还得考虑易用性,对于我们来说,目前最好用的分析方法还是属 SQL 语句(尽管对普通人还是很难)。对于存得多和取数快,偏偏是 NoSQL 的长项,如何让分析型数据库良好兼容 SQL,也是分析型数据库核心要面对的问题。

以上是「关耳爷」微信公众号的小输出,请笑纳。

数据存储那点事:数据湖和数据仓库

数据湖是个筐,什么都能往里装……物联网设备传感数据、网站、APP、社交媒体和业务系统的非结构化数据和结构化数据统统往里装。

数据仓库就不同了,既然是仓库,就需要事先规划,按品类分区,原料、半成品以及成品分开存储,以提高出入库、调拨的效率。

事实上确实如此,数据仓库(DW, Data Warehousing),通常分为:

  • 操作数据层(ODS, Operational Data Store)
  • 明细数据层( DWD, Data Warehouse Detail)
  • 汇总数据层(DWS , Data Warehouse Summary)
  • 应用数据层(ADS, Application Data Store)

另外还有一个公共维表层(DIM) 。

先不要被这些概念吓住,以后讲数据仓库建模的时候会详细说,先初步有个印象。

类比来看,这就是一个数据原材料——原材料半加工——半成品全加工——按需食用的过程。

  • 结构化的数据先原样存入 ODS 层。要用到数据采集、同步的技术,上篇文章有写到。这一步相当于把原材料拉进仓库里。操作数据层和数据湖有点像,但不包含半结构化、非结构化数据。
  • 明细层和汇总层,存的都是事实表,事实表又是个啥?就是反应了一项事实,比如谁什么时间花了多少钱购买了哪个商家的某个产品。这正好是一张数据表的各项字段。明细层存的是详细的事实数据,而汇总层,是按业务需求,做了一定的汇总后存放的数据,比如最近 7 天北京地区活跃的男性和女性用户数量,这是一行汇总数据,是根据明细数据汇总而成的数据。
  • 明细层的数据,是从 ODS 加工而来的,如何加工?最简单常见的就是 JOIN、UNION,写一些复杂的 SQL。这一步是半加工。
  • 我们建数据仓库,最终还是为数据分析(OLAP)、可视化等业务应用提供支撑。为了更好地调用、分析数据,数据是按主题分类的,就是后文要说的「面向主题」。
  • 公共维表层,存放用于分析时的那些维度,维度是衡量和观察业务的角度。比如省市区、年月日、用户等级等。

说清楚了数据仓库,再来回顾下数据湖和数据仓库最大的不同。

数据湖是一个庞大的混合存储库,一般是集中式的,可以存储所有结构化和非结构化数据。

而数据仓库,是一个「面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。」这是数据仓库之父Bill Inmon在 1991 年出版的《Building the Data Warehouse》一书对数据仓库所做的定义。

  • 面向主题,简单来说,就是按目的(比如分析的指标大类)把数据分类,比如电商的数据运营,会对商品、会员、销售、物流等各项指标分析,可以按以上分类把数据分表存放。
  • 集成的,意思是多个供应商(业务系统)的货(数据),我们都有序地存放在一个中央仓库(数据仓库)里,康师傅和统一的方便面,我们都放在方便面的货架里。
  • 相对稳定,这是区别于 OLTP 数据的特点,比如一条订单数据,状态会不断变化,有下单(待付款)、付款(待发货)、发货(待确认收货)……等一系列更新(UPDATE)过程,这就是不稳定,而存入数仓的数据,一般不会再更新。
  • 反应历史变化,是指要把反映过程的数据尽可能地存储下来,以便支撑更为精细的分析。这样一来存入的数据会很多,以上面的订单数据为例,在 OLTP 中只有一条记录,可能只有状态字段和时间字段更新,其它商品、用户字段不发生变化,而在数仓中,会把每次更新都存下来,这样会有多条数据。而「拉链表」就是优化这种存储场景的一种方法(以后详述),可以有效降低存储成本。

数据仓库这种「数据集合」,需要根据业务的需要,事先规划定义数据结构,因此它可以用传统的关系型数据库来搭建,因为要存储很多历史数据,所以要对单表的存储容量和性能有所要求,传统数据仓库很多都是用 Oracle 搭建的。

那么说数据仓库和大数据又有什么关系吗?数据仓库是种方法论,大数据能提供技术手段。比如 Hive,就是大数据里用来搭建数据仓库的好组件。

数据湖是不是就是一个简单的混合存储库?也不是。数据湖并不是存储方案,它的目的也是用于分析和指导决策。

  • 数据湖本身要支持运行不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习),不需要将数据移至另外的分析系统。
  • 数据湖要能够对数据进行爬网、编目和建立索引来让用户了解和使用湖中的数据。这项功能的难度很高,因为数据湖中的数据更为复杂。

数据仓库可以充当用户可信任的「单一信息源。」数据湖则是以更丰富的数据格式和类型,以及更全面的分析工具,提供更广泛价值挖掘的可能性。

对于当前大部分公司的数据应用水平来说,应先建立规范的数据仓库,这是对理念和方法的考验,而不是技术和手段(用关系型数据库就能建立)。数据湖,在更先进的技术屏蔽了复杂的存储、编目和底层分析工具后,将会是趋势,可逐步关注。

关耳爷

微信号wei-talk

理解大数据本应很简单:什么是数据集成和数据治理

本文是《极简大数据》系列第二篇。

不管出于什么目的,假设你要利用一批数据。那么你期望数据是什么样的?

答案很简单:全、快、对。

当然也可以换三个词:全域数据、实时数据、高质量数据。

我个人还是喜欢上面接地气的词。

如果你关注大数据,或者是做数据产品经理,应该了解数据集成和数据治理。

它们都是手段,最终为数据的使用而服务。

经过集成和治理后的数据,我们期望是能高效使用的、高质量的、高价值的数据。

实现高价值,前提条件是数据要全和快,这是对数据集成能力的要求。

数据的主要来源有三种,一是业务发生后系统产生的数据,存放在关系型数据库或 NoSQL 数据库中,比如在淘宝剁手下单,就会产生一条订单记录,谁什么时间在哪个店铺购买了一件什么商品,付款多少钱等。

第二类是系统服务环境产生的日志文件,如 Nginx、Apache 等对于 HTTP 请求和响应生成的记录文件,在浏览器里输入淘宝网址回车,淘宝的服务器就记下哪个 IP 在什么时间访问了淘宝,打开了哪几个页面,停留了多长时间,客户端有什么特性(如分辨率大小、浏览器版本、操作系统版本等)。

第三类是从客户端(浏览器、APP)采集到的用户行为日志文件,称为埋点日志,是程序员开发出来的一小段程序,可以采集到你做了什么动作,如点击商品加入购物车、切换到评论页面等,便于运营人员更好地分析用户如何使用应用。

当然数据还有更多的来源和格式,如传感器采集到的数据等,可以看这一篇

这三类数据都要能从源服务器上采集过来。有的数据是结构化的,如关系型数据库,有的是半结构化的,如 NoSQL 数据库、日志文件。更大的范围来说,图片、音频、视频等非结构化数据,也要能够支持采集。

这是对所能采集的数据类型的要求。在采集方式上,还要能支持全量、增量采集。

全量采集就是每次都完整拉一遍。缺点很明显,需要带宽流量和时间,不符合对快的要求;增量采集,程序要记得每次采到了哪里,采过的数据如果某些发生了变化,也要能感知,在下一次采集时把变化的数据带回来。

传统上,增量采集可以用时间戳、标志位、触发器等方式搞定,这需要数据源的配合,有时候,我们没有条件干涉数据源。

大数据技术下,对于关系型数据库,可以采集数据库的日志,再解析日志还原数据,实现增量的流式采集。如 MySQL 配置好 Binlog 日志,通过 Kafka 把日志实时发送过来。其它数据库也都有类似的方法。

对于关系型数据库,Apache 社区有开源组件 Sqoop,它主要用于在关系数据库和Hadoop之间传输数据。对于日志文件的采集,开源组件有 Flume、Logstash 等。

不仅多种类型的数据能够采集,还要速度快,讲究实时、准实时,达到秒级的同步。

数据时效性的价值不言而喻。数据一旦产生,就能感知和传输过来,与之前采集的数据增量合并形成最新最完整的数据。

只有足够快,才能不错过一些重要的分析和监控,许多实时的数据业务对此都有要求,如风控、推荐等。

数据量大,要求采集吞吐率高,而吞吐率和延迟(快慢)又是一对矛盾体,意思是说,大数据规模下,想要实时,是很有挑战的,例如天猫双 11 活动的大屏,看着只是几个数字在变,这背后的技术是相当硬核的。

再来说数据的质量问题。

高质量,代表数据不多、不少、不错、一致。

展开来说就是不重复冗余,没有其它数据混杂在内造成干扰;数据不残缺,行列记录都是完整的;标准一致,代表相同意义的数据字段类型、格式最好都能统一。

这些都是数据治理功能所要解决的问题,对已经是结构化的数据从库、表、字段不同级别进行标准和质量的监控、基于规则模型去校验和纠错等。

对应的就是数据标准管理和数据质量管理。

治理的另一个范围是数据安全,包含敏感和隐私数据不能泄露,数据不能被非法访问,对数据访问进行监控和审计。涉及到脱敏、数据权限和监控审计等功能。

在 DAMA(国际数据管理协会)中,对数据治理定义了九个方面的内容。

元数据也是很重要的一部分,元数据是指「关于数据的数据。」就是全方位、多角度地描述一份数据所形成的数据。就像简历之于人的关系,如果简历内容十分丰富,那我们就可以全面地了解这个人。

对于数据也是一样,从技术(数据格式、存储大小、更新时间……)、业务(描述什么业务的数据,属于哪个信息系统等……)、管理(谁在负责该数据、安全等级……)多个角度充分地描述数据,那我们就能对这个数据有清晰的了解和认识。

我们可以通过元数据快速查找和定位数据,也可以通过分析元数据,看清数据的来龙去脉,它产生的过程,以及它对别的数据的影响,这就是所谓的数据血缘。

总结来说,数据集成和数据治理的功能范围,就是为实现上述目标所框定的。

首先确保可用性和性能,真正能把多源异构的数据接入进来,保证传输的可靠性。

原始数据落地之后,需要对它进行有效的治理,通过元数据、数据标准、数据质量、数据安全等多种手段,确保数据是精确、完整、有效的,以便于下一步数据能更好地利用。

关于数据集成和治理,我们先明确目标和架构,以后的篇幅我会细讲里面每个小的模块。

关耳爷

微信号wei-talk

— 你也可能感兴趣 —

别被时代抛弃,读完这 6 点,你就明白了大数据

「大数据」这个热词,我们都有所耳闻。但究竟什么是大数据?大数据有什么特点?大数据能用来干什么?大家又语焉不详。

从技术角度讲,大数据当然很高深,但对于我们普通人来说,了解大数据的常识和原理其实很容易,读完以下 6 点,你就能明白大数据到底是什么。从而——不再只是被技术支配,还能在理解的情况下被支配:)

数据不只是数值

一提到数据,你是不是首先想到了「数字」或「数值」?那些存放在 Excel 表格中的,用于统计、分析的数字。

大数据中所说的数据,可不止是数字和数值这么简单,它包含电脑上所能存储的全部文件类型。如数据库、文本(文档)、图片、音频、视频等。

也就是说,所有能数字化的内容,全都是大数据存储、处理的对象。

什么样的数据才能称为大数据?

普通的数据肯定不能称得上大数据。几个硬盘就能装下,几台电脑短时间就能处理完的数据都不是大数据。

无法用一般技术存储、处理的数据,就称为大数据。

存储需要硬盘资源,处理需要 CPU 计算资源。单台计算机无论硬件性能有多强悍,总归是有限的,人类自古以来搞社会工程的经验非常丰富,如数万人、数百万人修建长城和金字塔,自然就想到了解决思路。

像搞人海战术一样搞「机海战术」,问题不就解决了吗?

「分布式」就是「机海战术」,蚂蚁咬大象。思路是有了,但技术实现方案相当有难度。

就拿存储来说,联合多台计算机去存储一份数据,该以什么格式存储,谁去指挥存储,谁去执行存储,任务如何分配,有的计算机存得快、有的存的慢,有的硬盘可能有故障,或存的过程正好断电了,该如何保障数据完整、没有错误、效率最高,又如何从多台电脑上读取文件……全都是问题。计算任务也面临类似问题。

Google 公司发表了三篇论文,出发点是如何利用大量廉价的低配置电脑(而非昂贵的服务器)去做海量数据的存储和运算,率先解决了分布式存储和计算的技术难题,奠定了大数据技术的基础,从此以后,大数据行业就开始发展了。

总结:大量联网的计算机,以某种协同算法,将硬盘和 CPU 联合起来,共同对多样化的数据进行存储和处理,称为大数据技术。

想想看什么情况会产生上面这种场景?

很简单,一种是周期性产生的数据量特别庞大,如 Facebook 2013 年时全球用户每天发布的照片数量达 3 亿 5 千万张,YouTube 2018 年时每分钟用户上传的视频时长达 400 小时;另一种是数据短时间内爆炸式地产生,像天猫 2016 年 双 11 大促活动,每秒钟产生 17.5 万笔订单数据。

这样规模的数据,称为海量数据,远远超过了单台设备存储和处理的物理极限。

数据从哪里产生?

目前世界上计算机存储的海量数据,都是来自于哪儿呢?大体上说,来自人的活动和机器的记录。细分为五类:

第一类是人在互联网上主动发布的数据,称为 Web 和社交媒体数据,如各种微博、博客、社交网站、电商网站中的评论内容。

第二类是机器对机器的数据,比如 RFID 数据、GPS 数据、智能仪表、监控记录数据以及其他各种传感器、监控器的数据。

第三类是系统的交易记录和行为日志数据,比如电信运营商的上网记录、信令数据,金融行业的交易记录、理财记录等,还有用户访问网站、使用 APP 系统所产生的各种行为日志。

第四类是生物计量学数据,指的是和人体识别相关的生物识别信息,如指纹、DNA、虹膜、视网膜、人脸、声音模式、笔迹等。

第五类是人工生成的数据:比如各种统计调查问卷、电子邮件、工作文档、纸质文件、扫描件、录音、摄像和电子病历等。

存储成本下降,硬件性能和网速提升,促成了大数据的繁荣。

以前存储大数据是成本和负担,现在能保留的数据尽量保留,数据成了企业、个人重要的资源和资产。

大数据有什么特点?

大数据著名的 4V 特征来了,这属于基础知识。海量(Volume )、多样(Variety)、高速(Velocity)、价值密度低(Value)。

海量和高速(实时)不细说。

多样,指的是数据类型和结构多样。数据类型在上文提到了,你能想到的所有格式的文件,都属于大数据的范畴。

结构,是指的数据的组织方式,有没有一定的规律。最有规律的,称为结构化数据,人类比较容易理解数据结构和关系,计算机也很容易读写和处理分析,像关系型数据库(MySQL、Oracle、PostgreSQL……),就是典型的结构化数据。数据有序地存储在「单元格」中,每一列都有固定的格式标准并代表相同的业务含义。

| 用户 | 商品 | 商品评价 | 物流评价 |

| —- | —————– | ——– | ——– |

| 李某 | iPhone 11 Pro Max | 好评 | 好评 |

结构化数据

结构性比结构化数据稍弱一些,但仍然保持有一定的结构的,我们称为半结构化数据。如 xml 文件和用于传输和交换数据的 json 文件等。一般是文本文件。

半结构化数据

结构化更弱的文件,如图片、视频等,以及自然语言,称为非结构化数据。但理论上非结构化数据是不存在的。

一上市我就下单了,到手后和想象的一样,屏幕贼细腻,面容识别更快了。物流小哥骑着火箭送到的。

非结构化数据

价值密度低,有点反直觉。但也容易理解,这是一个相对说法,数据量越大,无效数据也会越多,有价值的数据会稀释到整个数据池里。数据量级每上升一个等级,挖掘出的价值等比都有衰减。所以称为价值密度低。比如摄像头监控视频,连续录制,但关键的事件可能只需要其中的几分钟。

理论层面,还有一个对大数据特点的总结:那就是「全面而非抽样、效率而非精确、相关而非因果」。

传统统计学理论都是基于抽样数据建立的,这是成本所限。样本的质和量决定结果好坏。大数据利用分布式技术,可以采集和分析全量数据。这就可以比抽样数据揭示出更多的信息。

精确也是抽样数据分析所必须的,如果不够精确,放到全量数据中,偏差就会更大。而大数据是尽可能全量和实时分析,不追求个例的精确,更注重全量分析的效率。比如搜索引擎,能很快发现某时间段某地区的用户,搜索和「流感」相关关键词的趋势上升,可得出一个可能性的结论:某地区爆发了流感。

同样是由于更全面的数据,我们能发现【更多】的「因」导致的「果」,这就是所谓的相关。以往我们发现了一个现象,会假设有限的原因,再用数据验证,验证通过,因果链条就建立起来了。而大数据全量的分析,可能会找出更多影响结果的要素,它们和结果是相关的关系。

大数据能用来干什么?

你能想到最常用的一个大数据应用是什么?

答案是搜索引擎,像百度。它爬取全互联网的网页,将快照存储在服务器(相当于复制了网页内容,想象看数据量有多大),建立关键词和网页的索引关系,并排序,把排序结果也存储起来,在你输入关键词的时候,毫秒级地把相关网页排序结果展示出来。

大数据的第一个应用,就是搜索。

第二,大数据可以做画像,对一切实体做标签,最常见的是用户画像。原理是根据用户搜索的关键词、手机安装的 APP 清单、操作某应用的时段频次、手机的定位轨迹、历史的消费记录……融合起来清晰地描绘出用户的属性和行为特征,如年龄、性别、兴趣爱好、经济能力……贴上全方位的标签。这就是所谓的大数据比你自己更了解你。

第三,大数据还用来做推荐。像今日头条、抖音,根据你的行为,判断你的喜好,推荐相关信息流。电商购物,根据你的浏览、收藏和添加购物车记录,以及和你相同标签的人的购物记录,向你推荐可能感兴趣的商品。广告系统的核心也是推荐,你刚查了:「牙痛怎么办?」接下来在很多网站和应用中,你可能都会收到医院和药品广告。

第四个应用方向是风控。常见的有身份伪造、垃圾广告、虚假交易、黄牛秒杀、活动套利、数据泄露、垃圾注册、推广作弊、信用套现、账号盗用、盗卡交易、信息爬取等。互联网公司以多种方式补贴用户的推广费用,经常被黑客、羊毛党利用技术手段和专业设备套取。如何从大量正常的业务中识别这类非法操作,是大数据风控的重点。

另外比较传统的应用是分析和查询。共同之处是对延迟有较低的容忍度。传统小规模关系型数据库的查询响应一般会很快,也有比较成熟的优化方式,比如索引、缓存、读写分离、分库分表等。但大数据有非常大的不同,为了更快在海量数据中根据查询条件获得某值,可以把数据放入内存中,内存比硬盘读写更快,这就是内存计算。还设计了列式存储,预聚合等多种方法加快分析和查询的速度。预聚合就是提前把分析和查询结果处理好,等待被调用。

对于分析和查询,在本系列文章里,后面会介绍 OLAP 和交互式查询,感兴趣的同学请关注微信公众号「关耳爷」。

以上应用中,风控和推荐,属于实时计算的领域,数据连续地接入、处理、计算,像水流一样,不间断,也叫做流计算,保证业务的即时性。其它应用属于离线计算,所谓离线计算,就是可以分批次,周期性地处理历史数据,如当天处理前一天的数据,所以又称为批处理。在分析应用里,有实时也有离线。有的大数据厂商和产品,也把批流结合作为技术突破点或宣传卖点。

大数据和云计算、物联网、人工智能有什么关系?

云计算,核心是虚拟化技术。卖的是存储、计算和网络,你不知道按配置购买的主机是来自一台物理服务器分割出来的一部分,还是由多台服务器组合而来。云计算最大的优点是可以灵活地调整配置,就是所谓的弹性扩展。这是大数据所需要的一项重要功能,因为大数据技术的基础是分布式,所需要的内存、CPU、硬盘资源根据需求扩展,两者具有天然的亲密性。

云计算平台作为基础设施,对大数据平台起支撑作用,大数据平台利用资源管理的组件去请求和释放云计算平台的资源,完成数据处理。

物联网的智能设备、传感器,会产生很多数据,这类数据和业务系统的数据有不同的特征,比如写多读少,一般不会更新,存储频率较稳定,每条记录一般都带时间戳,对应的有专用的时序数据库的支持。物联网产生的数据存储在大数据平台中,大数据平台完成清洗、处理,经过离线计算供分析和数据可视化使用,也有实时计算,用于监测和预测设备的异常。

大数据平台为物联网提供数据功能服务和支撑。

人工智能重点是算法平台,在机器学习的编程框架支撑下,大数据平台中的数据样本供给各个算法做训练,不断调整算法,最后选出最优算法,以达到人类一些智能活动的标准,比如图像识别,能像人一样分出猫猫狗狗,识别出图片的文字;自然语言的语义分析,能像人一样听懂人类的语言,达到较准确的程度,这是人工智能的目标。

大数据像食物一样喂养人工智能的算法。使算法越来越精确、高效和低功耗。

Linux 内核漏洞简单解决方法:升级内核

最近阿里云安全中心提示 ECS 操作系统 Ubuntu 18.04 存在内核漏洞。如下图:

解决 Linux 内核漏洞,最简单的方式就是升级内核。方法如下:

一、检查可安裝的 Kernel 版本

apt-cache search linux-image-\*
apt-cache search linux-headers-\*

二、安装新 Kernel

apt-get install linux-image-X.X.X.X-generic
apt-get install linux-headers-X.X.X.X-generic

注意要安装相同版本的内核。

三、更新 initramfs image

update-initramfs -u -k all 

update-initramfs -u -k `uname -r`

四、更新 Grub

update-grub

更新后重启系统:

reboot

重启之后检查新内核是否生效:

uname -a

按以上步骤操作后,重新检查系统漏洞,均已消失。

《Ship It》翻译后记

用了一个月的时间,断断续续把《Ship It》这本 10 位硅谷产品经理攒出来的小册子翻译完了。回头看一遍内容,还挺有成就感的。看数据,也有一些朋友浏览过,感谢你们。

期间刷过 200 部电影讲解的短剧,也疯狂玩了几天王者荣耀,困难的时候想要放弃,但咬着牙往下坚持。之前也有过一次翻译的经历,想把 AdonisJs(一个 Node.js 的框架)的文档翻译成中文的,翻译了大概三分之二,放弃了。

自己原创的《产品经理成长系列》,还差最后四篇,接下来也会更新完。

写文章和翻译,目的是整理回顾和学习提升,但更重要的是为了突破不能坚持的缺点。

我是个缺乏耐心、韧性很差的人,过去一概如此。曾有过很好的想法,起步后遇到各种各样的障碍,很快就放弃。那些在当时还算比较新鲜的创意,如果其中有一项能百折不挠地执行下去,就算不能实现财务自由,估计每个月也能有稳定的被动收入,也许那样就可以不用早九晚五把大把的时间都搭在价值不是很高的事情上。

比如最简单的一个项目,中医资讯网站,我在 2008 年学中医的时候就做过一个网站「中医时代」,域名是 cmtime.com,这个域名现在在交易市场上标价 2 万块,可是我在迁移网站数据库失败后就把这个网站和域名都扔掉了。

反观另一个中医网站,叫做中医世家,也就是中医资讯和书籍内容,这里有它的统计数据:

https://tongji.baidu.com/web/1511277/overview/index?siteId=29927
图片

它的日 PV 惊人地达到了 15 万至 20 万,UV 在 4 万左右。这个规模的流量,放置百度联盟或 Google Adsense 广告,每个月的收入应该至少在3 万元以上。当时我的「中医时代」,并没有多少流量,但某医疗关键词曾一次被点出 3.6 美元的收入(注意是 2008 年时),可以想象,这个网站如果一直坚持做到今天,就相当于多了一个人的收入,这种类型的网站对技术和运营要求都不高。

虽然晚了,但我从今年年初开始,又拾起了过去的梦想,从头开始做一个叫经方派的中医网站,流量上升的相当稳定,这一次,要做的就是坚持。

回首那些我曾想做的网站,一个个都因小小的障碍就放弃了。生活中、工作中的很多事情都是同样的命运,开始比较有激情,很快就归于寂静了。

我在想,原因是什么。

首先是成本低,也许只花费了我数小时、几天或一周的时间,域名也就几十块钱,服务器一个月 10 美元,所以做半截扔了也不心疼。

再次就是短期见不到收益,精神和物质上都没有,遇到挫折,就撂过了事。

还有就是我太追求完美,不能容忍缺陷,总想一步到位干到最好再放出去,但自身的能力又有限,不能在界面、功能、内容上做到完美,抵挡不了挫败感,就逃避了。

另外就是我会同时进展多个项目,包括现在也是,自己的几个想法都在进行,还有和别人合作的事情也在推进,不能专注于一件事情上,精力和时间毕竟有限。

我还太爱追求新的技术,实现一个功能,常规的手段也能实现,但是如果我了解到一样新技术,就非想用新的来构建,像是为了学而用,并不是为了去解决问题。

本身我也只是一个产品经理,尽管也能做些设计和开发的工作,但确实不是强项,把一个想法,落地变成一个可用的、易用的产品,单枪匹马还是非常有挑战的,也就说与面对的难度相比,能力是不足的。

接下来,就需要专注一些、容忍不完美、以目标为导向、寻求一些专业人才的帮助,来克服半途而废的毛病。

这一次《Ship It》的翻译,算开了个好头,它并不完美,充其量就是能读通,可以明白什么意思,离「信达雅」的标准要求尚远。

于我而言,它是一个成品,标志着我完整地做完了一件事,过程中也尽可能地做到最好。

感谢这件事,也希望接下来我认准的事情,都能有始有终。

Ship It 10:如何发挥你的内在领导力

作者:Kenneth Berger,Slack 公司产品经理

翻译:关尔也

注:这里的 Leadership,直译是领导力,通过对全文的了解,更准确的意思是「内在张力」,包含内省、选择与判断,译文中仍以领导力来阐述。

几乎每个人都对自身的领导力没有足够的信心。人们想通过讲座、书籍和资讯来补足领导力的短板。 但 Kenneth Berger 解释说,领导力不是来自哪一本书,人本身并不缺少这项技能。大多数人具有限制性的信念,阻止了自身张力的形成,而他们自己并不知道这一点。

什么样的信念限制了你的潜力?

有些不习惯去思考的东西,拖了我们的后腿。

Kenneth 在多个著名的硅谷公司工作,收获了很多经验和教训,过程中学到了许多关于领导力的内容,我们将在下面去探讨。

在 Adobe 公司的经验教训:倾听你的内心

Kenneth 在 Adobe 公司工作了8年多。开始是一个充满激情的新人,很快就变成了一个「老油条」。他舒服地享受着自由的时间和可观的薪水,尽管觉得不应该停留在舒适区,但他还是一直留了下来。直到 8 年后,他被解雇了。

这里的关键教训是听从你的内心和直觉,对内心的感受保持警觉。这些感受可能有点让人不舒服,但它正是要告诉你去突破舒适区。这样做的回报很大,能让你以符合你价值观的方式工作,也意味着你是充实的。

在 YesGraph 公司的经验教训:你的工作不是争斗

Kenneth 和别人合伙创办了 YesGraph 公司。另一位合伙人有工程背景,而 Kenneth 具有设计背景。两个人很快就陷入激烈的争论中。谁对谁错看起来至关重要。事实上,创始人的工作不是为了证明自己对,而是要让公司成功。当创始人把权利斗争置于效率之上时,公司就遭受了巨大的损失。

你的工作不是赢得会议中的争论,而是关于更宏大的东西。当你放弃争斗中赢的良好感觉,而专注于更大的使命时,你就成为了真正的领导者。

在 Slack 公司的经验教训:认清本质

Kenneth 离开 YesGraph 公司后,他决心避免无谓的冲突,而是专注于埋头干活儿。他从一开始就相信 Slack 公司,相信他们所做的正在产生影响。但他并没有完全理解他的岗位职责。他认为这是传统的产品经理工作:做用户访谈,确定功能等。

Kenneth 没有意识到 Slack 是老板的「宝贝」,他不是被雇来写需求文档的,而是被请来好好培育这个「宝贝」,这有很大的不同。1 个月后,Kenneth 差点被老板解雇。他被要求做能证明自己价值的事。

突然间,工作充满了恐惧,显然哪里有些不对。3 个月后,Kenneth 的岗位被取消,他换了岗。Kenneth 为旧职位做了努力,又一次获得了职位。但是终归不行,9 个月后,Kenneth 永久地离开了 Slack 公司。

这里得到的教训是要弄清不良处境的根本原因。如果不弄清楚,它只会越变越大。一旦你定义错了一个问题,你就不可能找到解决它的正确方法。

自我价值选择

离开 Slack 公司后的一年内,Kenneth 觉得自己是个失败者,但他也没有一直停留在这种消极状态中。他选择了自己的方式,开始写作和演讲。Slack 公司的经历并非失败,而是一个了不起的教训。Kenneth 重新定义自己的观点,并拥抱新的可能性。

Kenneth 发现自己在产品工作中获得的经验教训,可以通过一对一的对话方式为人们提供价值。他意识到这种方式可能对某人的生活和事业造成影响时,他知道这就是他的选择,于是他成了一名教练。他找到了他的赛道。

当有人说「这就是唯一的路」时,不要接受它,而要挑战它。去尝试更多的可能。

领导力来自于内省

领导力不是你做了什么,而来自于你是怎么认为的。它们是关于这些:

当你倾听你的内心时,你就是内省和警觉的。

当你放下对错的执念后,你就是谦虚的。

当你精确定位问题时,你会变得敏感和勇敢。

当你选择更多视角时,你就是一个有远见的人。

Ship It 9:Facebook 产品管理的 9 个经验教训

作者:David Breger,Facebook 公司产品经理

翻译:关尔也

David Breger 将他在 Facebook 担任产品经理时所领悟到的 9 个宝贵经验分享出来,希望对新的产品经理更好地处理常见问题有所帮助。

1、为成功做好准备

产品经理往往具有数据和工程背景,这意味着他们通常具有逻辑分析能力和批判质疑精神。他们为失败做了充足的准备,但往往为成功没有做足准备。包括:如果产品成功,功能将如何设计?如果用户迅速增长,你能否应对?对职业规划也应采取同样的态度——你准备好跟上发展的节奏了吗?

2、坚定信念,轻装上阵

发自内心地相信,轻松灵活地坚持,这对于领导创新和多元化的团队至关重要。产品经理需要拥有坚定的信念,但也愿意在客观处境下改变方向。这是一种微妙但必不可少的平衡行为。

3、保持弹性

作为产品经理,会与开发工程师、UI 设计师和其他人组成团队。团队氛围可以采用预先计划好的方式。或根据人员的特点去调整,总之不是强加你的方式。不要期望别人都能适应你。

4、预测趋势

公司在产品层面做好准备之前,更重要的是增加市场份额和保持领先优势。预测规模如何扩大,比其他人更快达成。这是在竞争性产品领域中脱颖而出的关键方式——在趋势明朗之前,成为新事物的第一批专家之一。

5、想要了解用户,要有一支多样化的团队

Breger 表示,拥有一支多元化的团队对于了解用户和开发用户想要的产品至关重要。通过与具有不同背景的团队成员协作,可以引入了新的观点,从更多的见解中获益。

6、与互补的人在一起

让自己的周围有一群能够弥补你弱点的人,同时你也要能够弥补他人的弱点。这要求你诚实地对待自己的局限性,找出那些拥有你不具备的才能的人。

7、让聪明人参与项目,不要担心其背景

在分配任务时不要担心团队成员的背景,不要担心他是否具备足够的相关经验,而是要考察其是否足够聪明,聪明的人即使没有背景,也会从一个全新的角度来看待问题。产品的世界变化如此之快,需要不同背景的聪明人给出更好的解决方案。

8、适时扩充团队,确保成员为产品成功已做好准备

了解产品和功能所处的阶段,根据明确的战略和路线图,将合适的人员分配到正确的位置。确保他们有成就感,这样才能形成可扩展的团队,当团队没有获得所需资源或关注时,很容易受到挫折丢掉信心。

9、了解你在职业生涯中的真正目标,并尽力去实现

产品经理必须有职业目标和实现目标的动力。没有这种持续上一个台阶的想法,你就会停滞不前,你的团队也会如此。始终有职业目标,并关注实现这些目标的机会。个人的积极进取会感染其他成员,从而形成一个更有成效、更积极的团队。

Ship It 8:产品经理职业的演变

作者:Helen Sims,Airbnb 公司产品经理

翻译:关尔也

Airbnb 公司产品经理 Helen Sims 拥有超过六年的产品相关经验,她非常愿意分享职业生涯。从她的分享中我们可以了解产品经理职业演变的更完整的过程,了解各个阶段产品经理的工作重点,也能更加熟练地掌握其中的窍门。

50 年职业规划

在正式进入产品经理职业发展这个话题之前,Sims 首先要求你用 50 年的轨迹来描绘你的职业生涯。这样,你就可以确定你预期投入的时间和希望得到的结果——把时间线拉长,来看待投入产出比。如果没有目标,你可能会在职业生涯中迷失方向,不知道自己想要什么以及如何得到。

脑子里有了这个远期规划的框架后,我们来探讨产品经理之路的每个「阶梯」,深入研究其工作类型,并思考每个级别所需的东西。

入门级别

与其它岗位一样,大多数人都应该是从入门级开始。Sims 表示,入门级产品经理的作用都类似于助理,逐步了解组织架构和岗位职能。

入门级产品经理的工作需要学习和了解其它学科如何运作,并以这些理论解释产品所呈现的结果,以此来对现有产品进行迭代。请记住,理性思考的结果可能会有出入,人类感性的世界相当复杂,因此,要灵活地应用理论。

独挡一面级别

下一个阶段是「在没有人帮助和监督下开展工作」,你不再处于入门级别,这个级别已经是一名成熟的产品经理。

此时,你将从头到尾构建产品并分析解释大量数据,需要主动与团队沟通。传达愿景、鼓励团队、承担责任是这个阶段里非常重要的。

产品经理级别

这个级别里涉及到「帮助他人工作」。Sims 表示,你需要专注于吸引和留住优秀人才,提高团队整体效率。此外,你还必须精简管理流程,如解决问题和提供建议或反馈的流程。

Sims 说:「人们不会留下糟糕的工作,他们会留下糟糕的经理」,因此,请确保关注团队成员的问题和诉求。

管理级别

产品经理职业发展的最后一步是成为产品总裁。除了确定很多问题的主要目标,你还必须通过有效的领导力来提升团队的绩效。有效的领导力意味着你有明确的产品目标和理念,以及清晰的公司方向。如果你的团队没有统一的理念,那将会遇到致命的问题。

Sims 举了自己公司理念的例子供我们参考:「客户优先,商业其次,公司最后」。