모네DB

MonetDB
모네DB
MonetDB logo
개발자모네DB B.V.
안정적 해제
2021-SP2 / 2021년 12월 21일(2021-12-21)
리포지토리
기록 위치C
운영 체제크로스 플랫폼
유형기둥 지향 DBMS
RDBMS
면허증Mozilla 공용 라이센스, 버전 2.0
웹사이트www.monetdb.org

모네DB원래 네덜란드 CWI(Centrum Wiskunde & Informatica)에서 개발된 오픈소스 칼럼 중심의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 수억 개의 열과 수백만 개의 행이 있는 테이블을 결합하는 등 대형 데이터베이스에 대한 복잡한 질의에 높은 성능을 제공하도록 설계됐다. 모네DB는 온라인 분석처리, 데이터 마이닝, 지리정보시스템(GIS),[1] 자원기술 프레임워크([2]RDF), 텍스트 검색, 시퀀스 정렬 처리 등 고성능 애플리케이션에 적용됐다.[3]

역사

1990년대 데이터 마이닝 프로젝트는 향상된 분석 데이터베이스 지원이 필요했다. 그 결과, 데이터 증류기라는 CIWI스핀오프(spin-off)가 생겨났고, 분석 제품군에서 초기 MoneDB 구현을 사용하였다. 데이터 증류기는 결국 2003년에 SPSS의 자회사가 되었고, 2009년에 IBM에 인수되었다.[4]

현재 형태의 모네DB는 1990년대 암스테르담 대학에서 MAGNUM 연구 프로젝트의 일환으로 박사과정 학생인 피터 본츠마틴 L. 커스텐 교수가 2002년 처음 만들었다.[5] 처음에는 프랑스의 인상파 화가 클로드 모네의 이름을 따서 간단히 모네라고 불렸다. 오픈소스 소프트웨어 라이선스(Mozilla Public License의 변형판)에 의한 첫 번째 버전은 2004년 9월 30일에 발매되었다. 오픈 소스 도메인에 MoneDB 버전 4가 출시되었을 때, 새로운 SQL 프런트 엔드를 포함하여 MoneDB/CWI 팀에 의해 SQL:2003 표준을 지원하는 코드 베이스에 많은 확장자가 추가되었다.[6]

모네DB는 DBMS의 모든 계층에 혁신을 도입했다. 수직 단편화에 기반한 스토리지 모델, 흔히 모네DB일반적인 통역기 기반 RDBMS에 비해 동일한 알고리즘에 비해 속도 우위를 점하는 현대적인 CPU 조정 쿼리 실행 아키텍처. 그것은 CPU 캐시에 대한 쿼리 최적화를 튜닝한 최초의 데이터베이스 시스템 중 하나였다. MoneDB는 자동 및 자체 튜닝 인덱스, 런타임 쿼리 최적화, 모듈식 소프트웨어 아키텍처를 포함한다.[7][8]

2008년까지 후속 프로젝트 X100(MonetDB/X100)이 시작되어 벡터와이즈 기술로 진화하였다. 벡터와이즈는 액티언 코퍼레이션에 인수되어 잉그레스 데이터베이스와 통합되어 상업용 제품으로 판매되었다.[9][10]

2011년에 MoneDB 코드베이스의 개조를 위한 주요 노력이 시작되었다. 그 일환으로, 모네DB 4 커널과 그 XQuery 컴포넌트의 코드는 동결되었다. MoneDB 5에서는 SQL 레이어의 일부를 커널에 밀어 넣었다.[6] 그 결과 MIL(MoneDB 지침 언어)에서 MAL(MoneDB Assembly Language)로 전환되면서 내부 API에 차이가 생겼다. 더 오래 오래 유지된 오래된 최상위 쿼리 인터페이스도 제거되었다. 첫 번째는 XQuery였는데, XQuery는 MoneDB 4에 의존했고 버전 5에 포팅되지 않았다.[11] 실험적인 Jaql 인터페이스 지원은 2014년 10월 릴리즈와 함께 제거되었다.[12] 모네DB는 2015년 7월 출시와 함께 읽기 전용 데이터 셰이딩과 영구 지수에 대한 지지를 얻었다. 이 릴리스에서, 더 이상 사용되지 않는 스트리밍 데이터 모듈 DataCell은 또한 코드를 합리화하기 위한 노력으로 메인 코드 베이스에서 제거되었다.[13] 또한, 면허는 모질라 공중 면허 버전 2.0으로 변경되었다.

