python - Amazon EC2 和 S3 何时使用 Python/SQLite?

标签 python sqlite amazon-s3 amazon-ec2

假设我有一个巨大的 SQLite 文件(比如 500[MB])存储在 Amazon S3 中。 在小型 EC2 实例上运行的 python 脚本能否直接访问和修改 SQLite 文件?还是我必须先将文件复制到 EC2 实例,在那里进行更改,然后再复制到 S3

I/O 是否高效?

这就是我想要做的。如我所写,我在 S3 中有一个 500[MB] SQLite 文件。我想开始说 10 个不同的 Amazon EC2 实例,每个实例将读取文件的一个子集并进行一些处理(每个实例将处理 500[MB] SQLite 的不同子集 文件)。然后,一旦处理完成,每个实例将只更新它所处理的数据子集(如前所述,进程之间不会有数据重叠)。

例如,假设 SQLite 文件有 1M 行:

实例 1 将处理(和更新)行 0 - 100000

实例 2 将处理(和更新)行 100001 - 200000

......................................

实例 10 将处理(和更新)行 900001 - 1000000


有可能吗?听起来不错吗?欢迎任何建议/想法。

最佳答案

I'd like to start say 10 different Amazon EC2 instances that will each read a subset of the file and do some processing (every instance will handle a different subset of the 500[MB] SQLite file)

你不能用 SQLite 做到这一点;在亚马逊基础设施或其他方面。 sqlite 执行数据库级别的写锁定。除非所有十个节点都以独占方式执行读取,否则您将无法获得任何类型的并发。 Even the SQLite website says so.

Situations Where Another RDBMS May Work Better

  • Client/Server Applications
  • High-volume Websites
  • Very large datasets
  • High Concurrency

您考虑过 PostgreSQL 吗?

关于python - Amazon EC2 和 S3 何时使用 Python/SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6301795/

相关文章:

python - 使用 Python Win32Com.Client 发送电子邮件发送错误

sql - 如何在sqlite中预先存在的数据表的开头插入X行

python - 让一个令人困惑的复杂 mysql 请求工作

amazon-web-services - Amazon S3 CLI 授予选项

amazon-s3 - 使用 Amazon Java SDK 和额外/字符的 Amazon S3 预签名 URL

python - bash 等同于 os.walk?

python - 为什么这些 apt-packages 在 Ubuntu 和 Heroku 上表现不一样?

ios - 递归上传目录 iOS AWS S3

python - 如何提高分类的F1分数

java - 在 Android 上创建 SQLite 数据库时出错(代码 1)