I'm using the bulk loader to download my *Review* kind from one GAE server
and upload to another GAE server. This *Review* kind contains about 30,000
entities.
I use the command to upload:
appcfg.py upload_data --kind=Review --filename=review.csv
--application=<MY_APP_ID> --url=http://<MY_APP_ID>.appspot.com/remote_api
--rps_limit=500 --bandwidth_limit=2500000 --batch_size=100
*NOTE: The entire error is pretty long. So I've included it at the bottom of
this question.*
The upload doesn't start at all and stops at the line: [INFO ] Opening
database: bulkloader-progress-20110611.222101.sql3
I see at the bottom of the entire trace: lambda val: _EPOCH +
datetime.timedelta(microseconds=val), OverflowError: date value out of range
I suspect that this is caused by badly formated date's found in my *
publisheddate* column (see below for entire *Review* kind).
------------------------------
What I've already tried to fix it
I ran the GQL: SELECT * FROM Review where publisheddate = null in the GAE
admin portal and found around 15 entities with *null* values for the *
publisheddate* column. So I deleted those, redownloaded and tried
reuploading the *Review* kind. I still get the same error.
I'm thinking, since I'm using the upload command without a config file
parameter e.g. --config_file=bulkloader.yaml (see above upload that I'm not
specifying the --config_file)
I'm relying on the datastore statistics to determine what is downloaded to
my *review.csv* file.
Now since I just deleted the entities with *null publisheddate* this
redownloading and then reuploading immediately is not doing anything
different from my initial download and upload. Since the datastore
statistics aren't updated yet.
------------------------------
My Questions
1.
As there are 30, 000 entities I'm unsure as to how I can locate entities
with badly formated dates. Is there a quick away to locate entities with bad
*publisheddate* values?
2.
Does anyone know how to fix this issue? I'm not sure from the error trace
what the real problem is.
------------------------------
Review kind
I'm using the objectify3.0.jar to manipulate my GAE datastore. So my *Review
* kind looks like this:
public class Review {
@Id private Long id; //This is my key property, auto generated by objectify
private String reviewlink;
private Date publisheddate;
private double rating;
private Long gameid; //to make querying easier
//ommitting getters and setters
}
------------------------------
Entire error
10:20:48>appcfg.py upload_data --kind=Review --filename=review.csv
--application=<MY_APP_ID> --url=http://<MY_APP_ID>.appspot.com/remote_api
--rps_limit=500 --bandwidth_limit=2500000 --batch_size=100
Uploading data records.
[INFO ] Logging to bulkloader-log-20110611.222101
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 2500000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 500/second
[INFO ] Batch Size: 100
[INFO ] Opening database: bulkloader-progress-20110611.222101.sql3
Traceback (most recent call last):
File "/usr/local/bin/appcfg.py", line 76, in <module>
run_file(__file__, globals())
File "/usr/local/bin/appcfg.py", line 72, in run_file
execfile(script_path, globals_)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 3592, in <module>
main(sys.argv)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 3583, in main
result = AppCfgApp(argv).Run()
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 2229, in Run
self.action(self)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 3368, in __call__
return method()
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 3195, in PerformUpload
run_fn(args)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py",
line 3087, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py",
line 4360, in Run
return _PerformBulkload(arg_dict)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py",
line 4204, in _PerformBulkload
loader.initialize(filename, loader_opts)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py",
line 2879, in initialize
self.high_id_table = self._find_high_id(self.generate_records(filename))
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py",
line 2896, in _find_high_id
for values in record_generator:
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py",
line 2920, in generate_records
yield datastore.Entity._FromPb(fixed_entity_proto)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py",
line 958, in _FromPb
value = datastore_types.FromPropertyPb(prop)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_types.py",
line 1792, in FromPropertyPb
value = conversion(value)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_types.py",
line 1722, in <lambda>
lambda val: _EPOCH + datetime.timedelta(microseconds=val),
OverflowError: date value out of range
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine-java/-/r7L9s0d0xFkJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.