关于2000W数据
前几天在博客园首页看到这个2000W数据的消息,刚好这个学期正在SQL入门,加上好奇心的驱使,把这个下载下来。
一个是600多M的CSV文件,还有一个是1.7G的SQL Server的备份文件,解压后都接近8G了,试着在sql server2000上导入一下,貌似直接就说太多了……汗
所以,只好先看看这个CSV文件了,这个解压后也接近2G了,一般的文本编辑器似乎都没辙了,excel之类的东西更是别指望了,好吧,我先承认我的电脑很差,80G的硬盘,并口,ATA/133……呃
我用HEX编辑软件查看了一下,居然是UTF8的编码,那就先用Python简单写段查询,看看有没有村里人中枪吧,哈哈
# -*- coding: utf-8 -*-
def cn(s):
return s.decode("utf8").encode("gbk") try:
fp=file("2000w.csv","r")
while 1:
fp.seek(0)
word=raw_input(cn("查询关键词:"))
fout=file(word+".txt","w")
#sline=int(raw_input(cn("起始行:")))
if word=='exit':break
word=word.decode("gbk").encode("utf8")
i=0
print "start..."
while 1:
i=i+1
datl=fp.readline()
if datl=="":break
if i%10000==0:print i
#if i<sline:continue
if datl.find(word)>0:
tstr=cn("【Line:%d】%s"%(i,datl))
print tstr,
print>>fout,tstr,
#pmt=raw_input(cn("是否继续(y/n):"))
#if pmt=='n':break
print "end"
fout.close()
finally:
fp.close()
fout.close()
顺便把查询记录也保存为一个文件,结果……似乎没发现认识的人,看来他们的保密措施做的不错,哈哈。
终归还是为了练习SQL的,所以还是要将数据导入到sql server先。
在此吐槽一下微软的东西,安装包越做越大,装个软件好几个小时,记得去年装个VS2012Express居然花了整整一上午!!!
所以,对于我这种偏执狂以及标准穷屌丝来说,VC用6.0,sql server用2000的,还是云端版,才几十M,入门学习足够了,哈哈。
回正题,我试着将CSV文件导入到SQL Server里去,发现编码方式只能选择ANSI或者Unicode之类的,选Unicode后英文字符都不正确了,ANSI的话中文肯定乱码,所以还是用Python将编码转成UTF8,插了下资料,UTF8的文本文件有个3字节的文件头,EFBBBF,我直接把它忽略了,哈哈
#MAXLIST=1000
frp=file("2000w_utf8.csv","r")
fwp=file("2000w_ansi.csv","w")
i=1
dat=frp.readline()
fwp.write(dat[3:])
try:
while 1:
i=i+1
if i%10000==0:print i
dat=frp.readline()
if dat=="":break
#if i>MAXLIST:break
else:
try:
dat_w=dat.decode("utf8").encode("gbk")
except UnicodeEncodeError:
print "gbk encode error"
fwp.write(dat)
fwp.write(dat_w)
except Exception,e:
print e
finally:
frp.close()
fwp.close()
print "ok"
这样,导入SQLServer就正确了。
PS:我的数据似乎只有1200多万,没有2000W啊,不知是不是没有下载到完整版,嘿嘿
关于2000W数据的更多相关文章
- 某酒店2000W数据
某酒店2000W数据 2000万开房信息 [某酒店2000w数据 ct2000(解压密码:sjisauisa是就数据8很舒适好sjjss).rar] 国内安全漏洞监测平台乌云(WooYun.org)近 ...
- 2000w数据,redis中只存放20w的数据,如何保证redis中的数据都是热点数据
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略. redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires) ...
- 2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i].expires) ...
- MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如 何保证 redis 中的数据都是热点数据?
Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略. 相关知识:Redis 提供 6 种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i]. ...
- 2000W条数据,加入全文检索的总结
一) 前期准备测试: 旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上. 不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息 ...
- 【数据库】_由2000W多条开房数据引发的思考、实践----给在校生的一个真实【练耙场】,同学们,来开始一次伟大的尝试吧。
× 缘起---闲逛博客园 前几天的时候,在某一QQ群看到一条消息“XXX酒店开房XXXBTXX迅雷BT下载”,当时是一目十行的心态浏览,目光掠过时, 第一反应我想多了~以为是XX种子(你懂的~ ...
- 借网上盛传2000w记录介绍多进程处理
2000w的数据在网上搞得沸沸扬扬,作为技术宅的我们也来凑凑热闹.据了解网上有两个版一个是数据库文件另一个是CSV文件的,前者大小有好几个G后者才几百M.对于不是土豪的我们当然下载几百M的.至于在哪下 ...
- redis之数据操作详解
redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...
- Mysql学习总结(35)——Mysql两千万数据优化及迁移
最近有一张2000W条记录的数据表需要优化和迁移.2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升.不过这些数据有大量的冗余字段和错误信息,极不 ...
随机推荐
- java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)
项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; ...
- hdu 1211 RSA
// 表示题目意思我是理解了蛮久 英语太水了 //首先这是解密公式 m=c^d mod n// 给你 p q e 然后 n=p*q fn=(p-1)*(q-1)// 给你 e,根据公式 e*d mod ...
- winform实现自动更新并动态调用form实现
winform实现自动更新并动态调用form实现 标签: winform作业dllbytenull服务器 2008-08-04 17:36 1102人阅读 评论(0) 收藏 举报 分类: c#200 ...
- Js原型模式
function Person(){ } Person.prototype.name = "xd"; Person.prototype.age = 26; Person.proto ...
- 开学了!这些Linux认证你要知道。
导读 大家好,今天我们将认识一些非常有价值的全球认可的Linux认证.Linux认证是不同的Linux专业机构在全球范围内进行的认证程序.Linux认证可以让Linux专业人才可以在服务器领域或相关公 ...
- Android访问权限大全
android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allows read/w ...
- HDU5697 刷题计划 dp+最小乘积生成树
分析:就是不断递归寻找靠近边界的最优解 学习博客(必须先看这个): 1:http://www.cnblogs.com/autsky-jadek/p/3959446.html 2:http://blog ...
- virtualbox虚拟机中mysql远程连接登陆报2003错误的解决方法
最近在virtualbox中安装了Ubuntu 14,配置了一个mysql server,设置的桥接网络模式.在其他电脑连接的时候,总是报2003错误.开始以为是localhost没有置换为%,运行u ...
- 【C++对象模型】构造函数语意学之一 默认构造函数
默认构造函数,如果程序员没有为类定义构造函数,那么编译器会在[需要的时候]为类合成一个构造函数,而[需要的时候]分为程序员需要的时候和编译器需要的时候,程序员需要的时候应该由程序员来做工作,编译器需要 ...
- C语言反转字符串
也是面腾讯的一道编程题=,= 这题比较简单 代码如下: #include <stdio.h> #include <string.h> // 非递归实现字符串反转 char *r ...