건축

MoneDB 아키텍처는 각각 자체적인 최적화 도구 집합을 가진 세 개의 계층으로 표현된다.[14] 프런트 엔드는 상위 레이어로 SQL에 질의 인터페이스를 제공하며, 개발 중인 SciQL과 SPARQL 인터페이스가 있다. 쿼리는 SQL의 관계 대수처럼 도메인별 표현으로 구문 분석하여 최적화한다. 생성된 논리 실행 계획은 다음 계층으로 전달되는 MoneDB 조립 언어(MAL) 지침으로 번역된다. 중간 계층 또는 백엔드 계층은 MAL에 대한 많은 비용 기반 최적화 도구를 제공한다. 맨 아래 계층은 BAT(Binary Association Tables)에 저장된 데이터에 대한 액세스를 제공하는 데이터베이스 커널이다. 각 BAT는 데이터베이스의 단일 열을 나타내는 개체 식별자와 값 열로 구성된 테이블이다.[14]

또한 MoneDB 내부 데이터 표현은 메모리 매핑된 파일의 수요 페이징을 사용하여 현대 CPU의 메모리 주소 지정 범위에 의존하며, 따라서 제한된 메모리에 있는 대형 데이터 저장소의 복잡한 관리를 포함하는 전통적인 DBMS 설계에서 벗어났다.

재활용 쿼리

질의 재활용은 칼럼 저장소의 한 번에 운영자 패러다임의 부산물을 재사용하기 위한 구조다. 재활용은 값비싼 계산의 결과를 저장하고 재사용하는 일반적인 아이디어를 이용한다. 낮은 수준의 명령 캐시와 달리 쿼리 재활용은 캐시할 명령어를 미리 선택하기 위해 최적기를 사용한다. 이 기법은 질의 응답 시간과 처리량을 향상시키는 동시에, 스스로 조직화하는 방식으로 작동하도록 설계되었다.[15] 밀레나 이바노바, 마틴 케르스텐, 닐스 네스, 로뮬로 곤칼베스 등으로 구성된 CWI 데이터베이스 아키텍처 그룹의 저자들은 ACM SGIMOD 2009 컨퍼런스에서 쿼리 리사이클에 관한 연구로 "최고의 페이퍼 러너 업"을 수상했다.[16][17]

데이터베이스 크래킹

MoneDB는 Database Cracking을 도입한 최초의 데이터베이스 중 하나이다. 데이터베이스 크래킹은 데이터의 증분 부분 인덱싱 및/또는 정렬이다. 그것은 MoneDB의 주상적 특성을 직접적으로 이용한다. 크래킹(cracking)은 인덱스 유지관리 비용을 업데이트에서 쿼리 프로세싱으로 전환하는 기술이다. 쿼리 파이프라인 최적화 프로그램은 쿼리 계획을 중지하고 이 정보를 전파하는 데 사용된다. 이 기법은 접근 시간 향상과 자기 조직적인 행동을 가능하게 한다.[18] Database Cracking은 ACM SGIMOD 2011 J를 받았다.그레이 베스트 논문상.[19]

구성 요소들

데이터베이스 엔진의 기능을 확장하는 MoneDB에는 많은 확장자가 존재한다. 3계층 아키텍처 때문에, 최상위 질의 인터페이스는 백엔드 및 커널 계층에서 수행되는 최적화로부터 이익을 얻을 수 있다.

SQL

MonetDB/SQL은 최상위 확장자로 SQL:2003 표준에 부합하는 트랜잭션에 대한 완벽한 지원을 제공한다.[14]

