본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


AsterixDB

AsterixDB 테스트용 환경 구축 - 1 (Install AsterixDB)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 10. 31.

아파치 재단에서 만든 아스트릭스DB를 최근 접할 기회가 생겨서 테스트 환경을 구축하여 보았다.

테스트용 서버는 우분투에 설치하였다.

왠만한 프로그램이 요즘에는 패키지 인스톨러로 진행되기 때문에 설치방법은 그리 어렵지는 않았다.

설치를 위해서는 git, maven 2개가 필요하다.

위 2개의 모듈이 없다면 아래 명령어를 통해서 설치하면 된다.

apt-get install maven
apt-get install git

 

패키지를 설치할수 없거나 못찾는 오류가나오면 업데이트 하여주자.

apt-get update   

 

설치가 완료되면 내가 설치하고자 할 디렉토리를 만들어준 뒤에 git 명령어를 통해서 파일을 다운받는다.

git clone https://github.com/apache/asterixdb.git

 

요렇게 받게된당..내가만든건 AsterixDB인데 파일을 다운받으면 asterixdb 폴더를 만든다음에 파일을 받는다.

 

다운을 받게되면 내가만든 폴더 아래로 asterixdb라는 폴더가 생기게 된다.

새로 생긴 asterixdb 폴더로 이동하자.

cd asterixdb 

해당 폴더로 이동해서 메이븐 명령어를 통해서 자동으로 설치를 진행하자.

mvn clean package -DskipTests

엄청난 양의 무언가(?)를 받는다. 시간이 좀 걸렸던 것 같다.

 

이상없이 받게되면 설치는 끝났다고 볼 수 있다.

구동을 위해서는 상당한(?) 폴더 이동을 해야되는데..아래 사진을 보자.

와...저 bin 디렉토리까지 이동해야된다;;;;

 

사진에서 보이는 AsterixDB는 내가만든 폴더이고, 소문자로 된 asterixdb 폴더는 mvn 명령어를 통해서 파일다운을 받을 때 생긴 폴더이다.

중간에 보이는 숫자는 버전을 의미하며, 버전이 달라도 기본 디렉토리 구조는 동일하다.

지금 내 위치가 asterixdb 폴더라고 하면 이동하는 방법은 아래와 같다.

cd asterixdb/asterix-server/target/asterix-server-버전-binary-assembly/apache-asterixdb-버전-SNAPSHOT/opt/local/bin

 

mvn명령어로 만들어진 asterixdb 디렉토리 안에서 다시 asterixdb 디렉토리가 또 추가된다.

해당 디렉토리까지 이동하였다면 이제 명령어를 입력해서 서버를 구동시켜 주자.

nohup ./start-sample-cluster.sh &

서버실행!

테스트 서버에서 제공하는 아주 훌륭한 환경으로는 웹 콘솔이 제공되는 점이다.

아스트릭스db를 실행하고 나면 19001번 포트로 접속해서 gui환경에서 작업 할 수 있다.

19001번 포트를 외부에서 접속 할 수 있게 방화벽 설정을 하여주자.

ufw, iptables 또는 firewall-cmd 등 사용중인 방화벽 관리 프로그램을 통해서 19001번 포트를 허용하여 주자.

포트를 허용하여주고  http://설치한서버주소:19001로 접속하면 아래사진처럼 관리화면을 만날 수 있다.

 

짜잔~ 심플하게 화면이 등장한다.

 

 

기왕 설치한김에..간단하게 데이터를 넣어보자.

일단, 관계형 데이터베이스의 의미를 부여하여 TEST_DB라는 데이터베이스를 만들고 MY_FORM이라는 테이블스키마를 만들어 보겠다.

명칭은 조금 달라도 의미는 거의 동일하다.

DROP DATAVERSE TEST_DB IF EXISTS;
CREATE DATAVERSE TEST_DB;

Output에 success가 잘 나왔다.

 

 

DATAVERSE라는 개념이 소위말해 데이터베이스이다.

TEST_DB라는 데이터베이스를 만들었으니 이제 MY_FORM이라는 테이블 스키마를 생성하여 준다.

USE TEST_DB ;
CREATE TYPE MY_FORM AS{
    text : string,
    number : int
};

 

TYPE이라는 개념이 테이블의 스키마 개념으로 생각하면된다.

그리고내서는 DATASET을 만들어 실제 데이터를 관리할 테이블을 만들어준다.

CREATE DATASET MY_FORM_SET(MY_FORM)    //소괄호는 타입
PRIMARY KEY number;  //이런식으로 제약조건을 줄 수도 있다.

 

MY_FORM_SET이라는 테이블을 만들었다. MY_FORM이라는 테이블 스키마를 사용하는 테이블의 개념으로 생각하면 된다.

그럼 이제 정상적으로 잘 만들었는지 아래 쿼리를 통해서 확인하여보자.

USE TEST_DB ;
SELECT VALUE ds FROM Metadata.`Dataset` ds;

맨 하단에 내가만든게 잘 나온다!!

 

 

이제 등록을 한번 하여보자.

USE TEST_DB;
INSERT INTO MY_FORM_SET([
  {"number":1, "text":"HelloWorld"}
]);

등록성공!

 

등록이 완료되었다면 제대로 들어갔는지 확인하여보자.

USE TEST_DB ;
SELECT *  FROM MY_FORM_SET;

 

 

여기까지 하였다면 기본적인 사용법 및 환경세팅은 끝났다.

데이터를 넣는 것은 테이블 개념의 DATASET이라는 데이터셋에 저장하여야만 하며, 해당 데이터셋은 테이블 스키마 개념의 TYPE을 먼저 생성해 주어야 한다는 점을 잊지 말아야한다.

 

TYPE은 데이터를 관리하는 대상이 아니고 스키마이다.

DATASET이 데이터를 관리하는 대상이다.

DATASET은 TYPE을 만든 뒤에 생성 해 주어야 한다.

 

흥미로운 점은 아스트릭스db는 http를 통한 외부에서의 요청을 받아 데이터를 CRUD 할 수 있게 해준다는 점 이다.

마치 RestAPI형식의 서버의 기능이 탑재 된 것처럼 말이다.

일반적인 백그라운드에서의 접속 방법은 아직 찾지를 못하였지만, 공식 사이트에서는 Http를 통한 연동 방법은 잘 나와 있다.

https://asterixdb.apache.org/docs/0.9.0/api.html#ErrorCodes

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글