본문 바로가기

Cassandra

Cassandra - Python 2.X (pycassa)를 이용하여 데이터 쓰기

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

if __name__ == '__main__':
    #connection pool을 생성하고
    pool = ConnectionPool('Hotelier', ['localhost:9160'])
    # column family를 생성
    HOTEL = ColumnFamily(pool, 'Hotel')
    
    #입력할 컬럼, 값을 dictionary 형태로 정의
    cols = {}
    cols['address'] = 'Buasn HaeunDae'
    cols['city'] = 'Busan'
    cols['name'] = 'Lotte'
    cols['phone'] = '010-xxx-xxxx'
    cols['zip'] = 'XXX-XXX'
    #컬럼패밀리에 입력
    HOTEL.insert('row key', cols, time.time(), None, ConsistencyLevel.ONE)
    
    #이하는 super column family
    # {super column, {column name : value}} 형태로 입력처리
    POI = ColumnFamily(pool, 'PointOfInterest')
    supercol = {}
    subcols = {}
    subcols['desc'] = u'한적하고 깔끔함, 커피숍 많음'
    subcols['phone'] = '82-51-xxx-xxxx'
    supercol['Lotte'] = subcols
    POI.insert(u'송정', supercol, time.time(), None, ConsistencyLevel.ONE)
반응형