GIS

MoneDB/GIS는 OGC(Open Geospatial Consortium)의 Simple Features Access 표준을 지원하여 MoneDB/SQL에 대한 확장이다.[1]

SCIQL

SciQL은 어레이를 퍼스트 클래스 시민으로 하는 과학 응용 프로그램을 위한 SQL 기반 쿼리 언어. SciQL은 MoneDB가 어레이 데이터베이스로서 효과적으로 기능할 수 있도록 한다. SciQL은 Data Vault 기술과 함께 유럽연합 PlanetDataTELEIOS 프로젝트에 사용되어 대형 과학 데이터 저장소에 대한 투명한 액세스를 제공한다.[20] Data Vault는 분산 리포지토리의 데이터를 SciQL 어레이에 매핑하여 MoneDB의 주피오 임시 데이터를 보다 효율적으로 처리할 수 있도록 한다.[21] SciQL은 휴먼 브레인 프로젝트를 위해 더욱 확장될 것이다.[22]

데이터 볼트

Data Vault는 SQL/MED 표준과 유사한 MoneDB용 데이터베이스 연결 외부 파일 저장소다. Data Vault 기술을 사용하면 분산/원격 파일 저장소와 투명하게 통합할 수 있다. 과학 데이터 탐색마이닝, 특히 원격 감지 데이터를 위해 설계되었다.[21] GeoTIFF(지구 관측), FITS(astronomy), MiniSEED(지질학) 및 NetCDF 형식에 대한 지원이 있다.[21][23] 데이터는 파일 저장소에 원본 형식으로 저장되며, 필요한 경우에만 느리게 데이터베이스에 로드된다. 또한 시스템은 데이터 형식이 필요로 하는 경우 데이터를 수집할 때 처리할 수 있다. [24] 그 결과, 데이터베이스에서 필요한 데이터만 처리되기 때문에, 매우 큰 파일 리포지토리도 효율적으로 분석할 수 있다. 데이터는 모네DB SQL 또는 SciQL 인터페이스를 통해 액세스할 수 있다. 데이터 볼트 기술은 유럽 연합의 TELEIOS 프로젝트에 사용되었는데, 이는 지구 관측 데이터를 위한 가상 관측소를 건설하는 것을 목적으로 하였다.[23] FITS 파일용 데이터 볼트는 INT 광도계 H-Alpha Survey(IPAS)의 천문학적 측량 데이터 처리에도 사용되어 왔다.

샘/밤

MoneDB는 시퀀스 정렬 데이터의 효율적인 처리를 위해 SAM/BAM 모듈을 가지고 있다. 생물정보학 연구를 목적으로 하는 이 모듈에는 DNA 데이터 작업을 위한 SAM/BAM 데이터 로더와 SQL UDF 세트가 있다.[3] 이 모듈은 인기 있는 SAMtools 라이브러리를 사용한다.[27]

RDF/SPARQL

모네DB/RDF는 연결된 데이터로 작업하기 위한 SPARQL 기반 확장자로, RDF에 대한 지원이 추가되고 모네DB가 3배수로 기능할 수 있도록 한다. Linked Open Data 2 프로젝트를 위한 개발 중.[2]

R 통합

MonetDB/R 모듈은 R로 작성된 UDF를 시스템의 SQL 계층에서 실행할 수 있도록 허용한다. 이 경우 RDBMS 내부의 다른 응용 프로그램에 내장된 실행을 위한 기본 R 지원을 사용하여 수행된다. 모네DB 이전.R 커넥터는 MoneDB 데이터 소스를 사용하여 R 세션에서 처리할 수 있도록 허용했다. MoneDB의 새로운 R 통합 기능은 RDBMS와 R 세션 간에 데이터를 전송할 필요가 없으므로 오버헤드를 줄이고 성능을 향상시킨다. 이 기능은 RDBMS에 저장된 데이터의 인라인 분석을 위한 R 통계 소프트웨어의 기능에 대한 접근을 사용자에게 제공하기 위한 것으로, C UDF에 대한 기존 지원을 보완하고 데이터베이스처리에 사용하기 위한 것이다.[28]

