第2章 数据化运营的数据来源

“巧妇难为无米之炊”,对于数据工作者来说数据便是所有数据工作的基础。企业的数据化运营的数据来源复杂,从数据结构类型上来讲,包括结构化和非结构化数据;从数据来源方式来分,既有导出的数据文件、数据库等常见来源,又有流式、API等复杂系统接口和外部资源数据。

本章将从数据类型和数据来源两个方面介绍数据化运营的数据来源,在第三部分我们还会简单介绍有关读取非结构化数据集的知识,包括网页抓取数据、文本、图像、视频、语音等,用来做数据化的整体数据资源的整合。

2.1 数据化运营的数据来源类型

数据化运营的数据来源类型包括数据文件、数据库、API、流式数据、外部公开数据和其他来源等。

2.1.1 数据文件

数据文件就是存储数据的文件,广义上,任何文件中存储的信息都可以称为数据;狭义上,数据文件中以数字或文本形式存储的结构化的数据记录才是数据。本节的数据指的是后者。

结构化数据文件大多来源于数据库,例如从MySQL中导出2017-01-04到2017-10-21的订单明细数据并存储为csv文件;也有来源于系统或工具的工作过程或返回结果,例如Windows版本的Tesseract文字识别后的结果会存储到txt文本文件中。

数据文件常见的数据格式类型包括txt、csv、tsv、xls、xlsx等,也包括xml、html、doc、sql等非常规数据格式。文件格式取决于数据处理需求,也受限于来源系统的导出格式。图2-1所示为MySQL 5.0版本可以导出的数据格式。

图2-1 MySQL 5.0版本支持导出的数据格式类型

提示

大多数情况下,txt(任意指定分隔符)、cvs(以逗号分隔的数据文件)、tsv(以tab制表符分隔的数据文件)是最常用的数据文件格式。当数据文件大小在百兆级别以下时,可以使用Excel等工具打开;数据文件大小在百兆级别时,推荐使用Notepad打开;当数据文件大小在G级别时,推荐使用UltraEdit打开。

2.1.2 数据库

数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库。数据库广泛应用于CMS(内容管理系统)、CRM(客户关系管理系统)、OA(办公自动化)、ERP(企业资源计划)、财务系统、DSS(决策支持系统)、数据仓库和数据集市、进销存管理、生产管理、仓储管理等各类企业运营事务之中。

数据库的主要应用包括数据的定义、存储、增加、删除、更新、查询等事务型工作,数据传输、同步、抽取、转换、加载等数据清洗工作,数据计算、关联查询、OLAP等分析型工作以及数据权限控制、数据质量维护、异构数据库和多系统通信交互等工作。

数据库按类型分为关系型数据库和非关系型数据库(又称NoSQL数据库)。关系型数据库在企业中非常常见,在传统企业中更为流行,常见的关系型数据库包括DB2、Sybase、Oracle、PostgreSQL、SQL Server、MySQL等;非关系型数据库随着企业经营场景的多样化以及大数据场景的出现,根据应用场景和结构分为以下几类:

❑ 面向高性能并发读写的键值(Key-Value)数据库:优点是具有极高的并发读写性能、查找速度快,典型代表是Redis、Tokyo Cabinet、Voldemort。

❑ 面向海量文档的文档数据库:优点是对数据要求不严格,无须提前定义和维护表结构,典型代表为MongoDB、CouchDB。

❑ 面向可扩展性的列式数据库:优点是查找速度快,可扩展性强,通过分布式扩展来适应数据量的增加以及数据结构的变化,典型代表是Cassandra、HBase、Riak。

❑ 面向图结构的图形数据库(Graph Database):优点是利用图结构相关算法,满足特定的数据计算需求,例如最短路径搜寻、关系查询等,典型代表是Neo4J、InfoGrid、Infinite Graph。

提示

关系型数据库几乎是企业数据存储的“标配”,因此掌握数据库的相关操作(主要是DDL和DML两种数据库语言)是每个数据工作者的必备技能之一。而非关系型数据库通常基于大数据平台或大数据场景产生,并不是每个企业都有应用场景,因此该技能通常作为加分项。

2.1.3 API

API(Application Programming Interface)是应用程序编程接口,数据化运营中的API通常分为服务型API和数据型API。

