数据产品:数据产品涉及的技术工具

1. 数据采集

1.1. 硬采集

  • 包括:传感器、摄像头、语音设备、可穿戴智能设备。还有我们最常用的手机,都是数据采集的很好设备。这部分涉及到的产品,大都是硬件,产品形态是以一种解决方案的形式提供。

1.2. 软采集

  • 利用一些互联网手段采集数据,最常见的数据采集产品就是数据埋点了,通过埋点的方式,对用户日志采集。
  • 日志埋点方式又分为可视化埋点、前端埋点、后端埋点。

2. 数据清洗

  • 数据清洗,统一叫ETL(Extract-Transform-Load)或ELT,它是搭建数据仓库常用到的技术,一般都是给数据开发工程师使用的产品,但是也会有一些厂商把产品做的简单可配,降低使用门槛。
  • 数据清洗主要任务是过滤掉不符合要求的数据,处理不完整的数据、错误的数据、重复的数据三大类,保证数据质量的完整性、一致性、唯一性。
  • ETL,负责将分布、异构的数据源中的数据,如关系数据、平面数据、文件等取到临时中间层,进行清洗、转换、集成,最后加载到数据仓库或数据集市,成为联机分析处理、数据挖掘的基础。

  • ETL 的目的,是将其中分散、零乱、标准不统一的数据,整合到一起,为企业的决策提供分析依据。ETL 是 BI 项目的重要环节,一般要花掉整个 BI 项目的三分之一的时间精力,ETL 设计的好坏直接关系到 BI 项目的成败。

  • 其中,ETL三个部分中:
    • Extractor,是从不同的数据源抽取到 ODS(operational data store),这部分尽可能的选用高效的抽取方法,以提升 ETL 的性能;
    • Transform,数据清洗和转换,最耗费时间,一般这部分工作占了整个 ETL 的三分之二。
    • Load,清洗完的数据一般直接写入数仓 DW(data warehouse)中。

3. 存储 & 计算

sql-17

3.1. 关系型数据库

  • MySQL
  • PostgreSQL
  • MySQL 与 PostgreSQL 的异同:
    • 编程语言:
      • MySQL是C/C++混合开发,PostgreSQL则是完全的C语言开发
    • 事务支持:
      • PostgreSQL支持事务的强一致性,事务保证性好,完全支持ACID特性。
      • MySQL只有innodb引擎支持事务,事务一致性保证上可根据实际需求调整,为了最大限度的保护数据,MySQL可配置双一模式,对ACID的支持上比PG稍弱弱。
    • SQL标准支持:
      • PostgreSQL几乎支持所有的SQL标准,支持类型相当丰富。
      • MySQL只支持部分SQL标准,相比于PG支持类型稍弱。
      • PostgreSQL 和 MySQL 都依赖于 SQL;
      • MySQL 主要功能包括所有 SQL 标准命令,以及事务和 ACID 合规性(代表原子性、一致性、隔离性和持久性);

3.2. 非关系型数据库

  • 键值(key-value)数据库:
    • 面向高性能并发读写,典型代表如Redis。
  • 列存储(Columnar Storage)数据库:
    • 面向PB级的分析应用,如:HBase,Hypertable。京东、阿里、腾讯、唯品会、圆通、顺丰等都将HBase大规模应用于准实时的数据分析挖掘计算,以及提供历史归档数据的存储和查询服务。
  • 文档数据库:
    • 特点是可以在海量的数据中快速地查询数据,如网页和移动应用数据。
    • 典型代表:MongoDB,CouchDB,Mark Logic
  • 图形数据库:
    • 如应用在推荐系统、关系图谱,典型代表:new4j,InfiniteGraph,OrientDB

3.3. 新式关系型数据库(NewSQL)

  • NewSQL提供与NoSQL系统相同的扩展性能,且保持传统数据库支持的ACID特性。
  • 典型代表:SAP HANA,VoltDB,nuoDB,MariaDB,Pivotal。

3.4. MPP(Massively Parallel Processing)数据库

  • 指使用多个SQL数据库节点搭建的数据仓库系统,MPP解决了单个SQL数据库不能存放海量数据的问题。
  • 代表产品有Teradata,Vertica,Redshift,Greenplum

3.5. 常用数据计算存储选型

  • 不同数据系统有各自的优势和适合的场景,但并没有一个数据系统可以适合各种各样的存储计算场景。

这里大致列举一些比较通用的选型:

关系型数据库(Oracle/MySQL等):适合小数据量的复杂关系计算

分布式列存储系统

✔ Kudu:Scan优化,适合OLAP分析计算场景

✔ HBase:随机读写,适合提供数据服务场景

✔ Cassandra:高性能写,适合海量数据高频写入场景

✔ ClickHouse:高性能计算,适合只有insert写入场景(后期将支持更新删除操作)

分布式文件系统 ✔ HDFS/Parquet/Hive:append only,适合海量数据批量计算场景

分布式文档系统 ✔ MongoDB:平衡能力,适合大数据量中等复杂计算

分布式索引系统 ✔ ElasticSearch:索引能力,适合做模糊查询和OLAP分析场景

分布式预计算系统 ✔ Druid/Kylin:预计算能力,适合高性能OLAP分析场景

4. 可视化

  • BI
    • tableau
    • power BI
    • fine BI
    • 永洪BI
  • 可视化大屏
    • eacharts
  • 报表

5. 数据挖掘

5.1. 数据挖掘的应用

  • 个性化推荐
  • 搜索排序
  • 风控模型
  • 用户画像
  • 计算广告

6. 数据服务

  • SpringCloud
  • SOA
  • Restful API
  • JDBC

7. 数据管理

  • 数据治理
  • 血缘关系
  • 数据标准化
  • 数据权限管理