(内存中)数据库

你好呀,
我需要在此数据上从文本文件(〜4 GB)中提取数据
执行操作就像AVG,Max,Min,Group等.结果是
在其他一些文本文件(一些KB)中编写和编写.
我目前考虑的数据库工具可能适合于此.我
只会从文本文件中写入导入,...工具确实
其余的部分.我唯一能想象的问题是,这不会
足够快.但是我会拍摄.
不幸的是,我只有一些对Sqlite的了解
选项在这里.
我能想到的一些其他要求是:
- Python(我也想磨练我的编程技能)
- 仅Python-(无C-LIB),以简单起见(安装,便携性).
因此,sqlite不是一个选择
- 必须快速
- 我喜欢SQL(选择A,B.)这会很好(行[..] + ...
有点习惯了)
到目前为止
比较初学者.
干杯,
标记

# 回答1


马克写道:
您可能可以通过数据流处理来完成所有操作,但是如果您
没有使用此类算法,只将其全部塞入数据库中
对您来说可能更少(如果不是您的CPU).
为什么SQLITE没有选项?如今,它与Python捆绑在一起,
并且应在所有主要部署
平台.
# 回答2


在文章中
fredrik lundh
# 回答3


在8月31日,16:45,CLA ...@lairds.us(Cameron Laird)写道:
从debian软件包信息的角度来看,这很奇怪:http://packages.debian.org/etch/python2.5 http://packages.debian.org/lenny/python2.5
两者都有libsqlite3-0作为依赖性.在我的Ubuntu系统上,相同
依赖性适用.
不过,我不确定Novell是否可以帮助解决此问题. ;-)
哪个Debian版本和哪个软件包存储库?我想那个
可能已经有python 2.5的Backports到Debian 3.1(Sarge)和
早些时候,但是我在运行Python 2.5之前与Sqlite的经历
在Ubuntu上涉及使用Python 2.4的Pysqlite2模块
反而.由于Python 2.5成为Ubuntu的默认值,我不记得
sqlite有任何问题.
保罗
# 回答4


In article ,
Paul Boddie 从debian软件包信息的角度来看,这很奇怪:http://packages.debian.org/etch/python2.5http://packages.debian.org/lenny/python2.5both libsqlite3-0 libsqlite3-0作为依赖性.在我的Ubuntu系统上,SameDependenty适用.不过,我不确定Novell是否可以帮助解决此问题. ;-)哪个Debian版本和哪个软件包存储库?我想,可能是Python 2.5的Backports到Debian 3.1(Sarge)Andearlier,但是在运行Python 2.5 On Ubuntu之前,我自己在SQLITE上的经历涉及将Pysqlite2模块与Python 2.4Instead一起使用.自从 Python 2.5成为Ubuntu的默认值,我不记得Sqlite.paul的任何问题
保罗,感谢您追求这一点.你现在让我好奇.
让我们以一个明确的例子:我有方便
Ubuntu 8.04.1
/etc/apt/sources.list的内容是
deb http://us.archive.ubuntu.com/ubuntu hardy主要受限
deb http://us.archive.ubuntu.com/ubuntu hardy-up-主要限制
deb http://us.archive.ubuntu.com/ubuntu hardy Universe Multiverse
deb http://security.ubuntu.com/ubuntu hardy-security主要受限
我愿意
apt-get更新
适合升级
apt-get安装python2.5
然后
#python2.5
Python 2.5(R25:51908,2006年12月11日,21:09:56)
[GCC 4.0.3(Ubuntu 4.0.3-1ubuntu5)]在Linux2上
键入"帮助","版权","学分"或"许可"以获取更多信息.
Trackback(最近的最新电话):
文件" ",第1行,<模块>
文件"/usr/local/lib/python2.5/sqlite3/__init__.py",第24行,in
从dbapi2导入 *
文件"/usr/local/lib/python2.5/sqlite3/dbapi2.py",第27行,
来自_sqlite3导入 *
Importerror:没有名为_sqlite3的模块3
您如何解释这个?
# 回答5


