계층 적 데이터 형식. 대체 형식과 비교하여 장점은 무엇입니까?


28

HDF에 데이터를 저장하면 얻을 수있는 주요 이점은 무엇입니까? HDF가 실제로 적합하고 유용한 주요 데이터 과학 과제는 무엇입니까?

답변:


25

아마도이 질문을 역설하는 좋은 방법은 대체 형식과 비교하여 어떤 이점이 있습니까?

주요 대안은 데이터베이스, 텍스트 파일 또는 다른 압축 / 이진 형식이라고 생각합니다.

고려해야 할 데이터베이스 옵션은 아마도 열 저장소 또는 NoSQL이거나 작은 자체 포함 된 데이터 집합 인 SQLite입니다. 데이터베이스의 주요 장점은 메모리보다 훨씬 큰 데이터로 작업하고 임의 또는 인덱스 액세스를 가지며 데이터를 빠르게 추가 / 추가 / 수정할 수 있다는 것입니다. 주요 단점은 전체 데이터 세트를 읽고 처리해야하는 문제로 인해 HDF보다 훨씬 느리다는 것입니다. 또 다른 단점은 SQLite와 같은 임베디드 스타일 데이터베이스를 제외하고 데이터베이스는 단순한 자체 포함 데이터 저장소가 아닌 시스템 (관리, 설정, 유지 관리 등이 필요함)이라는 것입니다.

텍스트 파일 형식 옵션은 XML / JSON / CSV입니다. 플랫폼 간 / 언어 / 툴킷이며 자체 설명 기능 (또는 명백한 기능)으로 인해 좋은 보관 형식입니다. 압축되지 않은 경우 크기가 크지 만 (10x-100x HDF) 압축 된 경우 공간 효율적일 수 있습니다 (압축 된 XML은 HDF와 거의 동일 함). 여기서 가장 큰 단점은 다시 속도입니다. 텍스트 구문 분석이 HDF보다 훨씬 느립니다.

다른 바이너리 형식 (npy / npz numpy 파일, blz blaze 파일, 프로토콜 버퍼, Avro 등)은 HDF와 매우 유사한 속성을 갖습니다. 특정한 다른 제한이 있습니다. 그들은 일반적으로 강력한 이점을 제공하지 않습니다.

HDF는 데이터베이스를 보완하기에 적합합니다. 쿼리를 실행하여 대략 메모리 크기의 데이터 집합을 생성 한 다음 동일한 데이터가 두 번 이상 사용되는 경우이를 HDF에 캐시하는 것이 좋습니다. 고정되고 일반적으로 전체로 처리되는 데이터 집합이있는 경우 적절한 크기의 HDF 파일 모음으로 저장하는 것은 나쁜 옵션이 아닙니다. 자주 업데이트되는 데이터 집합이있는 경우 일부 데이터를 정기적으로 HDF 파일로 준비하면 도움이 될 수 있습니다.

요약하면, HDF는 일반적으로 전체적으로 읽거나 쓰는 데이터에 적합한 형식입니다. 광범위한 지원 및 호환성, 아카이 벌 형식으로 적합하고 매우 빠르기 때문에 많은 응용 프로그램에서 링구아 프랑카 또는 공통 / 기본 교환 형식입니다.

추신이 실제적인 맥락을 제공하기 위해 HDF를 대안과 비교 한 가장 최근의 경험으로, 특정 작은 (메모리 크기보다 훨씬 작은) 데이터 세트가 HDF로 읽는 데 2 ​​초가 걸렸습니다 (대부분 팬더의 오버 헤드 일 것입니다). JSON에서 읽는 데 ~ 1 분; 데이터베이스에 쓰는 데 1 시간이 걸립니다 . 확실히 데이터베이스 쓰기 속도가 빨라질 수 있지만 DBA가 더 좋습니다. 이것이 바로 작동 방식입니다.


HDF 컬럼 스토리지 형식 이라고 말할 수 있습니까 ? 나는 이들 중 어느 것에도 능숙하지 않지만, 내가 작업 한 HDF 샘플은 열 기반 데이터 집계의 외부 기능을 나타내는 것으로 보입니다.
Félix Gagnon-Grenier

데이터베이스와 HDF는 모두 "메모리보다 훨씬 큰 데이터로 작업 할 수있는 기능"을 제공하므로 이것이 HDF보다 데이터베이스의 이점이라고 말하는 것이 정확하지 않다고 생각합니다 ( 'partial i / o'는 핵심 기능 davis.lbl.gov/Manuals/HDF5-1.8.7/UG/12_Dataspaces.html
David LeBauer

11

C, Java, Perl, Python 및 R에는 모두 HDF5 바인딩이 있습니다.

또 다른 이점은 속도입니다. 나는 그것이 벤치 마크 된 것을 보지 못했지만 HDF는 SQL 데이터베이스보다 빠릅니다.

네트워크 모니터링, 사용량 추적 등 많은 과학 데이터 및 시계열 데이터 세트와 함께 사용하면 매우 유용하다는 것을 알고 있습니다.

나는 HDF 파일의 크기 제한이 있다고 생각하지 않습니다 (OS 제한이 여전히 적용되지만).


5
개인적인 경험을 바탕으로 내장 된 문서 / 라벨이 크다고 덧붙였습니다. 이제 내 모든 데이터 세트는 데이터의 출처, 샘플링 빈도, 이상 등을 명시 적으로 기록하여 저장할 수 있습니다.
galamine

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.