2010-03-06 3 views
8

저는 파이썬, R, 때로는 MATLAB간에 많은 텍스트/데이터를 교환합니다.SQLite 또는 플랫 텍스트 파일?

go-to는 플랫 텍스트 파일이지만 때때로 SQLite를 사용하여 각 프로그램 (Matlab이 아니라)에서 데이터와 액세스를 저장합니다. R에서 이러한 작업을 수행하는만큼 SQL에서 GROUPBY, AVG 등을 사용하지 않으므로 데이터베이스 작업이 반드시 필요한 것은 아닙니다.

각 언어로 사용 가능한 라이브러리를 사용하기 위해 프로그램간에 데이터를 교환해야하는 응용 프로그램의 경우 데이터 교환 형식/방법 (XML 또는 NetCDF 또는 HDF5 포함)에 대한 경험이 있습니까?

나는 파이썬 (rpy) 사이에 rpy 또는 rpy2가 있지만 더 일반적인 의미에서이 질문에 대해 궁금해했다. 나는 많은 컴퓨터에 rpy2가없고 많은 과학적 분석을 사용한다. 다양한 시간에 데이터에 액세스해야하는 소프트웨어 (처리 및 분석 단계도 분리됨).

답변

15

모든 언어가 SQLite를 지원한다면 - 그것을 사용하십시오. SQL의 힘은 지금 당장은 유용하지 않을지도 모르지만, 아마도 어느 시점에있을 것입니다. 그리고 나중에보다 복잡한 방식으로 데이터를 쿼리 할 수 ​​있기를 원할 때 나중에 다시 작성해야 할 필요가 없습니다.

데이터 저장소의 특정 데이터 비트에만 액세스하려는 경우 SQLite가 훨씬 빠를 것입니다. 전체 텍스트를 읽지 않아도 플랫 텍스트 파일로 작업하는 것이 어려울 수 있기 때문입니다 (불가능하지는 않지만).

+0

+1 sqlite의 경우 현재로서는 명확하지 않지만 앞으로도 데이터베이스의 광범위한 사용을 예상합니다. –

+0

고마워요. 네, 전체 파일을 읽지 않는 것이 분명합니다. – hatmatrix

5

플랫 텍스트 파일 (예 : CSV 형식)이 가장 휴대 가능한 솔루션입니다. 거의 모든 프로그램/라이브러리는이 형식으로 작업 할 수 있습니다. R 및 Python은 좋은 CSV 지원을 제공하며 데이터 세트가 너무 크지 않은 경우 더 작은 작업을 위해 CSV를 Excel로 가져올 수도 있습니다.

그러나 텍스트 파일은 데이터의 구조에 따라 거의 모든 작업에서 완전히 읽을 필요가 있으므로 더 큰 데이터 세트에는 유용하지 않습니다.

SQLite를 사용하면 많은 SQL 전문가 없이도 데이터를 매우 쉽게 필터링 할 수 있으며 이미 언급 한 것처럼 자체적으로 (AVG, SUM, ...) 계산할 수 있습니다. Firefox 플러그 인 SQLiteManager을 사용하면 설치/구성 문제없이 모든 컴퓨터에서 DB로 작업 할 수 있으므로 데이터를 쉽게 관리 할 수 ​​있습니다 (가져 오기/내보내기, 필터).

그래서 나는 필요한 데이터를 추출하기 위해 많은 필터링이 필요한 더 큰 데이터 세트에 SQLite를 사용할 것을 권장합니다. 작은 데이터 세트의 경우 또는 데이터의 하위 집합을 선택할 필요가없는 경우 플랫 (csv) 텍스트 파일이 좋을 것입니다.

+0

감사합니다 - 작은 파일의 경우 csv, 큰 파일의 경우 SQL (필터링 가능성은 장점 임). Firefox 플러그인에 대해서도 몰랐습니다. 환상적입니다. – hatmatrix

+0

SQLiteManager 플러그인의 경우 1입니다. 나는 그것을 사용하고 그것은 생명의 은인이며 가져 오기 (cvs 형식;))에 대 한 좋은) –

+0

얼마나 재미 있고, 호의 또는 평면 텍스트에서! Thit 내 취향 (어떤 컴퓨터에서 이식 가능하게 메뉴를 관리 할 수있는 탭 구분 된 텍스트 파일이긴하지만) 내게로가는 것 나에게 플랫 파일 recomment합니까? 내 새로운 메뉴 자동화 프로젝트 참조 http://stackoverflow.com/questions/4524327/php-how-to-automate-building-a-100-ul-li-menuitems-while-keeping-the-menu-s – Sam

관련 문제