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. 存储 & 计算
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. 数据管理
- 数据治理
- 血缘关系
- 数据标准化
- 数据权限管理