Python RethinkDB 사용 총화

3676 단어 PythonRethinkDB
MongoDB 와 유사 한 RethinkDB 는 JSON 문 서 를 주로 저장 하 는 데이터베이스 엔진(MongoDB 가 저장 하 는 것 은 BSON)으로 여러 노드 와 분산 형 데이터 베 이 스 를 쉽게 연결 할 수 있 으 며 매우 유용 한 조회 언어 와 표를 지원 하 는 joins 와 group by 조작 등 이 있다.어제 RethinkDB 를 시험 해 봤 는데 한 가상 컴퓨터 에서 2500 만 줄 의 기록 성능 이 비교적 안정 적 이 고 1.5K 줄 에서 2K 줄 사이 로 유지 되 며 RethinkDB 의 데이터 블록(sharding)기능 은 매우 간단 해서 한 번 의 클릭 으로 완성 할 수 있다.아래 설 치·테스트 는 우 분투 12.04.4 LTS 서버 버 전에 서 완료 됐다.RethinkDB 공식 소스 를 추가 한 후 설치:
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:rethinkdb/ppa
$ sudo apt-get update
$ sudo apt-get install rethinkdb
하나의 예 설정 파일 을 복사 한 후 bid 부분 을 수정 하여 다른 기계 에서 접근 할 수 있 도록 합 니 다.
$ cd /etc/rethinkdb/
$ sudo cp default.conf.sample instances.d/default.conf

$ sudo vi instances.d/default.conf
...
# bind=127.0.0.1
bind=0.0.0.0
...

rethinkdb:
$ sudo /etc/init.d/rethinkdb start
rethinkdb: default: Starting instance. (logging to `/var/lib/rethinkdb/default/data/log_file')
접근 을 시작 합 니 다.http://192.168.2.39:8080/ rethinkdb 의 관리 인터페이스 를 볼 수 있 습 니 다.

명령 행 에서 일 하 는 것 을 좋아 하지 않 는 다 면 웹 인터페이스 에 서 는 데이터 탐색 기 온라인 조회 도 구 를 제공 하고 문법 하 이 라이트,온라인 함수 알림 등 을 지원 하 며 도움말 파일 을 추가 로 찾 지 않 아 도 됩 니 다.

프로그램 방식 으로 rethinkdb 와 접촉 하려 면 클 라 이언 트 드라이버(client drivers)를 설치 해 야 합 니 다.공식 적 으로 지원 하 는 드라이버 는 JavaScript,Ruby 와 Python 3 가지 언어 가 있 습 니 다.지역 사회 에서 지원 하 는 드라이버 는 C,Go,C++,Java,PHP,Perl,Clojure,Erlang 등 모든 주류 프로 그래 밍 언어 를 포함 합 니 다.저 는 Python 을 많이 사용 하기 때문에 여기 Python 클 라 이언 트 구동 을 설치 합 니 다.
$ sudo apt-get install python-pip
$ sudo pip install rethinkdb
구동 이 작 동 할 수 있 는 지 테스트 해 보 세 요.import rethinkdb 가 잘못 되 지 않 았 다 면 모듈 이 성공 적 으로 설치 되 었 음 을 설명 할 수 있 습 니 다.
$ python
Python 2.7.3 (default, Feb 27 2014, 19:58:35)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rethinkdb
>>>
gene2go.txt 는 유전자 데 이 터 를 포함 한 문서 입 니 다.약 1000 여 만 줄 의 기록 입 니 다.형식 은 다음 과 같 습 니 다.
$ head -2 gene2go.txt
#Format: tax_id GeneID GO_ID Evidence Qualifier GO_term PubMed Category (tab is used as a separator, pound sign - start of a comment)
3702 814629 GO:0005634 ISM - nucleus - Component
간단 한 프로그램 을 써 서 gene2go.txt 의 데 이 터 를 rethinkdb 에 가 져 옵 니 다.
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, os.path, sys, re, csv, string

def csv2db():
    data = csv.reader(open('gene2go.txt', 'rb'), delimiter='\t')
    data.next()

    import rethinkdb as r
    r.connect('localhost', 28015).repl()
    r.db('test').table_create('gene2go').run()
    gene2go = r.db('test').table('gene2go')
    for row in data:
        gene2go.insert({
            'tax_id': row[0],
            'GeneID': row[1],
            'GO_ID': row[2],
            'Evidence': row[3],
            'Qualifier': row[4],
            'GO_term': row[5],
            'PubMed': row[6],
            'Category': row[7]
        }).run(durability="soft", noreply=True)

def main():
    csv2db()

if __name__ == "__main__":
    main()

좋은 웹페이지 즐겨찾기