【发布时间】:2019-05-12 19:40:22
【问题描述】:
我有一组文件,大约 300 个文件,每个文件有 50,000 行。每行都是一个带有二进制值(1 或 0)的字符串标签。所有文件都有相同的条目,但二进制值不同。下面的文件示例。
Tag1 0
Tag2 1
...
Tag50000 0
我打算构建一个 Python Flask Web 工具,它具有多个函数,可以比较两个“文件”或查找每个“文件”的特定标记为 1。另一种选择是搜索目录中的所有文件以进行比较。我相信使用一些 SQL 数据库进行查询会非常强大,但是我有一些问题。这就是我想象的数据库的结构方式,但我可能错了。
Filename1 Tag1-value Tag2-value ... Tag50000-value
Filename2 Tag1-value Tag2-value ... Tag50000-value
...
Filename300 Tag1-value Tag2-value ... Tag50000-value
我对 Flask 的 SQLAlchemy 有一些经验,但从我以前的使用来看,每个数据库值都需要在我的应用程序的模型文件中单独声明,这对于 50,000 个特征似乎非常低效。是否可以将所有这些数据输入到不同的 SQL 数据库中并仍然在烧瓶中访问它?
这是我认为必须设置模型的方式,如果有必要,我会写出所有 50,000 个标签,但我必须相信有更简单的方法可以做到这一点。
class Dataset(db.Model):
id = db.Column(db.Integer, primary_key=True)
filename = db.Column(db.String(64), index=True, unique=True)
tag1 = db.Column(db.Boolean) # or tag1 = db.Column(db.Integer)
tag2 = db.Column(db.Boolean) # or tag2 = db.Column(db.Integer)
# ...
tag50000 = db.Column(db.Boolean) # or tag50000 = db.Column(db.Integer)
【问题讨论】:
-
你能澄清一下吗...每个数据库值都需要在我的应用程序的模型文件中单独声明,这对于 50,000 个特征似乎非常低效 ...是否有 50000 个标签?标签是字符串还是其他东西?模型肯定是标记、验证、文件...1 定义
-
不能是 id、file、tagName、val 吗?使其达到 15,000,000 行
-
@AndrewAllen 谢谢我更新了我的问题以包含代码 sn-p。有 300 个文件,每个文件都有相同的 50,000 个字符串标签,但是每个标签的值可以是 1 或 0。这是我学习 SQLAlchemy 的格式。我想可能是这样,我可以试一试。不确定运行时间会受到怎样的影响,但我会试一试。
-
@krokodilko 谢谢你的帮助,这就是我最终实现的。我不确定列数的限制。