我正在尝试设计表来建立一个跟随者关系.
假设我有一个包含用户,主题标签和其他文本的140char记录流.
用户关注其他用户,也可以关注主题标签.
我概述了我在下面设计的方式,但我的设计有两个限制.我想知道其他人是否有更聪明的方法来实现同样的目标.
这个问题是
代码
class HashtagFollowers(db.Model):
"""
This table contains the followers for each hashtag
"""
hashtag = db.StringProperty()
followers = db.StringListProperty()
class UserFollowers(db.Model):
"""
This table contains the followers for each user
"""
username = db.StringProperty()
followers = db.StringListProperty()
class stream(db.Model):
"""
This table contains the data stream
"""
username = db.StringProperty()
hashtag = db.StringProperty()
text = db.TextProperty()
def save(self):
"""
On each save all the followers for each hashtag and user
are added into …Run Code Online (Sandbox Code Playgroud) 我喜欢使用其他GAE应用程序中保存在一个GAE应用程序中的数据.基本上在Google App Engine(Python)开发和生产中共享多个Web应用程序之间的数据存储.
如果可能的话: http:// localhost:####/_ ah/admin/datastore 我喜欢在其他应用程序中查看未运行和/或在一个屏幕上运行的数据?
谢谢您的帮助!
我想存储整数列表(用户ID),我应该使它们成为字符串并使用StringListProperty,或者只使用ListProperty,我想知道什么是更优化的,异构ListProperty的特定StringListProperty(当仅与Integers一起使用时) ).
我需要将用户添加到列表中,直到达到一定数量,然后我为这些用户创建一个组实例(在一个单独的实体组中).
假设您有一个"用户"记录的概念,您希望将其存储在数据存储中.
class User (db.Model):
first_name = db.StringProperty()
last_name = db.StringProperty()
created = db.DateTimeProperty(auto_now_add=True)
twitter_oauth_token = db.StringProperty()
twitter_oauth_secret = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
几乎在您使用用户对象时都会使用某些字段,例如first_name和last_name.
但是,有些字段只有一个用例,例如,twitter_oauth_token和twitter_oauth_secret,当95%的时间不需要它们时,打扰序列化和反序列化效率会有些低效.
所以,如果你拆分你的模型:
class User (db.Model):
first_name = db.StringProperty()
last_name = db.StringProperty()
created = db.DateTimeProperty(auto_now_add=True)
class UserTwitterOauth(db.Model):
oauth_token = db.StringProperty(required=True)
oauth_secret = db.StringProperty(required=True)
created = db.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
你可以在UserTwitterOauth中为User提供一个ReferenceProperty,但这实际上是一对多的,因为没有什么能阻止每个用户使用多个UserTwitterOauth对象.您希望最多只有一个UserTwitterOauth与任何用户相关.您如何一对一地联系这些模型?
我似乎记得在某处读取谷歌应用程序引擎自动将非常频繁的查询结果缓存到内存中,以便更快地检索它们.
它是否正确?
如果是这样,这些查询的数据存储读取是否仍有费用?
我的数据库中有两个连接的实体.我们将它们称为A和B.我在内存中有一个A实例(我们称之为a),以下查询当前有效:
B.query(B.parent == a.key).fetch(limit=None)
Run Code Online (Sandbox Code Playgroud)
但是以下代码返回空集,即使在开发模式下也会自动创建索引:
B.query(B.parent == a.key).order(B.foo, B.bar).fetch(limit=None)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过我能想到的每一个组合,而且我完全被难倒了.
目前我们的系统使用PostgreSQL,但我们似乎已经推动了其功能的极限.我们的一些表需要每秒处理100多个读/写操作,因此可能需要在多台机器上水平扩展.
有很多使用GAE Big Table的经验.Big Table有很多查询选项.例如,可以对列表数据字段进行查询.Cassandra应该基于Big Table,但是如果我理解正确的话,对于Cassandra,我们实际上必须在Cassandra上自定义一个使用和维护索引表的层.
如果有一个开源数据库可用,我们没有必要构建我们自己的自定义逻辑来维护索引表,Zig-zag合并连接等等,这将是很好的...
卡桑德拉是个好人吗?或者有哪些可能被认为更好?
我有一些信息,但我不明白.
Bigtable可能被理解为稀疏表.大多数单元格包含空值 - 太稀疏,无法在关系数据库系统中存储它.Bigtable相当于实现了一个多维稀疏映射.
它是一个特殊的属性,表和稀疏表之间有什么区别?
我在多个文件(存储在存储桶中)中有一个大的csv数据集(> 5TB),我需要将其导入到Google Bigtable中.文件格式如下:
rowkey,s1,s2,s3,s4
text,int,int,int,int
...
有一个带有hbase的importtsv函数是完美的但是在Windows中使用Google hbase shell时似乎没有这个功能.可以使用这个工具吗?如果没有,实现这一目标的最快方法是什么?我对hbase和Google Cloud几乎没有经验,所以一个简单的例子会很棒.我已经看到一些使用DataFlow的类似示例,但除非必要,否则不愿意学习如何执行此操作.
谢谢
如何在xtable表中添加颜色间距?
我按照以下说明生成表:
test.table<-xtable(summary(test),caption='test', floating = FALSE)
align(test.table) <- "|c|l|"
print(test.table,caption.placement='top')
Run Code Online (Sandbox Code Playgroud)
谢谢你的回答