8月31日,20:05,CLA ...@lairds.us(Cameron Laird)写道:
Trackback(最近的最新电话):
文件" ",第1行,<模块>
文件"/usr/local/lib/python2.5/sqlite3/__init__.py",第24行,in
从dbapi2导入 *
文件"/usr/local/lib/python2.5/sqlite3/dbapi2.py",第27行,
来自_sqlite3导入 *
Importerror:没有名为_sqlite3的模块3
您如何解释这个?
如果您运行此命令,您会得到什么?
DPKG -S Python2.5
对我来说,我得到一些提到以下内容的信息:
软件包:Python2.5
[...]
依赖性:python2.5米数(= 2.5.1-0ubuntu1.2),哑剧支持,
libbz2-1.0,libc6(> = 2.5-0ubuntu1),libdb4.4,
libncursesw5(> = 5.4-5),libreadline5(> = 5.2),
libsqlite3-0(> = 3.3.13),libssl0.9.8(> = 0.9.8c-1)
注意Libsqlite3-0软件包的存在.此外,您应该
在某个地方有SQLITE3扩展模块:
找到sqlite3.so
这应该告诉您Sqlite库以及哪里
扩展模块是.对我来说,我得到了包括
下列的:
/USR/lib/python2.5/lib-dynload/_sqlite3.so
/USR/lib/libsqlite3.so.0
将其中一个传递给" DPKG -S"应该说提供了哪个包装
它.
奇怪的是,您的Ubuntu软件包信息
版本确实提到了sqlite依赖性,并包括扩展名
文件列表中的模块:http://packages.ubuntu.com/hardy/python2.5
您可以运行以下命令以查看您的python2.5是否
软件包确实提供了扩展模块:
dpkg -listfiles python2.5
即使安装了SQLite库,如果该软件包没有
提供扩展模块,因为
它应该在那里.
保罗
# 回答6


在文章,
Paul Boddie 痕迹 back(最近的最新通话):文件" ",第1行, file"/usr/local/lib/python2.5/sqlite3/__init__.py",第24行,in
<模块>
如果您运行此命令,您会得到什么?
dpkg -s python2.5对于我来说,我得到了一些提到以下内容的信息:
软件包:Python2.5
[...]
依赖性:python2.5米数(= 2.5.1-0ubuntu1.2),哑剧支持,
libbz2-1.0,libc6(> = 2.5-0ubuntu1),libdb4.4,
libncursesw5(> = 5.4-5),libreadline5(> = 5.2),
libsqlite3-0(> = 3.3.13),libssl0.9.8(> = 0.9.8c-1)
为了我:
依赖性:libbz2-1.0,libc6(> = 2.4),libdb4.6,libncursesw5(> = 5.6+20071006-3),libreadline5(> = 5.2),libsqlite3-0(> 3.4.2),libssl0.9.8(libssl0.9.8( > = 0.9.8f-1),哑剧,python2.5分钟(= 2.5.2-2-2ubuntu4.1)
/USR/lib/python2.5/lib-dynload/_sqlite3.so
/USR/lib/libsqlite3.so.0.8.6
/USR/lib/xulrunner-1.9.0.1/libsqlite3.so
/USR/lib/xulrunner-1.9.0.1/libsqlite3.so.0
/USR/lib/libsqlite3.so.0
/USR/lib/libsqlite3.so
libsqlite3-dev:/usr/lib/libsqlite3.so
#dpkg -listfiles python2.5 | Grep Sqli
/USR/lib/python2.5/sqlite3
/USR/lib/python2.5/sqlite3/test
/USR/lib/python2.5/sqlite3/test/__init__.py
/USR/lib/python2.5/sqlite3/test/dbapi.py
/USR/lib/python2.5/sqlite3/test/factory.py
/USR/lib/python2.5/sqlite3/test/hooks.py
/USR/lib/python2.5/sqlite3/test/regression.py
/USR/lib/python2.5/sqlite3/test/transactions.py
/USR/lib/python2.5/sqlite3/test/types.py
/USR/lib/python2.5/sqlite3/test/userfunctions.py
/USR/lib/python2.5/sqlite3/__init__.py
/USR/lib/python2.5/sqlite3/dbapi2.py
/USR/lib/python2.5/lib-dynload/_sqlite3.so
我当然很困惑,欢迎建议.
# 回答7


在8月31日,21:29,CLA ...@lairds.us(Cameron Laird)写道:
[大量输出建议正确的软件包配置]
也许...
哪个python
我认为让·保罗(Jean-Paul)的回应可能会带来一些影响.是
指的是系统包装的Python?总是有" python -v"
和/或" strace python",以获取可能发生的一切
否则.
保罗
# 回答8


Debian Lenny这里没有问题.
通过.... apt-get安装xxxx的所有软件包....
$ uname -a
Linux EM1 2.6.25-2-686#1 SMP星期五7月18日17:46:56 UTC 2008 I686 GNU/Linux
$ DPKG -L | grep sqlite
II libhk-classes-sqlite3 0.8.3-4 sqlite 3驱动程序插件HK_Classes
II LIBSQLITE3-0 3.5.9-3 SQLITE 3共享库
II python-pysqlite2 2.4.1-1 python界面至sqlite 3
II SQLITE3 3.5.9-3 SQLITE的命令行接口3
$ py
Python 2.5.2(R252:60911,2008年8月8日,09:22:44)
[GCC 4.3.1]在Linux2上
键入"帮助","版权","学分"或"许可"以获取更多信息.
- -
Stanley C. Kitching

亚利桑那州凤凰城
# 回答9


来自Kubuntu 8.04 ....
$ uname -a
Linux EM1 2.6.24-19总生成#1 SMP
8月20日,星期三22:56:21 UTC 2008 I686 GNU/Linux
$ DPKG -L | grep sqlite
ii libsqlite0 2.8.17-4build1 sqlite共享库
II LIBSQLITE3-0 3.4.2-2 SQLITE 3共享库
$ py25
Python 2.5.2(R252:60911,Jul 31 2008,17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2-2ubuntu7)]在Linux2上
键入"帮助","版权","学分"或"许可"以获取更多信息.
现在我的估计是力量
目前不与您同在.... :-)
- -
Stanley C. Kitching

