速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

高技能人才或是未来 5-10 年大数据发展的最大瓶颈

  • 2019-10-26
  • 本文字数:2684 字

    阅读完需:约 9 分钟

高技能人才或是未来5-10年大数据发展的最大瓶颈

大数据无疑是当下最流行的热词和前沿技术之一。本质上,大数据具有三大类特征:快速、海量和复杂,大多数公司都在经历着这三大特征的各种形态组合。目前,这些特征中,还存在很多较难以解决的挑战,诸如处理数据流中的丢失、重复问题,数据质量参差不齐,数据存储成本高,大数据人才缺乏等。在本文中,我们将对“大数据”的问题进行拆分,是什么使大数据充满挑战,以及现在我们如何用最新的方法解决这些问题。


本文最初发布于 Towards Data Science 网站,经原作者授权由 InfoQ 中文站翻译并分享


在本文中,我们将对“大数据”的问题进行拆分,是什么使大数据充满挑战,以及现在我们如何解决这些问题。大数据一度成为流行语,但本质上它是指具备这三大类特征的数据:快速,海量和复杂。让我们仔细研究下这些特征,举一些例子,看看如何用最新的方法解决这些难题。


“大数据是描述海量的高速、复杂和多变数据的一个术语,这些数据需要结合先进的技能和技术来实现信息的捕获、存储、分发、管理和分析”(TechAmerica Foundation’s Federal Big Data Commission, 2012


高速的数据

高速的数据指什么?高速的数据指在短时间内产生的大量的数据。比如汽车工厂的传感器数据,温度监测器,飞行仪表等产生的数据。


高速数据通常被认为是实时的或是准实时的数据流。数据流本质上是在生成后就发给处理器的数据包(比如天线收到的电视信号或是通过固话传输的语音电话)。实时数据的定义值得深入讨论,但是它本质上可以归结为需要在毫秒内被更新的数据。处理数据流有很多挑战,包括在采集时不丢失数据、处理数据流中的重复记录、流数据与更大的历史数据集集成、以及进行实时分析。


传统的数据流服务比如 Rabbit MQ 和 Active MQ 只在单节点上运行因此收到了服务器能力的限制。Apache Kafka 引入了分布式流服务的概念,使得数据流可以分散到多个节点(服务器)上。这实现了高吞吐的流处理,每秒能达到数百万条。随着服务向云上的迁移,开发者不用再管理底层的硬件。亚马逊的 Kinesis 和谷歌的 Pub/Sub 将后方的服务器完全抽离,使开发者能够更专注于业务逻辑和数据。


ELK 是常用的在流式数据上作实时分析的技术栈。ELK 由多个工具组成,用 Log Stash 将多种数据源的数据传输进 Elastic Search(ES)。在 ES 中存储的数据可以轻松的通过特定的短语和关键词检索到。Kibana 是 ES 最上层的工具,它在数据流入时就能进行实时分析,用户可以通过它来查询数据、为数据创建度量。

海量数据

“大数据”的第二个


特征是数据量足够大。


典型的例如一个包含顶级投资银行 20 年股票交易历史的超大数据集,20 年间所有信用卡的交易记录,或是热门网站(如 buzz feed)的用户交互信息等。通常这些数据都会在 TB 甚至 PB 量级。



处理超大数据集通常会受到存储和处理数据的计算资源的限制。通常一块商用硬盘可以容纳 1TB 的数据量。有些数据集能有好多 PB(相当于上千块硬盘的容量)。这些数据需要在数据中心内跨多个服务器(或传统的 RAID 盘)存储。除此之外,处理这些数据也需要大量的物理内存和 CPU。


Hadoop(一个开源分布式大数据处理生态)的出现一定程度上降低了数据处理的成本。这套系统的核心是 Hive,一种能像数据库一样存储数据的类 SQL 处理系统。数据处理在商用硬件上进行,使用 Map-Reduce 算法(专门为分布式处理设计的算法)。这些服务器通常被存放在数据中心。但是,管理维护数据中心和 Hadoop 套件的成本非常高。


但最近,很多的存储和处理都转移到了云上,比如 Amazon Web Service (AWS) 和 Google Cloud Platform (GCP)这些主流玩家。AWS 和 GCP 都提供受管理的 map reduce 或 spark 服务(AWS Elastic Map Reduce 以及 GCP Cloud data proc)。他们也提供大规模可扩展的数据库服务(分别是 Google Big Query 和 AWS Redshift),能为 PB 级的数据集提供关系型数据库服务。这些解决方案最大的优点是用户不用管理底层的硬件,可以专注于更重要的任务,如存储/移动数据或者是写 SQL。这个生态中的典型玩家是 Snowflake,在 AWS 中提供即买即用的数据处理服务。

复杂数据

“大数据”的第三个特征是复杂。在解释什么造成了数据的复杂性前,我先讲下理想的数据集是什么样的。理想的数据集有预先定义的 schema,每种数据类型(string, number, date)都有定义好的主键,以及完善的数据字典。数据集中没有重复,所有的值都是精准的。


复杂数据的概念和理想数据完全相反。所有数据集都有一定的复杂性,但有一些天生更难处理。通常这些复杂数据集没有定义结构(没有行列结构),经常变化,数据质量很差或没有记录。



比如人工输入的医生的笔记、博客的文字、时刻更新的网页日志以及深嵌套的 XML 或 JSON 文件。


为复杂数据做快速标注时,大多数不好的数据应该在源头就进行识别。数据工程师需要构建足够强壮的系统来快速获取和过滤这些数据集,但是这些数据最终还是要在源头纠正。此外,如果可以,我们建议在数据产生的源头定好 SLA 来减少低质量的数据,使数据更好管理。


处理复杂数据集,让它们能遵从整洁的格式需要下很大的功夫。每种数据质量问题都需要区别处理,比如记录重复、主键缺失、字符/字符串的格式错误等。


有很多工具可以用来处理这种数据。通常数据科学家和工程师会用 Jupyter notebook 以及 Pandas 或 Spark 来处理、分析、可视化这些数据集。Jupyter 为开发者提供了交互式的环境使他们能在代码中逐行遍历数据集,从而节省很多时间。Databricks 也提供了非常好的数据处理和分析环境,包含了一个类似 Jupyter notebook 的 UI、独有的 Spark 特性、以及简单易用的节点管理能力。


还有很多第三方的工具,比如 Trifacta,能够自动进行一些数据清洗任务,通过提供 UI 和非常好的功能代替完全手写的数据清洗代码,来加速清洗和分析任务。Google Cloud 在 GCP 中提供了这个工具 cloud Data Prep。

小结

可以看出,这些特征中的任何一个挑战都很难解决。但是,大多数的公司都经历着这三种问题的各种形态组合。挑战变得更庞大了,这需要衡量不同的工具和方法来解决他们特定的问题。


向云服务的转移很大程度上降低了处理和管理大数据的壁垒,公司不再需要建设数据中心并且花大量的预算在专用软件上。但是招聘懂得如何使用正确的工具来处理大数据问题的人才仍然是个难题。


降低大数据使用门槛的下一步是利用机器学习技术来理解数据的结构以及监测数据发生的变化。由于高技能人才将成为处理大数据的瓶颈,未来 5-10 年间产生的下一代工具,很可能会关注这些特征。


希望这篇文章能为你提供关于大数据全面而简洁的概述!


原文链接:


https://towardsdatascience.com/what-exactly-is-big-data-in-2020-9acee48e8dd7


2019-10-26 08:006232

评论 1 条评论

发布
用户头像
Pandas不是Python的一个库吗?
2019-10-29 09:02
回复
没有更多了
发现更多内容

Android数据库的使用(增删改查),那些年我们一起踩过算法与数据结构的坑

android 程序员 移动开发

Android春招面经分享:一个Android渣渣终于拿到了一个offer

android 程序员 移动开发

Android春招面经:二本渣院面试网易被拒,最终终于拿到腾讯

android 程序员 移动开发

Android架构组件—ViewModel原理,flutter瀑布流布局插件

android 程序员 移动开发

Android架构设计:手把手教你撸一个简洁而强大的MVP框架!

android 程序员 移动开发

Android猿面试(附视频),flutter下拉选择

android 程序员 移动开发

Android性能优化:这些绘制优化你一定不能忽略!,【微信小程序】

android 程序员 移动开发

Android悬浮窗的简单实现,音视频二次开发

android 程序员 移动开发

Android技能树 — 树基础知识小结(一)(1),Android入门

android 程序员 移动开发

Android程序员经常遇到的算法问题,七大常用的算法,小白看完都会了

android 程序员 移动开发

Android毕业生,月薪都在10~15k左右,【Android面试题】

android 程序员 移动开发

Android技能树 — Fragment总体小结,kotlin安卓开发教程视频

android 程序员 移动开发

Android指纹识别API讲解,一种更快更好的用户体验,送给正在迷茫的你

android 程序员 移动开发

Android插件化-Activity篇,安卓开发面试问题

android 程序员 移动开发

Android研发大厂面试记:阿里,字节,安卓内存监控悬浮窗

android 程序员 移动开发

Android性能优化 _ 大图做帧动画卡?优化帧动画之 SurfaceView滑动窗口式帧复用

android 程序员 移动开发

Android技能树 — 树基础知识小结(一),阿里P7大牛整理

android 程序员 移动开发

Android性能优化:看完这篇文章,至少解决 APP 中 90 % 的内存异常问题

android 程序员 移动开发

Android性能优化:这些绘制优化你一点要重视!,android开发语言kotlin

android 程序员 移动开发

Android技能树 — Activity小结,idea开发android

android 程序员 移动开发

Android混合编程:WebView实践,全世界都在问Android开发凉了吗

android 程序员 移动开发

王者荣耀商城异地多活架构设计

毛先生

Android开源的精美日历控件,热插拔设计的万能自定义UI

android 程序员 移动开发

Android快速开发整理(库、插件,40道安卓面试

android 程序员 移动开发

Android程序员面试字节跳动,准备好这些算法面试题准过!

android 程序员 移动开发

Android技术栈(一)从Activity迁移到Fragment,零基础也能看得懂

android 程序员 移动开发

Android知识图谱:我们到底需要学习哪些Android知识?,android开发平台的框架原理

android 程序员 移动开发

Android性能优化三:APP启动时间测量,android开发强化实战

android 程序员 移动开发

Android生命周期组件Lifecycle使用详解,android音视频开发方向

android 程序员 移动开发

Android最强进程保活黑科技实现原理解密及方法,我的头条面试经历分享

android 程序员 移动开发

Android程序员:“作为字节跳动面试官,androidapp开发工具

android 程序员 移动开发

高技能人才或是未来5-10年大数据发展的最大瓶颈_AI&大模型_Gary Cheung_InfoQ精选文章