Google app engine free datastore quota limit

Limit

  • search query request ~ 1000 query per days
  • deploy limit ~ 1000 times per days
  • index limit ~ 100 index

Restrictions on queries(ข้อจำกัดในการใช้คิวรี่) โค้ดตัวอย่างเป็นภาษา python
คิวรี่ที่ใช้ Inequality filters (>,>=,<,<=,!=) จะใช้ได้เพียงฟิลด์เดียวต่อ 1 query เช่น

files = files.filter('eventStart  >=', start)
files = files.filter('eventStart  <=', end)

ดังตัวอย่างจะใช้กับฟิลด์ eventStart จะไม่สามารถใช้ร่วมกันหลายฟิลด์ได้ #คิวรี่ที่ใช้ Inequality filters จะใช้ order by กับฟิลด์ที่ถูก filter เป็นลำดับแรก

files = File.all()
files = files.filter('eventStart  >=', start)
files = files.filter('eventStart  <=', end)
files = files.order('-eventStart')

#order(-fieldname) หมายถึง order by desc
#order(fieldname) หมายถึง order by asc

ถ้าใช้แบบนี้จะ ERROR เพราะไปสั่ง order eventEnd ก่อน

files = File.all()
files = files.filter('eventStart  >=', start)
files = files.filter('eventStart  <=', end)
files = files.order('-eventEnd')
files = files.order('-eventStart')

ส่วน equality filters (=) จะสามารถ order by ด้วยฟิลด์ใดก็ได้ แต่จะต้องไปกำหนดค่าใน index.yaml เช่น

files = File.all()
files = files.filter('eventTitle  =', "test")
files = files.order('-eventStart')

จากตัวอย่าง ใช้ filter ที่ฟิลด์ eventTitle แต่จะ order by ที่ eventStart โดย order by desc หมายถึงที่ Kind File จะมีการขอใช้ index ที่ฟิลด์ eventTitle คู่กับฟิลด์ eventStart เราจะต้องเพิ่มคำขอใน index.yaml ดังนี้

- kind: File
properties:
- name: eventTitle
- name: eventStart

โดยเมื่อเรา deploy ขึ้นไปที่ yourappid.appspot.com จะต้องรอการ Pending ขอการใช้ index นี้ประมาณ 5-10 นาที ถึงจะใช้ได้ ถ้ายังใช้ไม่ได้ datastore จะแจ้ง error ออกมาเมื่อเราคิวรี่เข้าไป โดย error จะมีลักษณะนี้

NeedIndexError: The index for this query is not ready to serve. See the Datastore Indexes page in the Admin Console.
The suggested index for this query is:
- kind: File
properties:
- name: eventTitle
- name: eventStart

ข้อมูลเพิ่มเติม
https://developers.google.com/appengine/docs/python/datastore/queries
https://developers.google.com/appengine/docs/quotas#Datastore

Related posts:

This entry was posted in google app engine. Bookmark the permalink.