모든 개발자가 강력하고 친숙한 SQL을 사용하여 프로덕션급 GenAI 애플리케이션을 구축할 수 있도록 지원하세요.
MyScaleDB는 개발자가 익숙한 SQL을 사용하여 프로덕션에 즉시 사용 가능하고 확장 가능한 AI 애플리케이션을 구축할 수 있게 해주는 SQL 벡터 데이터베이스입니다. ClickHouse를 기반으로 구축되었으며 AI 애플리케이션 및 솔루션에 최적화되어 개발자가 대용량 데이터를 효과적으로 관리하고 처리할 수 있습니다.
MyScaleDB 사용의 주요 이점은 다음과 같습니다.
SQL과 완전히 호환 가능
빠르고 강력하며 효율적인 벡터 검색, 필터링된 검색 및 SQL 벡터 조인 쿼리입니다.
벡터 관련 기능과 함께 SQL을 사용하여 MyScaleDB와 상호 작용합니다. 복잡하고 새로운 도구나 프레임워크를 배울 필요가 없습니다. 알고 있고 좋아하는 것을 고수하세요.
AI 애플리케이션을 위한 프로덕션 준비 완료
구조화된 데이터, 텍스트, 벡터, JSON, 지리공간, 시계열 데이터 등을 관리하고 처리하기 위한 오랜 테스트를 거친 통합 플랫폼입니다. 지원되는 데이터 유형 및 함수 보기
벡터를 풍부한 메타데이터와 결합하고 전체 텍스트 검색을 수행하고 모든 비율에서 고정밀, 고효율 필터링 검색을 수행하여 RAG 정확도가 향상되었습니다 1 .
비교할 수 없는 성능과 확장성
MyScaleDB는 초고속 벡터 작업을 위해 최첨단 OLAP 데이터베이스 아키텍처와 고급 벡터 알고리즘을 활용합니다.
데이터가 증가함에 따라 애플리케이션을 쉽고 비용 효율적으로 확장하세요.
MyScale Cloud는 수십억 규모의 데이터에 대한 프리미엄 기능을 갖춘 완전 관리형 MyScaleDB를 제공합니다 2 . 맞춤형 API를 사용하는 특수 벡터 데이터베이스에 비해 MyScale은 더 강력하고 성능이 뛰어나며 비용 효율적이면서도 사용이 간편합니다. 이는 대규모 프로그래머 커뮤니티에 적합합니다. 또한 pgVector가 포함된 PostgreSQL 또는 벡터 확장이 포함된 ElasticSearch와 같은 통합 벡터 데이터베이스와 비교할 때 MyScale은 리소스를 더 적게 소비하고 필터링된 검색과 같은 구조화된 벡터 결합 쿼리에 대해 더 나은 정확성과 속도를 달성합니다.
SQL과 완전히 호환 가능
통합된 구조화되고 벡터화된 데이터 관리
10억 단위 벡터에 대한 밀리초 검색
신뢰성이 높고 선형적으로 확장 가능
강력한 텍스트 검색 및 텍스트/벡터 하이브리드 검색 기능
복잡한 SQL 벡터 쿼리
MyScale Telemetry를 통한 LLM 관찰 가능성
MyScale은 SQL 데이터베이스/데이터 웨어하우스, 벡터 데이터베이스, 전체 텍스트 검색 엔진 등 세 가지 시스템을 매우 효율적인 방식으로 하나의 시스템으로 통합합니다. 인프라 및 유지 관리 비용을 절약할 뿐만 아니라 공동 데이터 쿼리 및 분석도 가능합니다.
MyScale의 고유한 기능과 장점에 대한 자세한 내용은 설명서와 블로그를 참조하세요. 당사의 오픈 소스 벤치마크는 다른 벡터 데이터베이스 제품과의 자세한 비교를 제공합니다.
ClickHouse는 고급 압축, 스킵 인덱싱 및 SIMD 처리 기능을 갖춘 열형 스토리지 덕분에 빅 데이터 처리 및 분석에 탁월한 인기 있는 오픈 소스 분석 데이터베이스입니다. 트랜잭션 처리를 위해 행 스토리지와 주요 최적화 기능을 사용하는 PostgreSQL 및 MySQL과 같은 트랜잭션 데이터베이스와 달리 ClickHouse는 분석 및 데이터 검색 속도가 훨씬 빠릅니다.
구조화된 검색과 벡터 검색을 결합하는 주요 작업 중 하나는 필터링된 검색으로, 먼저 다른 속성을 기준으로 필터링한 다음 나머지 데이터에 대해 벡터 검색을 수행합니다. 필터링된 검색에서 높은 정확성과 고성능을 보장하려면 열 기반 스토리지와 사전 필터링이 중요합니다. 이것이 바로 우리가 ClickHouse 위에 MyScaleDB를 구축하기로 선택한 이유입니다.
빠르고 비용 효율적인 SQL 벡터 쿼리를 보장하기 위해 ClickHouse의 실행 및 저장 엔진을 여러 가지 방법으로 수정했지만 일반 SQL 처리와 관련된 많은 기능(#37893, #38048, #37859, #56728, #58223)이 변경되었습니다. ClickHouse 오픈 소스 커뮤니티에 다시 기여했습니다.
MyScaleDB를 사용하는 가장 간단한 방법은 MyScale Cloud 서비스에 인스턴스를 생성하는 것입니다. 5M 768D 벡터를 지원하는 무료 포드에서 시작할 수 있습니다. 자세한 지침은 여기에서 가입하고 MyScaleDB QuickStart를 확인하세요.
MyScaleDB 인스턴스를 신속하게 시작하고 실행하려면 최신 Docker 이미지를 가져와 실행하기만 하면 됩니다.
docker run --name myscaledb --net=host myscale/myscaledb:1.8.0
참고: Myscale의 기본 구성은 localhost IP 액세스만 허용합니다. docker run 시작 방법의 경우 현재 노드에서 docker 모드로 배포된 서비스에 액세스하려면
--net=host
지정해야 합니다.
그러면 기본 사용자 default
과 비밀번호 없이 MyScaleDB 인스턴스가 시작됩니다. 그런 다음 clickhouse-client
사용하여 데이터베이스에 연결할 수 있습니다.
docker exec -it myscaledb clickhouse-client
다음 권장 디렉터리 구조와 docker-compose.yaml
파일 위치를 사용하세요.
> 트리 myscaledb myscaledb ├── docker-compose.yaml └──권 └── 구성 └── 사용자.d └── custom_users_config.xml 디렉터리 3개, 파일 2개
배포 구성을 정의합니다. docker-compose.yaml
파일에서 다음 구성으로 시작하는 것이 좋습니다. 이는 특정 요구 사항에 따라 조정할 수 있습니다.
버전: '3.7'서비스: myscaledb:이미지: myscale/myscaledb:1.8.0tty: trueports: - '8123:8123' - '9000:9000' - '8998:8998' - '9363:9363' - '9116:9116'networks: myscaledb_network:ipv4_address: 10.0.0.2volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/data:/var/lib/clickhouse - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/log:/var/log/clickhouse-server - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xmldeploy: 리소스:한계: CPU: "16.00" 메모리: 32Gbnetworks: myscaledb_network: 드라이버: bridgeipam: 드라이버: 기본 구성: - 서브넷: 10.0.0.0/24
custom_users_config.xml
:
<클릭하우스> <사용자> <기본값> <비밀번호></비밀번호> <네트워크> <ip>::1</ip> <ip>127.0.0.1</ip> <ip>10.0.0.0/24</ip> </네트워크> <프로필>기본</프로필> <quota>기본값</quota> <access_management>1</access_management> </default> </사용자> </클릭하우스>
참고: custom_users_config 구성을 사용하면 기본 사용자를 사용하여 docker compose를 사용하여 데이터베이스 서비스가 배포된 노드의 데이터베이스에 액세스할 수 있습니다. 다른 노드의 데이터베이스 서비스에 접속하고 싶다면, 다른 IP를 통해 접속 가능한 사용자를 생성하는 것이 좋습니다. 자세한 설정은 MyScaleDB 사용자 생성을 참조하세요. MyScaleDB의 구성 파일을 사용자 정의할 수도 있습니다.
myscaledb
컨테이너의/etc/clickhouse-server
디렉터리를 로컬 드라이브로 복사하고, 구성을 수정하고,docker-compose.yaml
파일에 디렉터리 매핑을 추가하여 구성을 적용합니다.- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config:/etc/clickhouse-server
실행하려면 다음 명령을 사용하십시오.
CD 마이스케일DB 도커 구성 -d
다음 명령을 사용하여 MyScaleDB 명령줄 인터페이스에 액세스합니다.
docker exec -it myscaledb-myscaledb-1 clickhouse-client
이제 SQL 문을 실행할 수 있습니다. SQL 쿼리 실행을 참조하세요.
지원되는 빌드 환경은 LLVM 15.0.7이 포함된 Ubuntu 22.04입니다.
스크립트 폴더를 참조하세요.
사용 예:
LLVM_VERSION=15 sudo -E bash scripts/install_deps.sh sudo apt-get -y 설치 Rustc 화물 Yasm 배쉬 스크립트/config_on_linux.sh 배쉬 스크립트/build_on_linux.sh
결과 실행 파일은 MyScaleDB/build/programs/*
에 있습니다.
벡터 인덱스가 있는 SQL 테이블을 생성하고 벡터 검색을 수행하는 방법은 벡터 검색 문서를 참조하세요. 오픈 소스 MyScaleDB에서 벡터 인덱스를 생성할 때 TYPE SCANN
지정하는 것이 좋습니다.
-- 길이가 384인 body_Vector를 사용하여 테이블을 생성합니다.CREATE TABLE default.wiki_abstract (`id` UInt64, `body` String, `title` String, `url` String, `body_Vector` Array(Float32),CONSTRAINT check_length CHECK 길이(body_Vector) = 384) 엔진 = MergeTreeORDER BY ID;
-- S3INSERT INTO default.wiki_abstract SELECT * FROM s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/wiki_abstract_with_Vector.parquet','Parquet');
-- body_VectorALTER TABLE default.wiki_abstract ADD VECTOR INDEX vec_idx body_Vector TYPE SCANN('metric_type=Cosine')에서 코사인 메트릭을 사용하여 SCANN 벡터 인덱스를 구축합니다.-- `벡터_인덱스` 테이블에서 인덱스 구축 진행 상황을 쿼리합니다.-- 인덱스 진행 상황은 `Built`가 됩니다. SELECT * FROM system.Vector_indices;
-- 벡터 검색을 수행하여 상위 5개 결과를 반환합니다.SELECT ID, 제목, 거리(바디_벡터, [-0.052, -0.0146, -0.0677, -0.0256, -0.0395, -0.0381, -0.025, 0.0911, -0.0429, -0.0592, 0.0017, -0.0358, -0.0464, -0.0189, -0.0192, 0.0544, -0.0022, -0.0292, -0.0474, -0.0286, 0.0746, -0.013, -0.0217, -0.0246, -0.0169, 0.0495, -0.0947, 0.0139, 0.0445, -0.0262, -0.0049, 0.0506, 0.004, 0.0276, 0.0063, -0.0643, 0.0059, -0.0229, -0.0315, 0.0549, 0.1427, 0.0079, 0.011, -0.0036, -0.0617, 0.0155, -0.0607, 0.0258, -0.0205, 0.0008, -0.0547, 0.0329, -0.0522, -0.0347, 0.0921, 0.0139, -0.013, 0.0716, -0.0165, 0.0257, -0.0071, 0.0084, -0.0653, 0.0091, 0.0544, -0.0192, -0.0169, -0.0017, -0.0304, 0.0427, -0.0389, 0.0921, -0.0622, -0.0196, 0.0025, 0.0214, 0.0259, -0.0493, -0.0211, -0.119, -0.0736, -0.1545, -0.0578, -0.0145, 0.0138, 0.0478, -0.0451, -0.0332, 0.0799, 0.0001, -0.0737, 0.0427, 0.0517, 0.0102, 0.0386, 0.0233, 0.0425, -0.0279, -0.0529, 0.0744, -0.0305, -0.026, 0.1229, -0.002, 0.0038, -0.0491, 0.0352, 0.0027, -0.056, -0.1044, 0.123, -0.0184, 0.1148, -0.0189, 0.0412, -0.0347, -0.0569, -0.0119, 0.0098, -0.0016, 0.0451, 0.0273, 0.0436, 0.0082, 0.0166, -0.0989, 0.0747, -0.0, 0.0306, -0.0717, -0.007, 0.0665, 0.0452, 0.0123, -0.0238, 0.0512, -0.0116, 0.0517, 0.0288, -0.0013, 0.0176, 0.0762, 0.1284, -0.031, 0.0891, -0.0286, 0.0132, 0.003, 0.0433, 0.0102, -0.0209, -0.0459, -0.0312, -0.0387, 0.0201, -0.027, 0.0243, 0.0713, 0.0359, -0.0674, -0.0747, -0.0147, 0.0489, -0.0092, -0.018, 0.0236, 0.0372, -0.0071, -0.0513, -0.0396, -0.0316, -0.0297, -0.0385, -0.062, 0.0465, 0.0539, -0.033, 0.0643, 0.061, 0.0062, 0.0245, 0.0868, 0.0523, -0.0253, 0.0157, 0.0266, 0.0124, 0.1382, -0.0107, 0.0835, -0.1057, -0.0188, -0.0786, 0.057, 0.0707, -0.0185, 0.0708, 0.0189, -0.0374, -0.0484, 0.0089, 0.0247, 0.0255, -0.0118, 0.0739, 0.0114, -0.0448, -0.016, -0.0836, 0.0107, 0.0067, -0.0535, -0.0186, -0.0042, 0.0582, -0.0731, -0.0593, 0.0299, 0.0004, -0.0299, 0.0128, -0.0549, 0.0493, 0.0, -0.0419, 0.0549, -0.0315, 0.1012, 0.0459, -0.0628, 0.0417, -0.0153, 0.0471, -0.0301, -0.0615, 0.0137, -0.0219, 0.0735, 0.083, 0.0114, -0.0326, -0.0272, 0.0642, -0.0203, 0.0557, -0.0579, 0.0883, 0.0719, 0.0007, 0.0598, -0.0431, -0.0189, -0.0593, -0.0334, 0.02, -0.0371, -0.0441, 0.0407, -0.0805, 0.0058, 0.1039, 0.0534, 0.0495, -0.0325, 0.0782, -0.0403, 0.0108, -0.0068, -0.0525, 0.0801, 0.0256, -0.0183, -0.0619, -0.0063, -0.0605, 0.0377, -0.0281, -0.0097, -0.0029, -0.106, 0.0465, -0.0033, -0.0308, 0.0357, 0.0156, -0.0406, -0.0308, 0.0013, 0.0458, 0.0231, 0.0207, -0.0828, -0.0573, 0.0298, -0.0381, 0.0935, -0.0498, -0.0979, -0.1452, 0.0835, -0.0973, -0.0172, 0.0003, 0.09, -0.0931, -0.0252, 0.008, -0.0441, -0.0938, -0.0021, 0.0885, 0.0088, 0.0034, -0.0049, 0.0217, 0.0584, -0.012, 0.059, 0.0146, -0.0, -0.0045, 0.0663, 0.0017, 0.0015, 0.0569, -0.0089, -0.0232, 0.0065, 0.0204, -0.0253, 0.1119, -0.036, 0.0125, 0.0531, 0.0584, -0.0101, -0.0593, -0.0577, -0.0656, -0.0396, 0.0525, -0.006, -0.0149, 0.003, -0.1009, -0.0281, 0.0311, -0.0088, 0.0441, -0.0056, 0.0715, 0.051, 0.0219, -0.0028, 0.0294, -0.0969, -0.0852, 0.0304, 0.0374, 0.1078, -0.0559, 0.0805, -0.0464, 0.0369, 0.0874, -0.0251, 0.0075, -0.0502, -0.0181, -0.1059, 0.0111, 0.0894, 0.0021, 0.0838, 0.0497, -0.0183, 0.0246, -0.004, -0.0828, 0.06, -0.1161, -0.0367, 0.0475, 0.0317]) AS distanceFROM default.wiki_abstractORDER BY distance ASCLIMIT 5;
우리는 AI 산업의 끊임없이 변화하는 요구 사항을 충족하기 위해 MyScaleDB를 지속적으로 개선하고 발전시키기 위해 최선을 다하고 있습니다. 이 흥미진진한 여정에 동참하여 AI 데이터 관리의 혁명에 동참해 보세요!
불화
지원하다
최신 MyScaleDB 뉴스 또는 업데이트 받기
트위터에서 @MyScaleDB를 팔로우하세요.
LinkedIn에서 @MyScale을 팔로우하세요.
MyScale 블로그 읽기
역색인 및 고성능 키워드/벡터 하이브리드 검색(1.5부터 지원)
더 많은 스토리지 엔진 지원(예: ReplacingMergeTree
)(1.6부터 지원)
MyScaleDB 및 MyScale Telemetry를 통한 LLM 관찰성
데이터 중심 LLM
MyScaleDB를 사용한 자동 데이터 과학
MyScaleDB는 Apache 라이선스 버전 2.0에 따라 라이선스가 부여됩니다. 라이센스 파일의 복사본을 봅니다.
MyScaleDB를 개발한 오픈 소스 프로젝트에 특별한 감사를 드립니다.
ClickHouse - 빅데이터를 위한 무료 분석 DBMS입니다.
Faiss - Meta's Fundamental AI Research의 효율적인 유사성 검색 및 밀집 벡터 클러스터링을 위한 라이브러리입니다.
hnswlib - 가장 가까운 이웃을 빠르게 근사화하기 위한 헤더 전용 C++/python 라이브러리입니다.
ScaNN - Google Research의 확장 가능한 Nearest Neighbors 라이브러리입니다.
Tantivy - Apache Lucene에서 영감을 받고 Rust로 작성된 전체 텍스트 검색 엔진 라이브러리입니다.
여기에서 RAG 정확성을 향상시키는 데 메타데이터 필터링이 중요한 이유를 확인하세요. ↩
MyScale Cloud를 통해 제공되는 MSTG(Multi-scale Tree Graph) 알고리즘은 디스크 기반 스토리지로 높은 데이터 밀도를 구현하고, 수십억 규모의 벡터 데이터에 대한 인덱싱 및 검색 성능을 향상시킵니다. ↩