服务型API可以基于预定义的规则,通过调用API实现特定功能。例如,通过调用百度地图JavaScript API可以在网站中构建功能丰富、交互性强的地图应用,这种API下输入的是地理位置数据,从API获得的输出是可视化地图(服务/功能)。

数据型API则通过特定的语法,通过向服务器发送数据请求,返回特定格式的数据(或数据文件)。例如,通过向Google Analytics的Analytics Reporting API V4发送请求来获得符合特定条件的数据记录。

API广泛应用于企业内部和外部多系统和平台交互。API返回的数据格式,大多数情况下是JSON、XML格式。

JSON是一种轻量级的数据交换格式,由流行的JavaScript编程语言创建,广泛应用于Web数据交互。JSON格式简洁、结构清晰,使用键值对(Key:Value)的格式存储数据对象。Key是数据对象的属性,Value是数据对象属性的对应值。例如,“性别”:“男”就是一个Key:Value结构的数据。JSON格式数据示例如下:

        {
            "category": {
                "name": "电脑",
                "brands": {
                    "brand": [
                        "DELL",
                        "THINKPAD"
                    ]
                }
            }
        }

XML是可扩展标记语言,提供了统一的方法来描述和交换独立于应用程序或供应商的结构化数据,这是一种非常成熟且强大的数据格式。像JSON一样,XML提供了非常好的扩展性,API的创建者可以使用它们创建自己的数据结构。XML格式数据示例如下:

        <? xml version="1.0" encoding="utf-8"? >
        <category>
            <name>电脑</name>
            <brands>
                <brand>DELL</brand>
                <brand>THINKPAD</brand>
            </brands>
        </category>

2.1.4 流式数据

流式数据指的是实时或接近实时处理的大数据流。常见的流式数据处理使用Spark、Storm和Samza等框架,能在毫秒到秒之间完成作业,用于处理时效性较强的场景,例如在线个性化推荐系统、网站用户实时行为采集和分析、物联网机器日志实时分析、金融实时消费反欺诈、实时异常人员识别等,应用领域集中在实时性较强的互联网、移动互联网、物联网等。

按照数据对象来区别,流式数据可分为两类:

第一类是用户行为数据流。用户行为数据流是围绕“人”产生的数据流,包括用户在网站和APP内部因浏览、搜索、评论、分享、交易以及在外部的微博、微信中操作而产生的数据流。用户行为数据流采集平台可分为Web站、移动站和APP(包含iOS、Android、Windows等)应用。Web站及基于HTML5开发的移动应用都支持JS脚本采集,较早开发的不支持JS的Wap站(现在基本上很少)则采用NoScript方法,即一个像素的硬图片实现数据跟踪。SDK是针对APP提供数据采集的特定方法和框架。这三种方法可以实现目前所有线上用户行为数据采集的需求。

第二类是机器数据流。机器数据流是围绕“物”产生的数据流,包括从机器的生产、制造、应用、监控和管理等过程中产生的所有数据,例如机器运行日志、传感器监控数据、音频采集器数据、监控图像和视频、GPS地理数据等。

机器数据流通常集中在工业4.0、智能工厂等工业的智能运营管理过程中,也出现在物联网、人工智能等人和物的监控、识别、联通、互动等智能化应用中。机器数据流扮演着实时采集目标对象属性、状态、行为、信号等数据的角色。

2.1.5 外部公开数据

外部公开数据指公开的任意第三方都能获取的数据。

数据化运营所需的外部公开数据来源渠道众多,常见的包括:

❑ 政府和相关机构提供的公开数据,例如国家统计局提供的月度CPI数据;

❑ 竞争对手主动公开的数据,例如通过新闻发布会、网络宣传等发布的数据;

❑ 行业协会或相关平台组织提供的统计、资讯数据,例如艾瑞提供的行业研究报告发布的数据;

❑ 第三方的组织或个人披露的与企业运营相关的数据,例如有关竞争对手的供应商、客户等数据。

2.1.6 其他

在某些场景下,企业数据化运营所用数据还会有其他来源,例如通过调研问卷获得的有关产品、客户等方面的数据,从第三方平台直接购买的数据,通过与其他厂商合作所得交互数据等。由于这些场景比较少,并且不是企业主流的数据获取来源,在此不作过多阐述。