2011-04-29 3 views
2

저는 고속 가속도계 데이터 (및 최신 자이로 스코프 데이터)를 기록하고 저장하기 위해 Android 앱을 작성하고 있습니다. (here를 설명한 바와 같이, FileWriter와 BufferedWriter의 사용)가속도계 센서 판독 값을 SQLite 또는 플랫 파일로 기록 하시겠습니까?

timestamp, x_accel, y_accel, z_accel 

내가 플랫 파일 SQLite는에 나에 데이터를 저장해야합니다 :처럼 내 데이터의 스키마는 볼 것인가? 어느 것이 가장 낮은 지연 시간을 가지거나 더 적절한가?

결국 그래프를 만들려면 Excel로 csv 파일로 데이터를 가져와야합니다. 그래서 SQLite에 쓰면 나중에 CSV에 써야합니다.

답변

1

분명히 작동하지만 내 개인적인 (옹호하지 않거나 다른 것으로 백업 된) 규칙은 파일로 작업을 수행 할 수 있다면 수행해야한다는 것입니다. 데이터베이스 코드보다 쉽게 ​​작성하고 관리 할 수 ​​있으며 나중에 변환 할 필요없이 CSV 형식으로 포맷 할 수 있습니다. 나는 그것을 과장하지 말라고 말한다. BufferedWriter은 큰 청크로 작성을 처리하므로 데이터 기록이 끝날 때까지 출력 스트림을 열어두면 대기 시간에 문제가 없어야합니다. (완료되면 flush()close()을 잊지 마세요. 규칙에 따라 Java에서 적합합니다).

+0

"완료되면 플러시() 및 종료()를 잊지 마세요. 규칙이 Java에서 적절한대로 적용됩니다."- LOL! – stackoverflowuser2010

0

큰 데이터 청크를 수집 한 다음 플랫 파일에 큰 청크로 쓰면 성능이 향상됩니다. 언급했듯이 나중에 추출하기가 더 쉬울 것입니다.

1

나인 경우 SQLite 데이터베이스를 사용합니다. SQLite는 매우 빠르지 만 더 중요한 것은 플랫 파일보다 유연성이 훨씬 큽니다. 플랫 파일 형식보다 데이터베이스 구조를 훨씬 쉽게 업데이트 할 수 있으며 데이터를 더 잘 정렬하고 검색 할 수있어 CSV로 내보낼 때 유용 할 수 있습니다.

+1

SQLite는 초당 몇 번까지 삽입 할 수 있습니까? 가속도계 데이터를 초당 2x (500ms 간격) 또는 초당 10x (100ms 간격)와 같은 속도로 삽입 할 계획입니다. – stackoverflowuser2010

+0

나는 그것을 테스트 해본 적이 없지만 SQLite는 매우 빠릅니다. 나는 당신이 트랜잭션을 사용하는 한 그 데이터의 비율을 처리 할 수 ​​있다고 생각합니다. –

관련 문제