python如何做数据分析

Python012

python如何做数据分析,第1张

用Python做数据分析,大致流程如下:

1、数据获取

可以通过SQL查询语句来获取数据库中想要数据。Python已经具有连接sql server、mysql、orcale等主流数据库的接口包,比如pymssql、pymysql、cx_Oracle等。

2、数据存储

企业当中的数据存储,通过通过数据库如Mysql来存储与管理,对于非结构化数据的存储可以使用MongoDB等。对于使用Python进行网络抓取的数据,我们也可以使用pymysql包快速地将其存储到Mysql中去。

3、数据预处理/数据清洗

大多数情况下,原始数据是存在格式不一致,存在异常值、缺失值等问题的,而不同项目数据预处理步骤的方法也不一样。Python做数据清洗,可以使用Numpy和Pandas这两个工具库。

4、数据建模与分析

常见的数据挖掘模型有:分类、聚类、回归等,这些常见的算法模型,Python也有Scikit-learn和Tensorflow工具库来支持。

5、数据可视化分析

在数据可视化方面,Python有Matplotlib、Seaborn、Pyecharts等工具库可用。

连接

kafka

的库有两种类型,一种是直接连接

kafka

的,存储

offset

的事情要自己在客户端完成。还有一种是先连接

zookeeper

然后再通过

zookeeper

获取

kafka

brokers

信息,

offset

存放在

zookeeper

上面,由

zookeeper

来协调。

我现在使用

samsa

这个

highlevel

Producer示例

from

kazoo.client

import

KazooClientfrom

samsa.cluster

import

Clusterzookeeper

=

KazooClient()zookeeper.start()cluster

=

Cluster(zookeeper)topic

=

cluster.topics['topicname']topic.publish('msg')

**

Consumer示例

**

from

kazoo.client

import

KazooClientfrom

samsa.cluster

import

Clusterzookeeper

=

KazooClient()zookeeper.start()cluster

=

Cluster(zookeeper)topic

=

cluster.topics['topicname']consumer

=

topic.subscribe('groupname')for

msg

in

consumer:

print

msg

Tip

consumer

必需在

producer

kafka

topic

里面提交数据后才能连接,否则会出错。

Kafka

中一个

consumer

需要指定

groupname

groue

中保存着

offset

等信息,新开启一个

group

会从

offset

0

的位置重新开始获取日志。

kafka

的配置参数中有个

partition

,默认是

1

,这个会对数据进行分区,如果多个

consumer

想连接同个

group

就必需要增加

partition

,

partition

只能大于

consumer

的数量,否则多出来的

consumer

将无法获取到数据。

这么具体的问题,找通用demo很难啊,个人觉得问题的难点不在Python。

1. 获取什么服务器性能数据和如何获取,可以请教公司内部运维。

2. 获取什么数据库性能数据和如何获取,可以请教公司内部DBA。

3. 以上两点搞定了,才能确定临时数据存储结构和最终数据库表结构。

以上三点是关键,Python的事情就简单多了,提供一种思路:一分钟一次,实时性不高,每台服务器用cron部署一个a.py,用于获取性能数据,在某一台服务器有一个b.py,负责获取所有服务器a.py产生的数据,然后写入数据库;a.py如何上报到b.py取决于你擅长什么,如果熟悉网络编程,用a.py做客户端上报到服务端b.py,如果熟悉shell的文件同步(如rsync),a.py只写本地文件,b.py调用c.sh(封装rsync)拉取远程文件。