你真的了解数据处理吗?

写在前面

数据已经成为企业和团体的核心资产,这些年来,数据世界充斥着新技术、方法和工具来处理不断增长的数据量以及复杂的数据结构,企业和团队基于此来提高商业竞争优势。

但是不管用什么样的大数据处理工具,采用合理的处理逻辑才是最重要的。

现代数据的复杂性

结构化数据和非结构化数据

最为常见的就是:结构化数据,一般都以二维表格的形式出现,MySQL、PostgreSQL等都是代表,数据的列和列的属性都被清晰定义。

还有诸如JSON,XML等形式的半结构化数据,以及视频、音频、文档数据、log记录等等,都需要在数据处理的时候考虑到。

实时、离线以及各种准实时数据

数据大小

并不是所有的数据需要按照大数据处理的方式进行的,如果你面对的数据量只有不到百万行量级,完全不用考虑大数据处理引擎,一个MySQL完全可以搞定。

一般的,我们所谓的大数据,是指收集的数据量大于用于数据库的磁盘容量,以至于无法存储数据分析所必须的数据量。

数据仓库和数据湖

数据仓库

数据仓库(DWH Data Warehouse)本质上还是数据库。有很多类型和品牌的数据库都可以作为数据仓库,诸如AWS的Redshift,阿里云的RDS,Azure的SQLServer、还有MySQL、Postgres等等。

数据仓库本质上是一个中心数据库,它从其他数据源,业务系统中获取数据。通过中心化的管理,进行数据分析以及洞察不同系统中数据的联系以及规律。

一般而言,数据仓库还是需要存储最新数据和历史数据的,用于生成数据分析报告,或者导入BI工具,赋能企业和团体内的数据用户。

数据湖

数据湖的概念是近几年由Pentaho的CTO James Dixon提出来的。本质上,数据库是一个巨大的数据存储,存储最原始的数据(不带任何处理的)或者只进行轻微处理的数据,在存储过程中保持数据原有的格式。

数据湖存储数据一般采用扁平式结构,一般以数据文件的形式。在“湖”中的数据都会关联一个唯一ID并为其标记元数据。常见的数据湖有AWS的S3,阿里云的数据湖PaaS,Azure的CosmosDB、OSS、HDFS等等都可以用来构建企业自己的数据湖。

数据湖一般不需要特别的规划和安排,它可能都没有schema或者ETL处理。通过数据湖存储数据可以大规模的削减数据存储成本(不管是本地搭建还是云端构建)。

由于数据湖中的数据包含了非常多的数据种类和数据结构,大量的数据,所以查询它们是个很难的任务。一般传统的数据BI都没有很好的支持数据湖,通常需要一定的数据处理代码才能实现数据洞察和构建数据报告。

最好的方式就是数据湖中的数据通过数据处理(ETL)过程,将处理后的数据存储回数据湖中或者存储进数据仓库中,以实现数据分析和数据洞察。

数据处理(ETL V.S. ELT)

近些年来,数据处理ETL(Extract、Transform、Load)并不能代表数据处理的全部了,还出现了ELT(Extract、Load、Transform),虽然只是三个单词顺序的转换,应用的场景完全不一样。

ETL(Extract、Transform、Load)

ELT(Extract、Load、Transform)

基于场景选择合适的技术方案

什么时候应该用数据湖?

数据需要马上收集起来,还没有时间计划或者安排去处理数据的情况,可以将数据倾倒入数据湖。

以上的情况可以考虑数据湖的方式存储数据,可以选择HDFS(Hadoop Distributed File System)、Hbase、Kudu、文件存储(例如OSS),或者各大云厂商的数据湖PaaS。

什么时候可以选用数据仓库?

以上的情况就是选用数据仓库的场景。我们熟知的数据库都可以用作数据仓库,MySQL、Postgres、SQLserver、Oracle、Doris,还有各种商用数据库和云厂商的数据库产品。

实时OR离线?

数据需要实时反应给予企业机型决策,在这种场景下,我们需要将离线数据处理转变为实时数据流处理。一般可以通过Flink CDC、Spark Streaming、AWS的Kinesis Firehose等等进行实时数据处理并以规定的格式存储进数据仓库或者数据湖中。

主要开始看是什么场景,以及需要投入的研发费用考虑,越实时当然成本越高。

结构化数据OR非结构化数据?

结构化数据被需要,一般都是由于一下原因:

不管是用什么技术(数据仓库、数据湖)进行数据处理,数据转换(T,Transform)的过程才是整个数据处理过程的中枢,能让数据有意义,并易于数据分析。

如何应对频繁变化的数据?

一些应用场景下,由于数据的高波动性,数据很难被结构化。例如,实时监控的IoT数据、舆情数据、广告数据,还没有成型的系统的数据等等。

对于以上场景,建议使用动态转换的数据湖解决方案。然而,在大多数情况下,包括上面描述的情况,仍然有一些核心业务问题可以定义并建模为结构化数据。所以,在应用数据湖方案的同事,一定要注意抽离已经形成的数据模型到效率更好的数据仓库中用于进一步的数据分析。

一些数据湖和数据仓库的思考:

基于此,一个整体的数据方案如下

数据方案架构

总结

推荐阅读:

更多数字化原创好文,请关注微信公众号“汇智研习院”

展开阅读全文

页面更新:2024-03-20

标签:数据处理   离线   数据结构   数据源   实时   数据仓库   场景   成本   数据库   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top