17611538698
webmaster@21cto.com

大数据的语言,工具与框架发展

资讯 0 2212 2018-11-22 12:03:03

21CTO导读:本文为各位总结大数据专家常用到的语言与工具,比如 Python,Spark与Kafka等解决方案。


 
bigdata_Fotolia_41468665_small.jpg


为了解大数据的当前和未来状态,我们采访了来自28个组织的31位IT技术主管。我们问他们,“你在数据提取,分析和报告中使用的最流行的语言,工具和框架是什么?” 以下的文章是他们告诉我们的记录,经过总结如下。
 
Python,Spark,Kafka
 
随着大数据和对人工智能AL/机器学习 ML 的推动,Scala和Python语言以及Apache Spark中越来越受欢迎。
 
对OLAP数据仓库的迁移,如果用 Python开发机器学习使用较少的结构。开发者编写Python ML模型非常方便,Python有扩展库提供支持。 
 
Kafka用于流式提取,R和Python用于编程开发,当然Java很普遍。SQL还不会消失,但它不是大数据最好的朋友,但是它的开放性让更多的人可以访问数据,Gartner让Hadoop上的SQL走出了幻灭之低谷。
 
我们看到很多数据仓库的相关技术,如Hadoop,Spark和Kafka等新兴技术,很多人还对Redshift,Snowflake和Big Query非常感兴趣。
 
ML机器学习技术栈,增加了TensorFlow的强大工具让人增加对其学习的信心,减小了学习曲线。
 
第三个是Kubernetes,也聚集了大量的爱好者,并在逐步扩大用户领域。 
 
还有其他开源工具被广泛使用,例如Spark,R和Python,这就是平台提供与这些开源工具集成的原因。
 
在大数据工作流程中,可以引入一个新节点用Python,R或Spark开发代码脚本。在执行时,节点将执行代码成为工作流中节点管道的一部分。
 
在之前一段时间,R语言曾占据主导地位,特别是在数据科学运作模型中。现在真正的技术创新是围绕Python,因为Python有许多工具、库的支持。
 
接着人们开始探索Spark和Kafka。Spark以极快的速度处理大量磁盘卷。Kafka是一个用于将数据传输到Spark的消息传递系统,R这个语言非常适合分析历史数据,获取模型和获取实时数据,并帮助数据分组,以便实时运行并应用模型。
 
一些常见的工具和框架还包括内存关系数据库,如VoltDB,Spark,Storm,Flink,Kafka 和 一些NoSQL数据库。  
 
我们为所有CRUD数据操作提供LINQ类型的API,可以供各种语言调用,例如C#,Go,Java,JavaScript,Python,Ruby,PHP,Scala和Swift语言。因为设计的是高性能(可预测的低延迟)数据库,我们的主要为数据访问创建为编程而不是声明,因此目前并不支持SQL。
 
当客户要分析他们当前正在执行的工作时,我们再添加SQL支持,我们支持将数据导出到后端数据仓库和数据池以进行分析。对于数据抽取,Kafka和Kinesis等工具作为客户中的默认数据的通信管道也越来越获得关注。 
 
我们将SQL视作为各种规模公司使用平台中数据的主要协议。对于集群的部署管理,我们看到Docker和Kubernetes的应用在迅速增长。对于数据抽取,Apache Kafka被我们的许多用户使用,我们最近在Confluent合作伙伴计划中取得了Kafka Connector的认证。为了更好的处理分析,我们经常将Apache Spark与Apache Ignite一起并用作为内存数据存储。 
 
事实上Apache Kafka已经成为一种标准,可以在提取近乎实时的大批量数据(尤其是传感器数据),以流式传输到数据分析平台。为了获得最高的分析性能,数据库内机器学习和高级分析正成为组织大规模提供预测分析的一种极重要的方式。
 
