大数据ETL实践探索 ---- 使用python 进行 快速EDA综合可视化

2020-04-15 18:10:24 浏览数 (1)


可视化处理的前置处理

数据清洗

对于可视化的过程,拿到一份数据,我们首先要做的是进行数据清洗。我在这篇博文:数据清洗的目的,方法

介绍了数据清洗的一个通用步骤。

针对这个通用流程,我们 准备了一份医疗领域 的通用 样例数据,准备进行分析探查以及基本的可视化工作。

es 目前支持sql

使用pandas 对数据进行处理

我在系列博文中:大数据ETL实践探索(5)---- 大数据ETL利器之 pandas 介绍了pandas 的部分使用。

通过文件加载,我们首先需要将文件中的数据转化为pandas 的dataframe ,


数据存储

数据入库

postgreSQL 安装

最近单位在研究开源的数据库,说实话他的官方文档真是烂,中文的文档版本滞后,下载个CentOS 7 内核版本还要找半天:Linux downloads (Red Hat family)

代码语言:javascript复制
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

yum install postgresql12

yum install postgresql12-server
代码语言:javascript复制
# postgresql-12-setup initdb 命令不支持后跟参数设置编码,但是查官网init 又可以,很迷惑
/usr/pgsql-12/bin/postgresql-12-setup initdb 

systemctl enable postgresql-12
systemctl start postgresql-12

之前在一些虚机上安装时候发现,如果没有在开始时候指定字符集,那么后来修改会比较麻烦:

https://tutorials.technology/tutorials/How-to-change-postgresql-database-encoding-to-UTF8-from-SQL_ASCII.html

强烈建议阅读下文:字符集修改:字符集修改

其中提到,只要locale字符集正确,postgresql 默认字符集就ok ,

  • 修改配置文件

修改登录及监听

修改配置文件(非常关键),操作如下:

代码语言:javascript复制
cd /var/lib/pgsql/data

首先,修改postgresql.conf,将 listen_addresses 这一行的ip地址改为  listen_addresses ='*',代表监听所有端口,如果不改后面会出错。

其次,修改pg_hba.conf,将indent全部改为trust; 

另外,pg_hba.conf的#IPv4 local connections 下添加一列:

host    all             all             0.0.0.0/0              md5      //这是由于每台远程机器的ip都不统一,pgadmin登录的时候ip不一致将无法连接数据

之后重启服务。

修改时区

代码语言:javascript复制
# 查找配置文件目录
find / -name postgresql.conf

vi /var/lib/pgsql/data/postgresql.conf
  • 数据入库
代码语言:javascript复制
# coding:utf-8

from sqlalchemy import create_engine

class connet_databases:
    def __init__(self):
        '''
        # 初始化数据库连接,使用pymysql模块
        # MySQL的用户:root, 密码:147369, 端口:3306,数据库:mydb
        '''
        
        _host = '39.108.131.88'
        _port = 3306
        _databases = 'san_jin_sq'  # 'produce' #

        _username = 'wuzaipei'
        _password = 'wuzaipei'

        self._connect = r'mysql pymysql://{username}:{password}@{host}:{port}/{databases}'.format(
            username=_username,
            password=_password,
            host=_host,
            port=_port,
            databases=_databases)

engine = create_engine(connet_databases()._connect, echo=True)

数据入ES


非结构化数据可视化

  • kibana 文档特性
  • kibana 文档目录

非结构化数据的可视化,我们可以使用elastic search 配套的kibana 进行可视化 的绘制。

结构化数据可视化

cubes

  • cubes 官网
  • cubes 文档

superset

superset 官网

技术调研----BI工具对比及Surperset 之 docker安装与可视化

0 人点赞