준비물 : 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 |