EventQL은 대규모 데이터 수집 및 분석 워크로드를 위해 구축 된 분산 된 원주 데이터베이스입니다. 대량의 스트리밍 쓰기를 처리하고 초고속 SQL 및 MapReduce 쿼리를 실행할 수 있습니다.
자세한 정보 : 문서화, 다운로드, 아키텍처, 시작
이것은 당신을 흥분시키기 위해 EventQL의 주요 기능을 빠르게 실행하는 것입니다. 이 주제와 그 주제에 대한 자세한 정보는 문서를 친절하게 언급합니다.
자동 분할. 테이블은 기본 키를 사용하여 파티션으로 투명하게 분할되고 많은 컴퓨터에 분산됩니다. 파편 수를 선불로 구성 할 필요는 없습니다. 데이터를 삽입하고 EventQL은 나머지를 처리합니다.
idempotent는 쓴다. 기본 키 기반 삽입, 업스트 및 삭제 작업을 지원합니다. 스트리밍 소스에서 쉽게 섭취하기 위해 Upsert 작업을 사용하여 쉽게 섭취 할 수 있습니다.
작고 원주식 저장. 원주민 저장 엔진을 사용하면 EventQL이 I/O 발자국을 크게 줄이고 분석 쿼리를 행 지향 시스템보다 빠르게 실행할 수 있습니다.
표준 SQL 지원. (거의) SQL 2009 지원을 완료하십시오. (조인!) 쿼리는 또한 많은 컴퓨터에서 자동으로 병렬화되고 실행됩니다.
비늘로 페타 바이트. EventQL은 여러 똑같이 권한있는 서버들 사이에 모든 테이블 파티션 및 쿼리를 배포합니다. 충분한 기계가 주어지면 단일 테이블에 테라 바이트의 데이터를 보관하고 쿼리 할 수 있습니다.
스트리밍, 저도 조작. 데이터를 EventQL에 배치 할 필요가 없습니다. 대량의 스트리밍 삽입 및 업데이트 작업을 처리 할 수 있습니다. 모든 돌연변이는 즉시 보이며 최소한의 SQL 쿼리 대기 시간은 ~ 0.1ms입니다.
시간 및 관계형 데이터. 자동 파티셔닝은 좋은 기본 키가있는 한 관계 및 키 가치 데이터뿐만 아니라 시간 서리를 지원합니다. 스토리지 엔진은 또한 반복 및 레코드 유형을 지원하므로 임의의 JSON 객체를 행에 삽입 할 수 있습니다.
HTTP API. HTTP API를 사용하면 응용 프로그램에서 쿼리 결과를 사용하고 응용 프로그램이나 장치에서 데이터를 쉽게 보낼 수 있습니다. EventQL은 기본 TCP 기반 프로토콜도 지원합니다.
빠른 범위 스캔. eventQL의 테이블 파티션이 주문되고 정의 된 키 란드가 있으므로 키 공간의 일부에서 효율적인 범위 스캔을 수행 할 수 있습니다.
하드웨어 효율성 . EventQL은 최신 C ++에서 구현되며 벡터화 된 실행 및 SSE 명령어를 사용하여 상품 하드웨어에서 최대 성능을 달성하려고합니다.
사용 가능합니다 . EventQL의 공유되지 않은 아키텍처는 매우 결함이 있습니다. 클러스터는 많은 특권 노드로 구성되며 단일 고장 지점이 없습니다.
자기 포함. 몇 분 안에 새 클러스터를 설정할 수 있습니다. EventQL Server는 단일 바이너리로 선적되며 Zookeeper 또는 유사한 조정 서비스를 제외한 외부 종속성이 없습니다.
다음은 EventQL의 디자인에 특히 적합한 몇 가지 시나리오입니다.
EventQL은 특정 설계 선택을 중심으로 구축되어 실시간 데이터 분석 프로세싱 (OLAP) 작업에 적합하지만 대부분의 Transactional (OLT) 작업에 적합하지 않음을 의미합니다.
시작하기 전에 일부 빌드 종속성을 설치해야합니다. 현재 최신 C ++ 컴파일러, Libz, Autotools 및 Python이 필요합니다 (Spidermonkey/Mozbuild 용).
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
분배 Tarball에서 EventQL을 구축하려면 :
$ ./configure
$ make
$ sudo make install
GIT 체크 아웃에서 EventQL을 구축하려면 :
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
전체 (세계) 테스트 스위트를 실행하려면 :
$ make test
빠른 (연기) 테스트 스위트를 실행하려면 :
$ make smoketest