对于可视化报表,目前市面上有各种各样的数据可视化工具:从Tableau到Looker,从Microsoft Power BI到IBM Cognos再到MicroStrategy等等。业务分析师从未有过这么多选择来实现可视化数据报表。他们肯定会这样肯定,他们的基础数据分析平台如今已经具有大规模和高性能,让他们能够在几秒或几分钟内完全准确地从最大数据中获得洞察力, 
 
我们利用多种数据提取和索引工具,使用 Apache Kafka和NIFI项目目前最为普遍。
 
我们将 Hadoop YARN与HBASE/HDFS用于数据持久层,然后用于数据处理、预测建模、分析和深度学习项目,如Apache Zeppelin,Spark/Spark Streaming,Storm,SciKit-Learn和Elasticsearch这些开源项目,我们还可利用Talend,Pentaho,Tableau和其他优秀的商业化软件或工具。
 
TensorFlow,Tableau,PowerBI
 
1)我们使用Amazon Athena(Apache Presto)进行日志分析。
2)我们使用Mode Analytics进行数据可视化和报告。
3)我们使用TensorFlow来分析流量模式。 
 
从ML角度看数据科学,DL框架的可用性,TensorFlow,Pytorch,Keras,Caffe在应用ML和为大规模数据创建模型方面做出了很大的创新。 
 
BI用例正试图扩大分析师的数据规模,Tableau,PowerBI,MicroStrategy,TIBCO和Qlik试图扩大数据仪表盘面前的人数和角色。 
 
随着技术团队正在逐渐远离MapReduce,我们看到 Spark。Java和Python越来越受欢迎。Kafka被用来抽取数据,可视化的Visual Arcadia Data,Tableau,Qlik和PowerBI来生成报表。 
 
许多项目使用多种语言和多个分析工具。当然,我们也能看到很多SQL的使用场景以及面向数据科学的语言,如Python和R语言,但也是Java和C#等经典编程语言的发挥之处。对于数据科学,我们有顶级工具包TensorFlow,紧随其后的是自助式BI工具,如Tableau,PowerBI和ClickView。
 
其它
 
开源的世界。更多人正在转向流数据数据,这是由对实时答案的需求来驱动而来。
 
当然这取决于特定的项目,我们看到多种机制被用于抽取,富文本,文档分类器,SciByte,数据本体,智能标签工具,深入研究数据。个性化推荐与见解、情感分析等丰富了大数据。
 
客户从浏览器中查找要使用的内容,或正在寻找如何构建自己的工具,SQL语言仍然是大数据的语言,它可以在在Hadoop和其他数据库之上正常工作。
 
OData并不是那么新,人们正在从服务器端和客户端进一步使用它,还有一些人在使用GraphQL来动态查询和获取数据。
 
服务器端编程也有很多新技术,比如 MongoDB做得很好,Redis适合缓存。AWS S3对于使用Elasticsearch和S3作为后端的数据存储非常有用,当然明确已经确定的技术与设计模式。
 
使用R和Python的人会坚持使用他们熟悉的东西,大数据系统中有许多API提供了很多支持。从数据抽取的角度来看,人们希望提供尽可能多的方法来处理数据输入和输出,能够支持尽可能多的工具,这不是临界质量。迎合人才,开发人员工具和API支持的两方需求。
 
大公司希望人们使用相同的BI和数据科学工具,因为他们有各种工具,在数千人在一个工具上做标准化并与不同后端集成并加速数据生产的方式,包括提供数据的集成、加速和目录以及数据语义等定义。数据目录位于平台的中心位置,将安全性,集成和加速功能集中到一个可与全部工具和数据源配合使用的中心开源层。
 
大数据世界在很多方面会很快地发展到所有的开发环境,包括内部部署,云计算等等。我们看到了很多语言,执行引擎和数据格式发生了变化。大数据的核心价值是允许客户绕过这些不同的工具和标准,使用拖放或我们提供的代码环境,可能无需手动编写任何代码,轻松将数据管道作为可重复框架的一部分,无论采用何种技术,平台或语言都 能进行大规模部署。

编译:老夏
来源:21CTO社区


评论