Ant*_*iga 1 python google-app-engine app-engine-ndb google-cloud-datastore
我本周末在一个新项目上破坏了我的每日免费配额.作为参考,这是0.05万次写入,如果我的数学是正确的,则为50,000.
下面是我的项目中唯一进行任何数据存储区写操作的代码.
old = Streams.query().fetch(keys_only=True)
ndb.delete_multi(old)
try:
r = urlfetch.fetch(url=streams_url,
method=urlfetch.GET)
streams = json.loads(r.content)
for stream in streams['streams']:
stream = Streams(channel_id=stream['_id'],
display_name=stream['channel']['display_name'],
name=stream['channel']['name'],
game=stream['channel']['game'],
status=stream['channel']['status'],
delay_timer=stream['channel']['delay'],
channel_url=stream['channel']['url'],
viewers=stream['viewers'],
logo=stream['channel']['logo'],
background=stream['channel']['background'],
video_banner=stream['channel']['video_banner'],
preview_medium=stream['preview']['medium'],
preview_large=stream['preview']['large'],
videos_url=stream['channel']['_links']['videos'],
chat_url=stream['channel']['_links']['chat'])
stream.put()
self.response.out.write("Done")
except urlfetch.Error, e:
self.response.out.write(e)
Run Code Online (Sandbox Code Playgroud)
这就是我所知道的:
我必须在这里做错事,因为每分钟25分钟就是1,500小时,而不是我现在看到的~5,000分钟.
谢谢
好像我终于知道发生了什么,所以我想在这里更新.我找到了这个较旧的答案:https://stackoverflow.com/a/17079348/1452497.
我错过了某个地方,被索引的属性以某种方式将写入乘以至少10的因子,我没想到.我不需要索引所有内容,在关闭模型中的索引之后,我注意到写操作会掉落DRAMATICALLY.到了我期望的地方.
多谢你们!
您在这里混合了两个不同的东西:编写API调用(代码调用的内容)和低级数据存储区写操作.请参阅关系的开票凭证:数据存储区呼叫的成本定价(第二部分).
这是相关部分:
New Entity Put (per entity, regardless of entity size) = 2 writes + 2 writes per indexed property value + 1 write per composite index value
在您的情况下,Streams有15个索引属性导致:2 + 15*2 =每次写API调用写入OP.
每小时总计:60(请求/小时)*25(放置/请求)*32(操作/放置)= 每小时48,000次数据存储写入操作
| 归档时间: |
|
| 查看次数: |
904 次 |
| 最近记录: |