[Developers] 503 error when trying to do a large write to Sandbox
Alexander Botero-Lowry
alex at foxybanana.com
Thu Feb 21 19:38:21 UTC 2008
On Thu, Feb 21, 2008 at 11:02:56AM -0800, Jason Douglas wrote:
> I'm out of my depth here, but could your issue be related to this
> thread?
>
> Comparison operation in write?
> http://lists.freebase.com/pipermail/developers/2008-January/001198.html
>
I don't think so. I was doing a [{...},{...},{...}] style query.
Alex
> -jason
>
>
> On Feb 20, 2008, at 4:31 PM, Alexander Botero-Lowry wrote:
>
> > Hi,
> >
> > Monday night I tried to import 2561 records as a single query on
> > Sandbox.
> > After fixing some bugs in how I was formatting my date, I finally
> > got the
> > query to execute but I received a 503. I tried the query a few more
> > times
> > and then checked sandbox to make sure nothing had happened and low and
> > behold some of the entries showed up! At that point I realized that I
> > wasn't sure all of them were there so I rewrote my importer script to
> > do it in 100 block increments, and I got an error that there were 2
> > unique entries, which I looked up and determined was the result of
> > create=unless_exists not being able to disambiguate! So it seems like
> > somehow, even though i was using create=unless_exists the entry got
> > added twice. I'm not exactly sure how transactions work internally
> > so I can't really speculate further on how that happened.
> >
> > Follows is my importer:
> >
> > #!/usr/bin/env python
> >
> > import metaweb
> >
> > USERNAME=''
> > PASSWORD=''
> >
> > MONTH_MAP = {'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5, 'Jun':6,
> > 'Jul':7, 'Aug':8, 'Sep':9, 'Oct':10, 'Nov':11,
> > 'Dec':12}
> > TYPEID = '/user/alexbl/default_domain/exchange_rate'
> > SOURCE_CURR = {'name':'US $', 'type':'/finance/currency'}
> > TARGET_CURR = {'name':'Australian dollar', 'type':'/finance/currency'}
> >
> > def generate_query(a):
> > data = a.split()
> > # FIXME: find a better way to do this
> > rate_date = data[0].split('-')
> > rate_date[2] = '19'+rate_date[2]
> > rate_date[1] = "%02d" % (MONTH_MAP[rate_date[1]])
> > rate_date[0] = "%02d" % int(rate_date[0])
> > data[0] = '-'.join(reversed(rate_date))
> >
> > q = {'create':'unless_exists',
> > 'id':None,
> > 'type':[TYPEID],
> > 'source_of_exchange':SOURCE_CURR,
> > 'target_of_exchange':TARGET_CURR,
> > 'amount':float(data[1]),
> > 'date_of_rate':data[0]
> > }
> > return q
> >
> > if __name__ == '__main__':
> > query = [ generate_query(a) for a in file('USD-
> > AUD-90-99.txt') ]
> > credentials = metaweb.login(USERNAME, PASSWORD)
> > for a in range(100, len(query), 100):
> > result = metaweb.write(query[a:a+100], credentials)
> > for r in result:
> > print r['create'], r['id']
> >
> >
> > Before I added the stepper, it was simply directly doing what's in
> > side the
> > for loop with the query list.
> >
> > The data format is like:
> > 2-Jan-90 0.7855
> > 3-Jan-90 0.7818
> > ...
> >
> > I will most likely write a script to query the ids and then detype
> > them and then
> > do an import again with the 100 block steps version to see if that's
> > the only problem.
> >
> > Luckily this was all on sandbox :)
> >
> > Thanks,
> > Alex
> >
> > _______________________________________________
> > Developers mailing list
> > Developers at freebase.com
> > http://lists.freebase.com/mailman/listinfo/developers
>
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers
>
More information about the Developers
mailing list