파이톤 통합

모네DB에 내장되어 있는 R UDF와 유사하게, 데이터베이스는 이제 Python/NumPy로 작성된 UDF를 지원한다. Numpy 어레이(C 어레이용 Python 래퍼 자체)를 사용하는 구현으로, 그 결과 오버헤드가 제한되어 기본 SQL 기능과 기능적인 Python 통합 기능을 제공한다. 또한 Embedded Python 기능은 매핑된 작업을 지원하여 사용자가 SQL 조회 내에서 Python 기능을 병렬로 실행할 수 있도록 한다. 이 기능의 실제적인 측면은 사용자에게 Python/NumPy/SciPy 라이브러리에 대한 액세스를 제공하며, 이 라이브러리는 통계/분석 기능을 많이 선택할 수 있다.[29]

모네DBLITe

R(MonetDB)용 원격 드라이버 출시 이후.저자들은 모네DB(MonetDB/R)의 R)와 R UDF를 모네DBLite라고 불리는 R에 내장된 모네DB 버전을 만들었다. R 패키지로 배포되어 이전 R 통합에 필요한 데이터베이스 서버를 관리할 필요가 없다. DBMS는 R 프로세스 자체 내에서 작동하며 소켓 통신과 직렬화 오버헤드를 제거하여 효율성을 크게 향상시킨다. 메모리 내 최적화된 칼럼니스트 스토어의 성능을 살려 R용 SQLite 유사 패키지를 전달한다는 게 이면의 구상이다.[30]

이전 확장자

많은 이전 확장자가 사용되지 않고 시간이 지남에 따라 안정적 코드 베이스에서 제거되었다. 주목할 만한 예로는 MoneDB 버전 5에서 제거된 XQuery 확장자, JAQL 확장자, 그리고 Data Cell이라는 스트리밍 데이터 확장자가 있다.[14] [31][32]

참고 항목

