数据挖掘,又称为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-DiscoveryinDatabases,简称:KDD)中的一个步骤,是一个挖掘和分析大量数据并从中提取信息的过程。其中一些应用包括市场细分-如识别客户从特定品牌购买特定产品的特征,欺诈检测-识别可能导致在线欺诈的交易模式等。在本文中,昌平电脑培训整理了进行数据挖掘的8个最佳开源工具。
1、Weka
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
2、RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
3、Orange
Orange是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。其由C++和Python开发,它的图形库是由跨平台的Qt框架开发。
4、Knime
KNIME(KonstanzInformationMiner)是一个用户友好,智能的,并有丰演的开源的数据集成,数据处理,数据分析和数据勘探平台。
5、jHepWork
jHepWork是一套功能完整的面向对象科学数据分析框架。Jython宏是用来展示一维和二维直方图的数据。该程序包括许多工具,可以用来和二维三维的科学图形进行互动。
6、ApacheMahout
ApacheMahout是ApacheSoftwareFoundation(ASF)开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在Apache在许可下免费使用。该项目已经发展到了它的最二个年头,目前只有一个公共发行版。Mahout包含许多实现,包括集群、分类、CP和进化程序。此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中。
7、ELKI
ELKI(EnvironmentforDevelopingKDD-ApplicationsSupportedbyIndex-Structures)主要用来聚类和找离群点。ELKI是类似于weka的数据挖掘平台,用java编写,有GUI图形界面。可以用来寻找离群点。
MySQL是开源软件,但开源并不意味着完全免费,开源的优势可以使更多的人对代码改进和完善,但开源软件的使用应遵循该软件提供的使用授权协议。
如果您开发的应用软件用到MySQL,不用于销售盈利,您可以免费使MySQL,但您同时也必须开放您的源代码。反之您是用于销售,您应该支付License费用。
在当今世界是很受欢迎的开源数据库,有人说MySQL是完全免费软件,这种说法对不对啊,接下来将为大家解开这个谜团。MySQL是世界上最受欢迎的开源数据库。MySQL在中国也越来越受欢迎并被广泛关注。
MySQL是开源自由软件,当我们在谈论自由软件时,我们所指的是自由,而不是价格。开源自由软件不同于一般意义上的免费软件,很多商业软件企业在激烈市场竞争下,也纷纷推出了免费版本如微软的SQLServer免费版本。MySQL创始人之一DavidAxmark针对该现象这样指责道:“不要相信它们所谓的开源。开源和免费不是一个概念,开源最大的意义在于最底层源代码都是完全开放的,所有的用户都可以来看,都可以来寻找bug,然后加以修改。免费软件做到了成本的降低,但永远不可能通过这样的方式提高质量,这就是我们和它们的区别。”
今天真是一个美好的时代,有无数的开源系统可以为我们提供服务,现在有许多开发软件可以用到工业大数据中,当然很多系统还不成熟,应用到工业中还需要小心,并且需要开发人员对其进行一定的优化和调整。下面就简单介绍一些开源的大数据工具软件,看看有哪些能够应用到工业大数据领域。
下面这张图是我根据网上流传的一张开源大数据软件分类图整理的:
我们可以把开源大数据软件分成几类,有一些可以逐步应用到工业大数据领域,下面就一一介绍一下这些软件。(以下系统介绍大都来源于网络)
1、数据存储类
(1)关系数据库MySQL
这个就不用太多介绍了吧,关系型数据库领域应用最广泛的开源软件,目前属于 Oracle 旗下产品。
(2)文件数据库Hadoop
Hadoop是大数据时代的明星产品,它最大的成就在于实现了一个分布式文件系统(Hadoop Distributed FileSystem),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上,而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。
Hadoop可以在工业大数据应用中用来作为底层的基础数据库,由于它采用了分布式部署的方式,如果是私有云部署,适用于大型企业集团。如果是公有云的话,可以用来存储文档、视频、图像等资料。
(3)列数据库Hbase
HBase是一个分布式的、面向列的开源数据库,HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
基于Hbase开发的OpenTSDB,可以存储所有的时序(无须采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。
这样的话,它就可以替代在工业领域用得最多的实时数据库。
(4)文档数据库MongoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB适合于存储工业大数据中的各类文档,包括各类图纸、文档等。
(5)图数据库Neo4j/OrientDB
图数据库不是存放的,是基于图的形式构建的数据系统。
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、 企业级 的数据库的所有好处。
OrientDB是兼具文档数据库的灵活性和图形数据库管理 链接 能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许多高级特性,诸如ACID事务、快速索引,原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN *** 作的话,如同关系数据库可在几毫秒内可检索数以百记的链接文档图。
这些数据库都可以用来存储非结构化数据。
2、数据分析类
(1)批处理MapReduce/Spark
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。
这些大数据的明星产品可以用来做工业大数据的处理。
(2)流处理Storm
Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处理数以百万计的消息)。Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。
(3)图处理Giraph
Giraph是什么?Giraph是Apache基金会开源项目之一,被定义为迭代式图处理系统。他架构在Hadoop之上,提供了图处理接口,专门处理大数据的图问题。
Giraph的存在很有必要,现在的大数据的图问题又很多,例如表达人与人之间的关系的有社交网络,搜索引擎需要经常计算网页与网页之间的关系,而map-reduce接口不太适合实现图算法。
Giraph主要用于分析用户或者内容之间的联系或重要性。
(4)并行计算MPI/OpenCL
OpenCL(全称Open Computing Language,开放运算语言)是第一个面向 异构系统 通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算 服务器 、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在 游戏 、 娱乐 、科研、医疗等各种领域都有广阔的发展前景。
(5)分析框架Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
(6)分析框架Pig
Apache Pig 是apache平台下的一个免费开源项目,Pig为大型数据集的处理提供了更高层次的抽象,很多时候数据的处理需要多个MapReduce过程才能实现,使得数据处理过程与该模式匹配可能很困难。有了Pig就能够使用更丰富的数据结构。[2]
Pig LatinPig Latin 是一个相对简单的语言,一条语句 就是一个 *** 作,与数据库的表类似,可以在关系数据库中找到它(其中,元组代表行,并且每个元组都由字段组成)。
Pig 拥有大量的数据类型,不仅支持包、元组和映射等高级概念,还支持简单的数据类型,如 int、long、float、double、chararray 和 bytearray。并且,还有一套完整的比较运算符,包括使用正则表达式的丰富匹配模式。
如何看待国产数据库SequoiaDB开源
总的来说,我认为有几点吧
1)相比mongo还是有中文的齐全文档,作为中国的码农。。英文文档看得还是头疼啊。
2)应该说开源社区这边的支持还是比较快速的,在群里提问基本当天都会有人回答,然后在刚开始配置和对接程序的时候原厂的同学还在区里手把手教了我们的工程师。。还是很给力的
3)总体上说使用和迁移转换时候不会不上手,不过现在据说多了SQL的支持,还没有尝试过,听起来很厉害的样子,不过他们原生的 *** 作语句也还是很好理解的
如何看待yandex开源clickhouse这个列式文档数据库Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承 Ingres而来的), Paradigm4和SciDB的创办者。Michael Stonebraker于2005年创办Vertica公司,后来该公司被HP收购,HP Vertica成为MPP列式存储商业数据库的高性能代表,Facebook就购买了Vertica数据用于用户行为分析。
简单的说,ClickHouse作为分析型数据库,有三大特点:一是跑分快, 二是功能多 ,三是文艺范
1 跑分快: ClickHouse跑分是Vertica的5倍快:
ClickHouse性能超过了市面上大部分的列式存储数据库,相比传统的数据ClickHouse要快100-1000X,ClickHouse还是有非常大的优势:
100Million 数据集:
ClickHouse比Vertica约快5倍,比Hive快279倍,比My SQL快801倍
1Billion 数据集:
ClickHouse比Vertica约快5倍,MySQL和Hive已经无法完成任务了
2 功能多:ClickHouse支持数据统计分析各种场景
- 支持类SQL查询,
- 支持繁多库函数(例如IP转化,URL分析等,预估计算/HyperLoglog等)
- 支持数组(Array)和嵌套数据结构(Nested Data Structure)
- 支持数据库异地复制部署
3文艺范:目前ClickHouse的限制很多,生来就是为小资服务的
- 目前只支持Ubuntu系统
- 不提供设计和架构文档,设计很神秘的样子,只有开源的C++源码
- 不理睬Hadoop生态,走自己的路
如何看待阿里巴巴宣布开放开源AliSQL数据库其实有点类似,谷歌开放安卓系统给大家免费用,
某些技术别人要模仿不难,而且专利有效期也不长,
谷歌可能觉得还不如一下子公开了,大家一起弄,能迅速占领市场
如何看待黑客入侵数据库内网。内鬼和外面的黑客一起合作搞的。内鬼的话就比较容易了。
如何看待美国研发的数据库TokuDB测试过 TokuMX, 性能确实不错,但稳定性堪忧,mongodb 30 后引入了 wiredtiger engine,与 tokumx 差距缩小了
研究过 TokuMX 和 TokuDB 用的索引数据结构,很巧妙的设计,虽然树的深度加倍了,但插入时间确实大幅度降低了。
最后没有采用。
如何看待免费开源CRM免费开源CRM基本上很难满足企业的实际业务需求,可以考虑一款支持用户个性化定制的CRM,百会的CRM就不错,它可以根据用户需求,在最短时间内定制出来并让用户看到效果。满意之后再付费,没有后顾之忧。定制工具简单,定制速度快。用户完全可以自己 *** 作去满足未来业务的变化。另外它基于SAAS模式的在线租用形势,可以为企业节省购买硬件、安装调试、后期升级的费用成本。定期的售后回访还可以解决不少使用中的问题。
如何看待Facebook已开源React NativeReact Native项目成员Tom Ohino发表的React Native: Bringing modern web techniques to mobile(墙外地址)详细描述了React Native的设计理念。Ohino认为尽管Native开发成本更高,但现阶段Native仍然是必须的,因为Web的用户体验仍无法超越Native:
1 Native的原生控件有更好的体验;
2 Native有更好的手势识别;
3 Native有更合适的线程模型,尽管Web Worker可以解决一部分问题,但如图像解码、文本渲染仍无法多线程渲染,这影响了Web的流畅性。
Ohino没提到的还有Native能实现更丰富细腻的动画效果,归根结底是现阶段Native具有更好的人机交互体验。笔者认为这些例子是有说服力的,也是React Native出现的直接原因。
图3 - Ohino在F8分享了React Native(Keynote)
Learn once, write anywhere
“Learn once, write anywhere”同样出自Ohino的文章。因为不同Native平台上的用户体验是不同的,React Native不强求一份原生代码支持多个平台,所以不提“Write once, run anywhere”(Java),提出了“Learn once, write anywhere”。
图4 - “Learn once, write anywhere”
这张图是笔者根据理解画的一张示意图,自下而上依次是:
1 React:不同平台上编写基于React的代码,“Learn once, write anywhere”。
2 Virtual DOM:相对Browser环境下的DOM(文档对象模型)而言,Virtual DOM是DOM在内存中的一种轻量级表达方式(原话是ligheight representation of the document),可以通过不同的渲染引擎生成不同平台下的UI,JS和Native之间通过Bridge通信(React Native通信机制详解 « bang’s blog)。
3 Web/iOS/Android:已实现了Web和iOS平台,Android平台预计将于2015年10月实现(Blog | React)。
前文多处提到的React是Facebook 2013年开源的Web开发框架,笔者在翻阅其发布稿时,发现这么一段:
图5 - 摘自React发布稿(2013)
1 加亮文字显示2013年已经在开发React Native的原型,现在也算是厚积薄发了。
2 最近另一个比较火的项目是Flipboard/react-canvas · GitHub(详见 @rank),渲染层使用了Web Canvas来提升交互流畅性,这和上图第一个尝试类似。
React本身也是个庞大的话题不再展开,详见facebook/react Wiki · GitHub。
笔者认为“Write once, run anywhere”对提升效率仍然是必要的,并且和“Learn once, write anywhere”也没有冲突,我们内部正在改造已有的组件库和HybridAPI,让其适配(补齐)React Native的组件,从而写一份代码可以运行在iOS和Web上,待成熟后开源出来。
持续更新
二、规划
下图展示了业务和技术为React Native所做的改造:
图6 - 业务和技术改造图6 - 业务和技术改造
自下而上:
1 React Node:React支持服务端渲染,通常用于首屏服务端渲染;典型场景是多页列表,首屏服务端渲染翻页客户端渲染,避免首次请求页面时发起2次请求。
2 React Native基础环境:
21 Framework集成:尽管React Native放出了Integration with Existing App文档,集成到现有复杂App中仍然会遇到很多细节问题,比如集成到天猫iPad客户端就花了组里iOS同学2天的时间。
22 Neorking改造:主要是重新建立session,而session通常存放于 header cookie中,React Native提供的网络IO fetch和XML>
是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Androidmvc、简易sqliteorm、ioc模块、封装Android>
目前主要有以下模块:
MVC模块:实现视图与模型的分离。
ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。
数据库模块:android中的orm框架,使用了线程池对sqlite进行 *** 作。
>
缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置
缓存模块:imageview加载的时候无需考虑加载过程中出现的oom和android容器快速滑动时候出现的错位等现象。
配置器模块:可以对简易的实现配对配置的 *** 作,目前配置文件可以支持Preference、Properties对配置进行存取。
日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印
下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。
网络状态检测模块:当网络状态改变时,对网络状态进行检测。
以上就是关于八个最佳的数据中心开源挖掘工具全部的内容,包括:八个最佳的数据中心开源挖掘工具、mysql是完全免费的吗(mysql免费)、漫谈工业大数据9:开源工业大数据软件简介(上)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)