이 글에서는 SingleStore에 대해서 알아보고 설치하는 방법에 대해서 설명합니다.
Table Of Contents
SingleStore DBMS란?
SingleStore는 분산형 관계형 데이터베이스로, 대규모의 트랜잭션(OLTP)과 실시간 분석(OLAP)을 동시에 처리할 수 있다고 합니다. 이 데이터베이스는 표준 SQL 드라이버를 통해 접근할 수 있으며, 조인, 필터, 그리고 분석 기능을 포함한 ANSI SQL 문법을 지원합니다. 예를 들어, 집계, 그룹화, 그리고 윈도우 함수 등의 기능을 사용할 수 있습니다.
또한, SingleStore는 모든 데이터를 하나의 플랫폼에서 운영화 함으로써 비즈니스가 더 빠르게 적응하고 다양한 데이터를 수용하며 디지털 혁신을 가속화하는 데 도움을 줍니다. 이는 클라우드 네이티브 아키텍처를 통해 데이터를 적재하고 쿼리 성능을 제공함으로써 현대의 애플리케이션과 분석 시스템에 대한 즉각적인 통찰력을 제공합니다.
라고 합니다.
그래서, 테스트 해보려고 합니다.
SingleStore local 장비에 설치하기
리눅스 장비에 설치해 봅니다.
참고로 singlestore 설치는 GLIBC_2.16 이상에서 설치 가능합니다.
사전 준비 및 다운로드
1. user 먼저 생성합니다.
$ sudo useradd -d /home1/singlestore singlestore
2. singlestore standalone을 다운 받습니다.
위 링크에서 다운 받을 수 있습니다.
접속하면 아래와 같은 화면이 나타나는데, google로 시작할 수 있습니다.
singlestore 가입중 회사 email 입력 시 아래와 같이 일반 email(gmail,naver등 포함)을 입력하면 다음 단계로 진입하지 않습니다. 그러므로, 알려지지 않은 메일이나 없다면 그냥 정상적이지 않은 메일 주소를 넣으면 넘어갑니다.
설치 방법은 다음과 같이 docker를 이용한 Quick Start와 Full Installation이 있습니다. 저의 경우 직접 장비에서 테스트를 하려고 하기 때문에 Full Installation으로 선택하였습니다. 추가로 아래에는 OS 혹은 환경을 선택하는데, Linux를 선택하였습니다.
singlestore 설치 옵션은 다음과 같습니다. 여기에서 저는 command line으로 설치를 진행합니다.
다음과 같이 single storedb를 다운로드 받습니다.
다음 명령 세 개를 순차적으로 실행하면 path가 나타납니다. 각각 나타난 path에 있는 최신 버전에 대해서 wget으로 다운로드를 받습니다.
% curl https://release.memsql.com/production/index/memsqltoolbox/latest.json
{
"releaseID": "75d51f69-6316-45c1-8fa2-6cdc09de9845",
"version": "1.17.3",
"commit": "c98d2138662dab352f78d584e6f4aca02cdca247",
"packages": {
"memsql-toolbox-deb": {
"Path": "production/debian/pool/singlestoredb-toolbox_1.17.3_c98d213866_amd64.deb",
"Sha256Sum": "0dfa1fac03f17fdd1f9ae55176a48f171347975a87f9f4b3c8d1c7509c0891b4"
},
"memsql-toolbox-rpm": {
"Path": "production/rpm/x86_64/singlestoredb-toolbox-1.17.3-c98d213866.x86_64.rpm",
"Sha256Sum": "24c74e70b9004947ea5ea521f080b5e4b2cda7433961ea75875c7fbe3ea952d1"
},
"memsql-toolbox-tar": {
"Path": "production/tar/x86_64/singlestoredb-toolbox-1.17.3-c98d213866.x86_64.tar.gz",
"Sha256Sum": "727e371b8082ff948145c07d6f452ff331c5d38fe3cbb1a55a80647ee1e01fcf"
}
}
}
curl https://release.memsql.com/production/index/memsqlclient/latest.json
curl https://release.memsql.com/production/index/singlestoredbserver/latest.json
패키지 파일 압축 해제
sudo가 아닌 사용자가 기본 배포 호스트에서 액세스할 수 있도록 구성된 전용 싱글스토어 디렉터리(예: /home/<user>/singlestore 또는 /opt/singlestore)로 singlestoredb-toolbox, singlestore-client 및 singlestoredb-server tarball 파일을 전송합니다.
압축은 서버를 제외한 두 개의 파일에 대해서 해제합니다. 서버는 나중에 배포 과정에서 해제됩니다.
$ tar xvzf singlestoredb-toolbox-1.17.3-c98d213866.x86_64.tar.gz
$ tar xvzf singlestore-client-1.0.7-9e7c21fd02.x86_64.tar.gz
Deploy SingleStoreDB
Minimal Deployment
SingleStoreDB는 최소 두 개의 노드로 배포하도록 설계되었습니다:
- SQL 쿼리를 실행하고 결과를 집계하는 마스터 애그리게이터 노드
- 데이터 저장 및 처리를 담당하는 단일 리프 노드
이 두 노드는 단일 호스트(via the cluster-in-box
option)에 배포하거나, 두 호스트에 배포할 수 있으며, 각 호스트에 하나의 SingleStoreDB 노드를 사용할 수 있습니다.
필요에 따라 추가 애그리게이터와 노드를 추가 및 제거할 수 있지만, 최소한의 SingleStoreDB 배포는 항상 이 두 노드로 구성됩니다.
아래 링크를 참고하여 CLI Deployment - Tarball 단계로 실행합니다.
CLI Deployment - Tarball
1. Change to the singlestoredb-toolbox-<version> directory.
$ cd singlestoredb-toolbox-1.17.3-c98d213866
$ pwd
/home1/singlestore/singlestore/singlestoredb-toolbox-1.17.3-c98d213866
2. Deploy SingleStoreDB.Note the inclusion of the --force-package-format
option.
Note: Creating a node with an empty root password may be convenient for testing purposes.
While this is not recommended, you can specify a blank password via: --password ""
.
singlestore 설치 시에 sudo 권한을 요구합니다. 그러므로, singlestore계정에 sudo 권한을 부여합니다. 다음의 명령을 수행하여 sudo 권한을 부여하는 라인을 편집합니다.
아래와 같이 singlestore 계정에 모든 sudo 권한을 부여하는 라인을 root 아래에 추가합니다.
위와 같이 설치가 되었습니다.
Analyze your current cluster configuration
sdb-admin 최적화 명령을 사용하여 현재 클러스터 구성을 분석합니다.
이 명령은 현재 클러스터 구성을 모범 사례 집합과 비교하여 확인하고 성능을 최대화하기 위해 변경하거나 권장 사항을 제공합니다.
NUMA를 지원하는 호스트의 경우, 이 명령은 리프 노드를 특정 NUMA 노드에 바인딩합니다.
$ ./sdb-admin optimize
toolbox will perform the following actions:
· On host 127.0.0.1:
- Run 'memsqlctl optimize'
- Run 'memsqlctl update-config --set-global --key default_partitions_per_leaf --value 8'
- Run 'memsqlctl update-config --set-global --key expected_leaf_core_count --value 8'
Would you like to continue? [y/N]: y
✓ Ran 'memsqlctl optimize' on host 127.0.0.1
✓ Ran 'memsqlctl update-config --set-global --key default_partitions_per_leaf --value 8' on host 127.0.0.1
✓ Ran 'memsqlctl update-config --set-global --key expected_leaf_core_count --value 8' on host 127.0.0.1
Operation completed successfully
SingleStore local 장비에서 테스트 하기
다음의 명령어로 접속하여 테스트 해 볼 수 있습니다.
위에서 보는 것 처럼 master는 127.0.0.1의 3306으로 대기하고 있으므로
[singlestore@dbdm singlestore-client-1.0.7-9e7c21fd02]$ ./singlestore -P 3306
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 5.7.32 SingleStoreDB source distribution (compatible; MySQL Enterprise & MySQL Commercial)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
singlestore> show databases;
+--------------------+
| Database |
+--------------------+
| cluster |
| information_schema |
| memsql |
+--------------------+
3 rows in set (0.00 sec)
singlestore>
'DBMS' 카테고리의 다른 글
HammerDB를 사용하여 Linux 시스템에서 데이터베이스 성능을 테스트하는 방법 (0) | 2023.12.08 |
---|---|
NoSQL과 Redis 그리고 RDBMS 시장 전망 (0) | 2023.12.08 |
MPP DBMS Greenplum 테스트 (0) | 2023.12.08 |
MPP DBMS Greenplum java jdbc 테스트 (postgresql 호환) (0) | 2023.12.07 |
그린플럼(Greenplum Database)와 고객(Customer) 리스트 (0) | 2023.12.07 |