python数值太小都为0怎么办_记一次小机器的 Python 大数据分析

本文介绍了如何在资源有限的小型机器上处理大规模数据分析。作者分享了数据导入、导出、校验的策略,以及在分析阶段的性能优化技巧,如文件系统选择、化整为零、进程池利用等,特别提到了Python中DataFrame的内存管理问题及其应对策略。
摘要由CSDN通过智能技术生成

0x00 前言

机缘巧合,最近公司突然要搞一波大量数据的分析。属于客流类的分析。

数据量级也还算不错,经过 gzip 压缩,接近 400 个 点位的 SQL 文件 (MySQL innoDB),大小接近 100GB 左右,原始记录数据估测在 180 亿左右。

解压后…… 差不多一个 T 吧。

如果是人民币玩家,自然是直接购置几十台高配置机器,做个 mysql shard 或者直接上大数据全家桶比如 hadoop 和 hive 之类,让程序员去往死里折腾吧。嗯,然而对于我这种非人民币玩家,就要用单机硬扛。

那就硬扛呗。

我手上的机器配置如下:局域网服务器 ( Ubuntu 16.04 LTS )Xeon(R) CPU E3-1225 v5 @ 3.30GHz

16G 内存

1T 硬盘

苹果电脑 2016 年 15 寸 最高配1T 硬盘

i7 四核

0x01 准备数据阶段

用低配机器分析大数据的首要原则,就是不要分析大数据。

何也?就是尽可能的抽取所得结论所需分析数据的最小超集

小机器是无法完成海量计算的,但通过一定的过滤和筛选可以将数据筛选出到一台机器能扛得住的计算量。从而达到可以可以分析海量数据的目的。

1.1 将数据导入 MySQL 中

我们先不管三七二十一,既然给了 SQL 文件,肯定要入库的,那么问题来了:将大象关进冰箱要几个步骤

将数据导入数据库中需要几个步骤

或者说,如何更快的导入 400 张不同表的数据。

大致步骤如下:新增硬盘,并初始化

配置 MySQL 的 datadir 到新增硬盘上

导入数据 (PV & MySQL)

新增硬盘,并初始化

首先,购买并插入硬盘

使用 lshw 查看硬盘信息

root@ubuntu:~# lshw -C disk

*-disk

description: SCSI Disk

product: My Passport 25E2

vendor: WD

physical id: 0.0.0

bus info: scsi@7:0.0.0

logical name: /dev/sdb

version: 4004

serial: WX888888HALK

size: 3725GiB (4TB)

capabilities: gpt-1.00 partitioned partitioned:gpt

configuration: ansiversion=6 guid=88e88888-422d-49f0-9ba9-221db75fe4b4 logicalsectorsize=512 sectorsize=4096

*-disk

description: ATA Disk

product: WDC WD10EZEX-08W

vendor: Western Digital

physical id: 0.0.0

bus info: scsi@0:0.0.0

logical name: /dev/sda

version: 1A01

serial: WD-WC888888888U

size: 931GiB (1TB)

capabilities: partitioned partitioned:dos

configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=f1b42036

*-cdrom

description: DVD reader

product: DVDROM DH1XXX8SH

vendor: PLDS

physical id: 0.0.0

bus info: scsi@5:0.0.0

logical name: /dev/cdrom

logical name: /dev/dvd

logical name: /dev/sr0

version: ML31

capabilities: removable audio dvd

configuration: ansiversion=5 status=nodisc

使用 fdisk 格式化硬盘,并且分区

fdisk /d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值