亚利桑那州凤凰城
# 回答10


标记écrit:
这是先验的,还是您实际上是基准的并发现了
不符合您的要求吗?
对于某些"快速"的值,这两个要求可能会发生冲突.
从未使用过任何一个
我的机器 - ,所以我在这里无济于事.
# 回答11


马克在2008-08-31 15:15写道:
您可以使用gadfly为此,因为它是纯粹的python并提供
标准Python DB-API接口:http://gadfly.sourceforge.net/
(C扩展名是可选的,加速处理)
这是它支持的SQL子集:http://gadfly.sourceforge.net/sql.html
另一个选项是snakesql:http://pythonweb.org/projects/snakesql/
但是我从来没有使用过那个,所以不能判断它的质量.
- -
马克·安德烈·伦堡
egenix.com
直接来自来源的专业Python服务(#1,2008年9月1日)
______________________________________________________________________________________________________
::::尝试MXODBC.ZOPE.DA Windows,Linux,Solaris,MacOSX免费! ::::
egenix.com软件,技能和服务GmbH Pastor-Loeh-Str.48
D-40764德国Langenfeld.首席执行官大队.马克·安德烈·伦堡
在Amtsgericht Duesseldorf注册:HRB 46611
# 回答12


我不明白为什么卡梅伦有不同版本的python
同意,但包裹经理不会告诉他Python-Sqlite是否是
安装了?那将是下一步,因为它看起来是Sqlite
intself已经安装.由于Ubuntu使用了预称的二进制文件,因此
应该为sqlite配置python,这再次不留下python-
sqlite是唯一的可能性(是的).顺便说一句
手动安装.
# 回答13


Zentrader写道:
同意,但包裹经理不会告诉他Python-Sqlite是否是
安装了?那将是下一步,因为它看起来是Sqlite
intself已经安装.由于Ubuntu使用了预称的二进制文件,因此
应该为sqlite配置python,这再次不留下python-
sqlite是唯一的可能性(是的).顺便说一句
手动安装.
当您从源中手动安装Python时,您需要标题文件
sqlite3获得sqlite3支持.这些在Libsqlite3-DEV包中.
我认为您可以将手动安装的Python与包装区分开
一个由.../local/...在其路径中,e. g.,在我的机器上
$ python2.5#在发行中
/USR/BIN/PYTHON2.5
$ python2.6
/USR/local/bin/python2.6#从源安装
我已经安装了libsqlite3-dev,所以我无法复制卡梅隆的错误,但是
这是BSDDB类似的:
$ Python2.5
Python 2.5.1(R251:54863,2008年7月31日,23:17:43)
[GCC 4.1.3 20070929(Preelease)(Ubuntu 4.1.2-16ubuntu2)]在Linux2上
键入"帮助","版权","学分"或 "许可"以获取更多信息.
'/usr/lib/python2.5/bsddb/__init__.pyc'
$ Python2.6
Python 2.6b2+(后备箱:65902,2008年8月20日,08:38:26)
[GCC 4.1.3 20070929(Preelease)(Ubuntu 4.1.2-16ubuntu2)]在Linux2上
键入"帮助","版权","学分"或"许可"以获取更多信息.
Trackback(最近的最新电话):
文件" ",第1行,<模块>
文件"/usr/local/lib/python2.6/bsddb/__init__.py",第58行,in
导入_bsddb
Importerror:没有名为_bsddb的模块
彼得
PS:是的,我正在使用2.6,但我认为这与问题无关.
# 回答14


在9月2日,17:38,Zentrader 同意,但包裹经理不会告诉他Python-Sqlite是否是
安装了?
它不需要安装:Python2.5软件包包括
SQLITE3模块和_sqlite扩展模块.他跑得更多
Ubuntu的现代版本比我的现代版本,但我认为他们没有
以任何形式重新引入了Python-Sqlite包装.
确实,这就是为什么我认为必须手动安装
python在他的系统上,特别是考虑到/usr/local/lib/python2.5/
sqlite3/__ Init__.py是追溯中提到的文件之一.
保罗

标签: python

添加新评论