아스트릭스db에서는 본인들이 만든 쿼리 질의문(AQL)을 제공한다.
함수처럼 만들어 사용 할 수도있고..뭐 기능이 좋다고는 써 있던데..
흠..얼마나 빠른지 테스트 데이터베이스에 넣고 쿼리문을 한번 동작시켜 보았다.
아래 모습은 sql과 aql로 나누어진 질의문 모습이다.
my_data_set_result이라는 데이터셋에서 단순하게 COUNT 를 통해서 갯수를 가져오게 하였다.
- SQL 스타일
use test_db;
select count(*) from my_data_set_result;
- AQL 스타일
use dataverse test_db;
count(for $item in dataset my_data_set_result return $item);
my_data_set_result 에는 대략 백만건 이상의 데이터가 들어가 있었다.
number가 primary키로 사용되고 있으며 단순한 형태의 데이터만 저장하고 있었다.
사실..천만건을 넣으려고 하였는데 워낙 오래걸려서 포기하고 대충 백만건 넘는 데이터는 얼마나 나올지 확인하려고 위 쿼리문을 동작시켜 보았다.
결과는..거의 차이가 없었다.
단순히 count를 통해서 갯수를 가져오는 것 뿐인데도 속도가 느렸던 것 같았다.
일반 관계형 데이터베이스에서도 1백만건 count하면 0.00초정도 나오는데 말이다.
쿼리문 같은 경우에는 일반 프로그래밍 언어처럼 나열해서 사용 할 수 있었다.
간단한 예로 그룹화를 통해 데이터를 가져온다면 아래처럼 가능하다.
use dataverse 사용할DB;
for $item in dataset 조회할데이터셋
group by $results := $item.그룹할속성, $results2:= $item.그룹할속성 with $item
let $c := count($item)
order by $c desc
return {
"types": $results,
"auc": $results2,
"count": $c
};
아무튼..일단 1천만건 넣고 시작해야되나보다.
아직 뭐가 빠르고 좋은지 모르겠다.
* AQL 예문(공식)
반응형
'AsterixDB' 카테고리의 다른 글
AsterixDB 테스트용 환경 구축 - 4 (Insert performance) (0) | 2019.12.10 |
---|---|
AsterixDB 테스트용 환경 구축 - 3 (with Java, Java연동) (0) | 2019.11.04 |
AsterixDB 테스트용 환경 구축 - 2 (AsterixDB Query) (0) | 2019.11.01 |
AsterixDB 테스트용 환경 구축 - 1 (Install AsterixDB) (0) | 2019.10.31 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글