2012-06-08 2 views
2

전 데이터베이스에 완전히 익숙하지 않기 때문에 질문의 단순함을 용서하십시오. 몇 시간 동안 수집 된 데이터를 저장해야하는 임베디드 리눅스 시스템이 있습니다. 데이터는 순차적으로 검색 할 수 있어야하며 GPS, 환경 데이터 등과 같은 데이터를 포함해야합니다.이 데이터는 이동식 SSD의 폴더에 저장되고 "임무"로 분류되어야합니다. 하나의 SSD에 여러 "임무"가 존재할 수 있으므로 사용자가 임의로 외부 미디어에 복사하여 저장해야하기 때문에 혼합해서 사용해서는 안됩니다. 데이터는 초당 10 회씩 저장되며 정전이 발생할 수 있으므로 매우 강력해야합니다.순차 데이터 용 데이터베이스

데이터를 생성 한 시스템에서 데이터를 검색 할 수 있어야하며, 제거 가능한 디스크를 다른 시스템 (Linux도 가능)으로 가져 와서로드하고 사용해야하는 경우에도 데이터를 검색 할 수 있어야합니다. 과거에는 데이터를 저장할 사용자 지정 파일을 만들었지 만 데이터베이스가 최상의 옵션 일 것 같았습니다. MySQL과 같은 데이터베이스는 어떻게 이식 가능합니까? 사용자가 데이터베이스가있는 디스크를 쉽게 제거하고 새 컴퓨터에 연결하여 너무 많은 노력을 기울이지 않고도 사용할 수 있습니까? 우리의 쿼리는 수집 시간의 10 배에 수집 된 후 사용자가 데이터를 "재생"하기 때문에 대부분 시간 기반입니다. 또한 우리의 기본 코드는 Qt (C++)로 작성되어 있으므로 데이터베이스와 상호 작용해야합니다.

답변

2

저는 SQLite를 사용합니다. 작고 라이트 야. 모든 데이터를 하나의 파일에 저장합니다. 파일을 다른 컴퓨터로 복사하거나 이동할 수 있습니다. 데이터 작성자는 파일을 다시 만들 수 있습니다. 현재 ssd에 파일이 없다는 것을 발견하면 비어 있습니다.

또한 SQLite가 안전을 위해 선택되는 몇 가지 소프트웨어로만 제공되는 수준에서 testing을 거친다는 점도 언급 할 필요가 있습니다. 테스트 스위트는 부분적으로 자동 생성되지만, 엄청난 1 억 라인의 코드입니다. 그것은 견고성에 관해서는 전혀 라이트가 아닙니다. SQLite는 무작위로 자체 데이터베이스를 구현 한 것 이상을 신뢰합니다.

SQLite는 인증 된 항공 전자 공학 AFAIK에서 사용됩니다.

+0

이 경우 "임베디드"는 처리 능력이 작거나 제한적이라는 것을 의미하지는 않습니다. 이 소프트웨어는 듀얼 헥스 코어와 RAM이 장착 된 고가의 64 비트 워크 스테이션 마더 보드에서 실행됩니다. 그것은 단지 헬리콥터에있는 것입니다. – Brad

+0

그래도 전체 데이터베이스는 하나의 파일에 살 수 있습니다.이 파일은 물리적으로 새 시스템으로 옮겨 읽을 수 있습니다. –

관련 문제