gpt4 book ai didi

python - 使用 bulkloader 从 Google App Engine 下载数据时出错

转载 作者:行者123 更新时间:2023-11-28 19:27:43 25 4
gpt4 key购买 nike

我正在尝试使用以下方法从数据存储中下载一些数据命令:

appcfg.py download_data --config_file=bulkloader.yaml --application=myappname 
--kind=mykindname --filename=myappname_mykindname.csv
--url=http://myappname.appspot.com/_ah/remote_api

当我在这种特定类型/表格中没有太多数据时,我可以一次下载数据 - 偶尔会遇到以下错误:

.................................[ERROR   ] [Thread-11]
ExportProgressThread:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools
\bulkload
er.py", line 1448, in run
self.PerformWork()
File "C:\Program Files\Google\google_appengine\google\appengine\tools
\bulkload
er.py", line 2216, in PerformWork
item.key_end)
File "C:\Program Files\Google\google_appengine\google\appengine\tools
\bulkload
er.py", line 2011, in StoreKeys
(STATE_READ, unicode(kind), unicode(key_start), unicode(key_end)))
OperationalError: unable to open database file

这是我在服务器日志中看到的:

Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/
ext/remote_api/handler.py", line 277, in post
response_data = self.ExecuteRequest(request)
File "/base/python_runtime/python_lib/versions/1/google/appengine/
ext/remote_api/handler.py", line 308, in ExecuteRequest
response_data)
File "/base/python_runtime/python_lib/versions/1/google/appengine/
api/apiproxy_stub_map.py", line 86, in MakeSyncCall
return stubmap.MakeSyncCall(service, call, request, response)
File "/base/python_runtime/python_lib/versions/1/google/appengine/
api/apiproxy_stub_map.py", line 286, in MakeSyncCall
rpc.CheckSuccess()
File "/base/python_runtime/python_lib/versions/1/google/appengine/
api/apiproxy_rpc.py", line 126, in CheckSuccess
raise self.exception
ApplicationError: ApplicationError: 4 no matching index found.

当那个错误出现时,我会简单地重新运行下载和东西会很好。

最近,我注意到随着我同类人数的增加,下载工具经常失败。例如,有一种~3500 个实体我必须运行命令 5 次 - 只有最后一次成功了。有没有办法解决这个错误?以前,我唯一担心我无法在脚本中自动下载,因为偶尔的失败 - 现在我害怕我无法得到我的完全没有数据。

此问题之前已讨论过 here但帖子很旧,我不确定建议的标志是做什么的 -因此再次发布我的类似查询。


一些额外的细节。如前所述 here我尝试了继续中断下载的建议(在 从 App Engine 下载数据 部分)。当我在中断后恢复时,我没有收到任何错误,但下载的行数少于数据存储区管理员向我显示的实体数。这是我收到的消息:

[INFO    ] Have 3220 entities, 3220 previously transferred
[INFO ] 3220 entities (1003 bytes) transferred in 2.9 seconds

数据存储管理员告诉我这种特殊类型有大约 4300 个实体。为什么没有下载剩余的实体?

谢谢!

最佳答案

基于我在第一个错误中看到单词“unicode”这一事实,我将对此做出完全没有根据的猜测;我遇到的问题与我的数据是用户从网络生成的有关。用户输入了几个 unicode 字符,然后一大堆东西开始崩溃——可能是我的错——因为我已经实现了漂亮的 repr 函数和一大堆其他东西。如果可以,请通过实时应用程序中的控制台实用程序快速扫描您的数据,也许(如果它只有 4k 记录),尝试将所有数据转换为 ascii 字符串以查找任何不符合的数据。

在那之后,我开始“清理”用户输入(抱歉,但我的“公共(public)句柄”字段需要只有 ascii 播放器!)

关于python - 使用 bulkloader 从 Google App Engine 下载数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com