我猜楼主问这个问题,主要还是对数据分析技术不太了解
先说结论:
如果你是想搭建完整的数据分析解决方案,从存储,数据处理和清洗,分析,可视化,那就用java,毕竟java这块解决方案和框架较多,比如hadoop,spark,flink等
如果你只是纯数据分析,数据集比较单一,比如想快速在excel或数据库中,检索,查询,提炼自己想要的数据,就用python
我们来看看目前企业对数据分析的需求吧:
20%的数据发挥着80%的业务价值;
80%的数据请求只针对20%的数据。
目前来看,不管是数据存储处理、分析还是挖掘,最完整和成熟的生态圈还是基于关系型数据库,比如报表、联机分析等工具;另外就是数据分析人员更偏重于查询分析语言如SQL、R、Python数据分析包而不是编程语言。
企业大数据平台建设的二八原则是,将20%最有价值的数据——以结构化的形式存储在关系型数据库中供业务人员进行查询和分析;而将80%的数据——以非结构化、原始形式存储在相对廉价的Hadoop等平台上,供有一定数据挖掘技术的数据分析师或数据工程师进行下一步数据处理。经过加工的数据可以以数据集市或数据模型的形式存储在NoSQL数据库中,这也是后面要讲到的“离线”与“在线”数据。
数据库到数据仓库,是事务型数据到分析型数据的转变,分析型数据需要包括的是:分析的主题、数据的维度和层次,以及数据的历史变化等等。而对大数据平台来说,对分析的需求会更细,包括:
查询:快速响应组合条件查询、模糊查询、标签
搜索:包括对非结构化文档的搜索、返回结果的排序
统计:实时反映变化,如电商平台的在线销售订单与发货计算出的库存显示
挖掘:支持挖掘算法、机器学习的训练集
针对不同的数据处理需求,可能需要设计不同的数据存储,还需要考虑如何快速地将数据复制到对应的存储点并进行合适的结构转换,以供分析人员快速响应业务的需求。
JAVA技术栈:
一个分布式系统基础架构。
解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储(HDFS)和处理(MapReduce)。
是建立在Hadoop之上的,使用Hadoop作为底层存储的批处理系统。(可以理解为MapReduce的一层壳)
Hive是为了减少MapReduce jobs的编写工作。
Hbase是一种Key/Value系统,它运行在HDFS之上。
Hbase是为了解决Hadoop的实时性需求。
Spark和Storm都是通用的并行计算框架。
解决Hadoop只适用于离线数据处理,而不能提供实时数据处理能力的问题。
区别:
1. Spark基于这样的理念,当数据庞大时,把计算过程传递给数据要比把数据传递给计算过程要更富效率。而Storm是把数据传递给计算过程。
2. 基于设计理念的不同,其应用领域也不同。Spark工作于现有的数据全集(如Hadoop数据)已经被导入Spark集群,Spark基于in-memory管理可以进行快讯扫描,并最小化迭代算法的全局I/O操作。Storm在动态处理大量生成的“小数据块”上要更好(比如在Twitter数据流上实时计算一些汇聚功能或分析)。
Python技术栈
一张图搞定
python技术栈
对于小中型数据一般通过python就可以完成数据分析,对于大数据的数据分析需要使用分布式数据存储和计算技术,一些常用的工具,hadoop,hive,spark,flink等。
掌握数据可视化工具使用,可以帮助我们快速了解业务数据,比如pyecharts,seaborn,plotly,matplotlib等
在进行python数据分析时候,可以借助一些工具库快速完成,比如pandas,numpy
一般公司中多用python来进行数据分析,毕竟数据科学狠多插件都非常的好用,希望对你有帮助,让我们共同进步。