Bigtable로 어떻게 Index를 구성했을까???

AppEngine의 Data Store는 Bigtable을 사용한다고 되어 있습니다. Bigtable의 경우 index는 row-key를 이용하여 사전적으로 정렬되어 있고, 하나의 row-key, column family내에서는 column-key로 정렬되어 있습니다. GQL을 보면 >, < 연산이 가능합니다. 또한 ORDER BY도 제공합니다. 단순히 bigtable에서 제공하는 index로는 이런 오퍼레이션을 처리할 수 없다고 생각합니다. 애플리케이션내에 ORDER BY 등의 문장이 나타나면 SDK는 자동으로 index.yaml 파일내에 다음과 같이 index 관련 정보를 저장합니다.
- kind: Greeting
  properties:
  - name: date
    direction: desc

이것을 봐서는 Bigtable내에 실제 데이터 + index 되어 있는 데이터도 저장하고 있는 것 같습니다.
또 다른 단서는 다음 내용에서 찾을 수 있습니다.
http://groups.google.com/group/google-appengine/browse_thread/thread/7f199513406bf83f


properties don't map to individual BigTable columns.
Entities are encoded whole and stored in a single bigtable column.

Entity내에 property가 여러개 있어도 Bigtable 내에는 Entity 전체가 하나의 column-family에 저장된다는 의미입니다.
예를 들어 Emp 객체에 empNo, empName, age 등이 있을 때 Bigtable 내에 empNo:1234, empName:Hong, age:30 등으로 저장되는 것이 아니라는 겁니다. 어떻게 했을까요??? 좀더 고민해봐야 겠습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Trackback URL : http://www.jaso.co.kr/trackback/250

Leave a comment
« Previous : 1 : ... 180 : 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : ... 388 : Next »