참조

  1. ^ a b "GeoSpatial - MonetDB". 4 March 2014.
  2. ^ a b "MonetDB - LOD2 - Creating Knowledge out of Interlined Data". 6 March 2014.
  3. ^ a b "Life Sciences in MonetDB". 24 November 2014.
  4. ^ "A short history about us - MonetDB". 6 March 2014.
  5. ^ Monet: A Next-Generation DBMS Kernel For Query-Intensive Applications (PDF). Ph.D. Thesis. Universiteit van Amsterdam. May 2002.
  6. ^ a b MoneDB 역사적 배경
  7. ^ Stefan Manegold (June 2006). "An Empirical Evaluation of XQuery Processors" (PDF). Proceedings of the International Workshop on Performance and Evaluation of Data Management Systems (ExpDB). ACM. 33 (2): 203–220. doi:10.1016/j.is.2007.05.004. Retrieved December 11, 2013.
  8. ^ P. A. Boncz, T. Grust, M. van Keulen, S. Manegold, J. Ritter, J. Teubner. MoneDB/XQuery: 관계형 엔진에 의해 구동되는 고속 XQuery 프로세서 2008-05-19를 웨이백 시스템보관. 2006년 6월 시카고, 일리노이, 미국 ACM SGIMOD 국제 데이터 관리 회의의 진행 중.
  9. ^ Marcin Zukowski; Peter Boncz (May 20, 2012). "From x100 to vectorwise: opportunities, challenges and things most researchers do not think about, chapter: From x100 to vectorwise". Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. ACM: 861–862. doi:10.1145/2213836.2213967. ISBN 978-1-4503-1247-9. S2CID 9187072.
  10. ^ Inkster, D.; Zukowski, M.; Boncz, P. A. (September 20, 2011). "Integration of VectorWise with Ingres" (PDF). ACM SIGMOD Record. ACM. 40 (3): 45. CiteSeerX 10.1.1.297.4985. doi:10.1145/2070736.2070747. S2CID 6372175.
  11. ^ "XQuery". 12 December 2014.
  12. ^ "MonetDB Oct2014 Release Notes". 12 December 2014.
  13. ^ "MonetDB July 2015 Released". 31 August 2015.
  14. ^ a b c d Idreos, S.; Groffen, F. E.; Nes, N. J.; Manegold, S.; Mullender, K. S.; Kersten, M. L. (March 2012). "MonetDB: Two Decades of Research in Column-oriented Database Architectures" (PDF). IEEE Data Engineering Bulletin. IEEE: 40–45. Retrieved March 6, 2014.
  15. ^ * Ivanova, Milena G; Kersten, Martin L; Nes, Niels J; Goncalves, Romulo AP (2010). "An architecture for recycling intermediates in a column-store". ACM Transactions on Database Systems. ACM. 35 (4): 24. doi:10.1145/1862919.1862921. S2CID 52811192.
  16. ^ "CWI database team wins Best Paper Runner Up at SIGMOD 2009". CWI Amsterdam. Retrieved 2009-07-01.
  17. ^ "SIGMOD Awards". ACM SIGMOD. Retrieved 2014-07-01.
  18. ^ Idreos, Stratos; Kersten, Martin L; Manegold, Stefan (2007). Database cracking. Proceedings of CIDR.
  19. ^ "SIGMOD Awards". ACM SIGMOD. Retrieved 2014-12-12.
  20. ^ Zhang, Y.; Scheers, L. H. A.; Kersten, M. L.; Ivanova, M.; Nes, N. J. (2011). "Astronomical Data Processing Using SciQL, an SQL Based Query Language for Array Data". Astronomical Data Analysis Software and Systems.
  21. ^ a b c Ivanova, Milena; Kersten, Martin; Manegold, Stefan (2012). "Data vaults: a symbiosis between database technology and scientific file repositories". Scientific and Statistical Database Management. SSDBM 20212. Springer Berlin Heidelberg. pp. 485–494.
  22. ^ "SCIQL.ORG". 4 March 2014.
  23. ^ a b Ivanova, Milena; Kargin, Yagiz; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datcu, Mihai; Molina, Daniela Espinoza (2013). "Data Vaults: A Database Welcome to Scientific File Repositories". Proceedings of the 25th International Conference on Scientific and Statistical Database Management. SSDBM. ACM. doi:10.1145/2484838.2484876. ISBN 978-1-4503-1921-8.
  24. ^ Kargin, Yagiz; Ivanova, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (August 2013). "Lazy ETL in Action: ETL Technology Dates Scientific Data". Proceedings of the VLDB Endowment. 6 (12). pp. 1286–1289. doi:10.14778/2536274.2536297. ISSN 2150-8097.
  25. ^ "Astronomical data analysis with MonetDB Data Vaults". 2015-09-09.
  26. ^ "Data Vaults". 2015-09-09.
  27. ^ "SAM/BAM installation". 24 November 2014.
  28. ^ "Embedded R in MonetDB". 13 November 2014.
  29. ^ "Embedded Python/NumPy in MonetDB". 11 January 2015.
  30. ^ "MonetDBLite for R". 25 November 2015.
  31. ^ "Xquery (obsolete)". MonetDB. Retrieved 2015-05-26.
  32. ^ "Announcement: New Oct2014 Feature release of MonetDB suite". MonetDB. Retrieved 2015-05-26.

