준비물 : python 2.x 버전 설치, pycassa 설치 (기타 필요한 thrift, cassandra 가 포함되어 있음)
먼저 Python 3.X 에서 진행하려 했으나, 아직 thrift, pycassa... 이런 라이브러리들이 3버전을 지원하지 않아 실패함
결국 2.X 버전을 추가로 설치하여 작업 진행
예제 소스 (구지 설명하는것보다 예제를 보는편이 더 빠를듯)
# -*- coding: utf-8 -*- # 위 코드는 한글을 쓰기위한 코드 from pycassa import ConnectionPool from pycassa.columnfamily import ColumnFamily from pycassa.cassandra.ttypes import ConsistencyLevel from cassandra.Cassandra import IndexExpression from cassandra.Cassandra import IndexOperator from cassandra.Cassandra import IndexClause if __name__ == '__main__': # connection pool 생성 pool = ConnectionPool('Hotelier', ['localhost:9160']) # 칼럼패밀리 생성 HOTEL = ColumnFamily(pool, 'Hotel') POI = ColumnFamily(pool, 'PointOfInterest') # 조회 조건을 생성하고 index cluse 에 추가 index1 = IndexExpression('state', IndexOperator.EQ, 'NY') index_clause = IndexClause([index1], "") # 조회(조회 조건이 있는경우) keys = HOTEL.get_indexed_slices(index_clause = index_clause, read_consistency_level = ConsistencyLevel.ONE) # 결과는 (row_key, {column : value}) 형태로 리턴됨 for keySlice in keys: print '==============' + keySlice[0] + '==============' print 'address : ' + keySlice[1]['address'] print 'city : ' + keySlice[1]['city'] print 'name : ' + keySlice[1]['name'] print 'phone : ' + keySlice[1]['phone'] # 조회(전체 조회) pois = POI.get_range(read_consistency_level = ConsistencyLevel.ONE, filter_empty = True) # 결과는 (row_key, {super column : {column : value}, super column {column : value}, ...} 형태로 리턴됨 for poi in pois: print '==============' + poi[0] + '==============' for poi_superColumn in poi[1].keys(): print '--------' + poi_superColumn + '--------' if poi[1][poi_superColumn].get('desc'): print poi[1][poi[1].keys()[0]].get('desc') if poi[1][poi_superColumn].get('phone'): print poi[1][poi[1].keys()[0]].get('phone')
반응형
'Cassandra' 카테고리의 다른 글
Cassandra - USER 관리 (CQL) (0) | 2013.05.24 |
---|---|
Cassandra - 로그인 설정 (0) | 2013.05.24 |
Cassandra - Python 2.X (pycassa)를 이용하여 데이터 쓰기 (0) | 2013.04.10 |
Cassandra - Java를 이용하여 데이터 검색 (0) | 2013.04.06 |
Cassandra - Java를 이용하여 데이터 쓰기 (super column family) (0) | 2013.04.05 |