Python 使用游标检测云数据存储中实体的结束
我们在做什么? 我们在云数据存储中拥有原始数据,我们正在处理这些数据,并在清理和提取后将其放入GBQ中进行分析 因此,由于我们有非常大的数据,我们正在分批清理数据,并存储一个光标字符串,以便从上一批的右侧开始下一批 代码片段Python 使用游标检测云数据存储中实体的结束,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我们在做什么? 我们在云数据存储中拥有原始数据,我们正在处理这些数据,并在清理和提取后将其放入GBQ中进行分析 因此,由于我们有非常大的数据,我们正在分批清理数据,并存储一个光标字符串,以便从上一批的右侧开始下一批 代码片段 #read cursor string and create cursor object start_cursor = Cursor(urlsafe=tag_generated_till_cursor_string) entities_list, next_cursor,
#read cursor string and create cursor object
start_cursor = Cursor(urlsafe=tag_generated_till_cursor_string)
entities_list, next_cursor, more = ndbEntity.query().order(ndbEntity.updated_date)\
.fetch_page(500, start_cursor=start_cursor)
if next_cursor:
# persisting next_cursor.urlsafe()
到目前为止还不错吧
现在是问题吗?
处理完所有此类实体后,我们在处理到达实体列表末尾时遇到问题
在到达终点后,我们将得到下一个光标
作为无,因此可以做两件事:-
下一个\u光标
为无此外,没有太多关于游标的文档可以帮助我们忽略对任何实体的重新处理。有什么可以帮助我们克服这个问题?有什么可以拯救我们 当
next\u cursor
为None
时,您应该只标记数据处理操作已完成,而不保留任何内容:没有剩余批次
您不应该再次对相同的数据运行批处理,因为这是导致重复的原因-您只需要重新处理一个(或多个)已经处理的批。当
下一个\u光标
为无
时,您应该只标记数据处理操作已完成,不保留任何内容:没有剩余批
您不应该再次对相同的数据运行批处理,因为这是导致重复的原因-您只需要重新处理一个(或多个)已处理的批