참고 문헌 목록

  • Boncz, Peter; Manegold, Stefan; Kersten, Martin (1999). Database architecture optimized for the new bottleneck: Memory access. Proceedings of International Conference on Very Large Data Bases. pp. 54–65.
  • Schmidt, Albrecht; Kersten, Martin; Windhouwer, Menzo; Waas, Florian (2001). "Efficient relational storage and retrieval of XML documents". The World Wide Web and Databases. Lecture Notes in Computer Science. Springer. 1997: 137–150. doi:10.1007/3-540-45271-0_9. ISBN 978-3-540-41826-9.
  • Idreos, Stratos; Kersten, Martin L; Manegold, Stefan (2007). Database cracking. Proceedings of CIDR.
  • Boncz, Peter A; Kersten, Martin L; Manegold, Stefan (2008). "Breaking the memory wall in MonetDB". Communications of the ACM. ACM. 51 (12): 77–85. doi:10.1145/1409360.1409380. S2CID 5633935.
  • Sidirourgos, Lefteris; Goncalves, Romulo; Kersten, Martin; Nes, Niels; Manegold, Stefan (2008). "Column-store support for RDF data management: not all swans are white". Proceedings of the VLDB Endowment. 1 (2): 1553–1563. doi:10.14778/1454159.1454227.
  • Ivanova, Milena G.; Kersten, Martin L.; Nes, Niels J.; Goncalves, Romulo A.P. (2009). "An Architecture for Recycling Intermediates in a Column-store". Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data. SIGMOD '09. ACM. pp. 309–320. doi:10.1145/1559845.1559879. ISBN 978-1-60558-551-2.
  • Manegold, Stefan; Boncz, Peter A.; Kersten, Martin L. (Dec 2000). "Optimizing Database Architecture for the New Bottleneck: Memory Access". The VLDB Journal. Springer-Verlag New York, Inc. 9 (3): 231–246. doi:10.1007/s007780000031. ISSN 1066-8888. S2CID 1688757.
  • Ivanova, Milena G; Kersten, Martin L; Nes, Niels J; Goncalves, Romulo AP (2010). "An architecture for recycling intermediates in a column-store". ACM Transactions on Database Systems. ACM. 35 (4): 24. doi:10.1145/1862919.1862921. S2CID 52811192.
  • Goncalves, Romulo & Kersten, Martin (2011). "The data cyclotron query processing scheme". ACM Transactions on Database Systems. ACM. 36 (4): 27. doi:10.1145/2043652.2043660.
  • Kersten, Martin L; Idreos, Stratos; Manegold, Stefan; Liarou, Erietta (2011). "The researcher's guide to the data deluge: Querying a scientific database in just a few seconds". PVLDB Challenges and Visions.
  • Kersten, M; Zhang, Ying; Ivanova, Milena; Nes, Niels (2011). "SciQL, a query language for science applications". Proceedings of the EDBT/ICDT 2011 Workshop on Array Databases. ACM. pp. 1–12.
  • Sidirourgos, Lefteris; Kersten, Martin; Boncz, Peter (2011). "SciBORQ: Scientific data management with Bounds On Runtime and Quality". Creative Commons. Cite 저널은 필요로 한다. journal= (도움말)
  • Liarou, Erietta; Idreos, Stratos; Manegold, Stefan; Kersten, Martin (2012). "MonetDB/DataCell: online analytics in a streaming column-store". Proceedings of the VLDB Endowment. 5 (12): 1910–1913. doi:10.14778/2367502.2367535. S2CID 545154.
  • Ivanova, Milena; Kersten, Martin; Manegold, Stefan (2012). "Data vaults: a symbiosis between database technology and scientific file repositories". Scientific and Statistical Database Management. SSDBM 2012. Springer Berlin Heidelberg. pp. 485–494.
  • Kargin, Yagiz; Ivanova, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (August 2013). "Lazy ETL in Action: ETL Technology Dates Scientific Data". Proceedings of the VLDB Endowment. 6 (12). pp. 1286–1289. doi:10.14778/2536274.2536297. ISSN 2150-8097.
  • Sidirourgos, Lefteris & Kersten, Martin (2013). "Column imprints: a secondary index structure". Proceedings of the 2013 international conference on Management of data. ACM. pp. 893–904.
  • Ivanova, Milena; Kargin, Yagiz; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datcu, Mihai; Molina, Daniela Espinoza (2013). "Data Vaults: A Database Welcome to Scientific File Repositories". Proceedings of the 25th International Conference on Scientific and Statistical Database Management. SSDBM. ACM. doi:10.1145/2484838.2484876. ISBN 978-1-4503-1921-8.

외부 링크