milvus-logo
LFAI
홈페이지
  • 개념

용어

AutoID

AutoID는 기본 필드에 대해 자동 증가를 활성화할지 여부를 결정하는 기본 필드의 속성입니다. AutoID의 값은 타임스탬프를 기반으로 정의됩니다. 자세한 내용은 create_schema를 참조하세요.

자동 색인

Milvus는 경험적 데이터를 기반으로 특정 필드에 가장 적합한 인덱스 유형과 매개변수를 자동으로 결정합니다. 이 기능은 특정 인덱스 매개변수를 제어할 필요가 없는 상황에 이상적입니다. 자세한 내용은 add_index를 참조하세요.

Attu

Attu는 시스템 관리의 복잡성과 비용을 크게 줄여주는 Milvus용 올인원 관리 도구입니다.

버드워처

Birdwatcher는 Milvus용 디버깅 도구로, etcd에 연결하여 Milvus 서버의 상태를 모니터링하고 실시간으로 조정할 수 있습니다. 또한 etcd 파일 백업을 지원하여 개발자의 문제 해결을 돕습니다.

벌크 라이터

벌크 라이터는 Milvus SDK(예: PyMilvus, Java SDK)에서 제공하는 데이터 처리 도구로, 효율적인 가져오기를 위해 원시 데이터 세트를 Milvus와 호환되는 형식으로 변환하도록 설계되었습니다.

대량 삽입

대량삽입은 한 번의 요청으로 여러 파일을 가져올 수 있도록 하여 쓰기 성능을 향상시키고 대용량 데이터 세트의 작업을 최적화하는 API입니다.

Cardinal

Zilliz Cloud에서 개발한 Cardinal은 탁월한 검색 품질과 성능을 제공하는 최첨단 벡터 검색 알고리즘입니다. 혁신적인 설계와 광범위한 최적화를 통해 다양한 K 크기, 높은 필터링, 다양한 데이터 분포 등과 같은 다양한 생산 시나리오를 적응적으로 처리하면서 Knowhere보다 몇 배 더 뛰어난 성능을 발휘합니다.

채널

Milvus는 PC채널과 V채널이라는 두 가지 유형의 채널을 활용합니다. 각 PC채널은 로그 저장을 위한 주제에 해당하며, 각 V채널은 컬렉션의 샤드에 해당합니다.

컬렉션

Milvus에서 컬렉션은 관계형 데이터베이스 관리 시스템(RDBMS)의 테이블에 해당합니다. 컬렉션은 엔티티를 저장하고 관리하는 데 사용되는 주요 논리적 객체입니다. 자세한 내용은 컬렉션 관리를 참조하세요.

종속성

종속성이란 다른 프로그램이 작동하기 위해 의존하는 프로그램입니다. Milvus의 종속성에는 etcd(메타 데이터 저장), MinIO 또는 S3(개체 저장소), Pulsar(스냅샷 로그 관리) 등이 있습니다. 자세한 내용은 종속성 관리를 참조하세요.

동적 스키마

동적 스키마를 사용하면 기존 스키마를 수정하지 않고도 새 필드가 있는 엔티티를 컬렉션에 삽입할 수 있습니다. 즉, 컬렉션의 전체 스키마를 몰라도 데이터를 삽입할 수 있으며 아직 정의되지 않은 필드를 포함할 수 있습니다. 컬렉션을 만들 때 동적 필드를 활성화하여 이 스키마 없는 기능을 활성화할 수 있습니다. 자세한 내용은 동적 필드 활성화를 참조하세요.

임베딩

Milvus는 널리 사용되는 임베딩 제공업체와 함께 작동하는 내장 임베딩 기능을 제공합니다. Milvus에서 컬렉션을 만들기 전에 이러한 함수를 사용하여 데이터 세트에 대한 임베딩을 생성하여 데이터 및 벡터 검색 준비 프로세스를 간소화할 수 있습니다. 실제로 임베딩을 생성하려면 PyMilvus의 모델을 사용하여 텍스트 임베딩 생성하기를 참조하세요.

엔티티

엔티티는 실제 객체를 나타내는 필드 그룹으로 구성됩니다. Milvus의 각 엔티티는 고유한 기본 키로 표시됩니다.

기본 키를 사용자 지정할 수 있습니다. 수동으로 구성하지 않으면 Milvus가 자동으로 기본 키를 엔티티에 할당합니다. 기본 키를 사용자 지정하도록 선택하는 경우 현재 Milvus는 기본 키 중복 제거를 지원하지 않는다는 점에 유의하세요. 따라서 동일한 컬렉션에 중복된 기본 키가 있을 수 있습니다. 자세한 내용은 엔티티 삽입을 참조하세요.

필드

Milvus 컬렉션의 필드는 RDBMS의 테이블 열에 해당합니다. 필드는 구조화된 데이터(예: 숫자, 문자열)를 위한 스칼라 필드 또는 벡터를 포함하는 벡터 필드일 수 있습니다.

필터

Milvus는 술어를 사용한 검색을 통해 스칼라 필터링을 지원하므로 쿼리 및 검색 내에서 필터 조건을 정의하여 결과를 구체화할 수 있습니다.

필터링된 검색은 벡터 검색에 스칼라 필터를 적용하여 특정 기준에 따라 검색 결과를 세분화할 수 있도록 합니다. 자세한 내용은 필터링된 검색을 참조하세요.

하이브리드 검색은 Milvus 2.4.0부터 하이브리드 검색을 위한 API입니다. 여러 벡터 필드를 검색하고 이를 융합할 수 있습니다. 스칼라 필드 필터링과 결합된 벡터 검색의 경우 "필터링된 검색"이라고 합니다. 자세한 내용은 하이브리드 검색을 참조하세요.

색인

벡터 인덱스는 원시 데이터에서 파생된 재구성된 데이터 구조로, 벡터 유사도 검색 프로세스를 크게 가속화할 수 있습니다. Milvus는 벡터 필드와 스칼라 필드 모두에 대해 광범위한 인덱스 유형을 지원합니다. 자세한 내용은 벡터 인덱스 유형을 참조하세요.

카프카-밀버스 커넥터

Kafka-Milvus 커넥터는 Milvus용 Kafka 싱크 커넥터를 말합니다. 이 커넥터를 사용하면 Kafka에서 Milvus로 벡터 데이터를 스트리밍할 수 있습니다.

Knowhere

Knowhere는 Milvus의 핵심 벡터 실행 엔진으로, Faiss, Hnswlib, Annoy 등 여러 벡터 유사도 검색 라이브러리가 통합되어 있습니다. 또한 Knowhere는 이기종 컴퓨팅을 지원하도록 설계되었습니다. 인덱스 구축과 검색 요청을 실행할 하드웨어(CPU 또는 GPU)를 제어합니다. 이것이 바로 작업을 실행할 위치를 파악한다는 의미에서 Knowhere라는 이름이 붙여진 이유입니다.

로그 브로커

로그 브로커는 재생을 지원하는 게시-구독 시스템입니다. 데이터 지속성 스트리밍, 안정적인 비동기 쿼리 실행, 이벤트 알림, 쿼리 결과 반환을 담당합니다. 또한 워커 노드가 시스템 장애로부터 복구될 때 증분 데이터의 무결성을 보장합니다.

로그 스냅샷

로그 스냅샷은 Milvus의 데이터에 대한 업데이트 및 변경 사항을 기록하고 처리하는 세그먼트의 작은 단위인 바이너리 로그입니다. 세그먼트의 데이터는 여러 빈로그에 유지됩니다. Milvus에는 세 가지 유형의 빈로그가 있습니다: InsertBinlog, DeleteBinlog, DDLBinlog. 자세한 내용은 메타 저장소를 참조하세요.

로그 구독자

로그 구독자는 로그 시퀀스를 구독하여 로컬 데이터를 업데이트하고 읽기 전용 사본의 형태로 서비스를 제공합니다.

메시지 저장소

메시지 저장소는 Milvus의 로그 저장소 엔진입니다. Milvus는 메시지 저장소로 Kafka 또는 Pulsa를 지원합니다. 자세한 내용은 메시지 저장소 구성을 참조하세요.

메트릭 유형

유사도 메트릭 유형은 벡터 간의 유사도를 측정하는 데 사용됩니다. 현재 Milvus는 유클리드 거리(L2), 내적 곱(IP), 코사인 유사도(COSINE) 및 이진 메트릭 유형을 지원합니다. 시나리오에 따라 가장 적합한 메트릭 유형을 선택할 수 있습니다. 자세한 내용은 유사성 메트릭을 참조하세요.

Mmap

메모리 매핑 파일을 사용하면 파일 콘텐츠를 메모리에 직접 매핑하여 데이터를 효율적으로 처리할 수 있습니다. 메모리가 제한되어 있어 모든 데이터를 로드할 수 없는 경우에 특히 유용합니다. 이 기법을 사용하면 데이터 용량을 늘리고 성능을 어느 정도 유지할 수 있습니다. 그러나 데이터가 메모리 용량을 크게 초과하는 경우 검색 및 쿼리 속도가 크게 저하될 수 있습니다. 자세한 내용은 MMap 지원 데이터 저장소를 참조하세요.

Milvus 백업

Milvus 백업은 데이터 손실 이벤트 후 원본을 복원하는 데 사용할 수 있는 데이터 사본을 만드는 도구입니다.

Milvus CDC

Milvus CDC (변경 데이터 캡처)는 Milvus 인스턴스에서 증분 데이터를 캡처하고 동기화할 수 있는 사용자 친화적인 도구입니다. 소스 인스턴스와 대상 인스턴스 간에 데이터를 원활하게 전송하여 비즈니스 데이터의 안정성을 보장하고 증분 백업 및 재해 복구를 쉽게 수행할 수 있습니다.

Milvus CLI

Milvus CLI(명령줄 인터페이스 )는 데이터베이스 연결, 데이터 작업, 데이터 가져오기 및 내보내기를 지원하는 명령줄 도구입니다. Milvus Python SDK를 기반으로 하며, 대화형 명령줄 프롬프트를 사용하여 터미널을 통해 명령을 실행할 수 있습니다.

Milvus 마이그레이션

Milvus 마이그레이션은 다양한 데이터 소스에서 Milvus 2.x로 데이터를 쉽게 마이그레이션할 수 있도록 설계된 오픈 소스 도구입니다.

Milvus 클러스터

Milvus의 클러스터 배포에서는 고가용성과 간편한 확장성을 달성하기 위해 노드 그룹에 의해 서비스가 제공됩니다.

Milvus 독립형

Milvus의 독립형 배포에서는 데이터 삽입, 인덱스 구축, 벡터 유사도 검색 등 모든 작업이 하나의 프로세스로 완료됩니다.

멀티 벡터

Milvus는 2.4.0부터 하나의 컬렉션에 여러 개의 벡터 필드를 지원합니다. 자세한 내용은 하이브리드 검색을 참조하세요.

파티션

파티션은 컬렉션을 분할하는 것을 말합니다. Milvus는 컬렉션 데이터를 물리적 스토리지의 여러 부분으로 분할하는 기능을 지원합니다. 이 프로세스를 파티셔닝이라고 하며, 각 파티션은 여러 세그먼트를 포함할 수 있습니다. 자세한 내용은 파티션 관리를 참조하세요.

파티션 키

필드의 파티션 키 속성을 사용하면 파티션 키 값에 따라 엔티티를 서로 다른 파티션으로 분리할 수 있습니다. 이 그룹화를 통해 동일한 키 값을 공유하는 엔터티가 함께 저장되므로 파티션 키 필드로 필터링된 쿼리 중에 시스템이 관련 없는 파티션을 우회할 수 있어 검색 작업 속도가 빨라집니다. 자세한 내용은 파티션 키 사용을 참조하세요.

PC채널

PC채널은 물리적 채널을 의미합니다. 각 PC채널은 로그 저장소의 주제에 해당합니다. 기본적으로 Milvus 클러스터가 시작될 때 데이터 삽입, 삭제, 업데이트를 기록하는 로그를 저장하기 위해 16개의 PC채널 그룹이 할당됩니다. 자세한 내용은 메시지 채널 관련 구성을 참조하세요.

PyMilvus

PyMilvus는 Milvus의 Python SDK입니다. 소스 코드는 오픈 소스이며 GitHub에서 호스팅됩니다. MilvusClient(새 버전의 Python SDK) 또는 오리지널 ORM 모듈을 선택하여 Milvus와 유연하게 대화할 수 있습니다.

쿼리

Query는 지정된 부울 표현식을 필터로 사용하여 스칼라 필터링을 수행하는 API입니다. 자세한 내용은 가져오기 및 스칼라 쿼리를 참조하세요.

범위 검색을 사용하면 검색 벡터로부터 지정된 거리 내에 있는 벡터를 찾을 수 있습니다. 자세한 내용은 범위 검색을 참조하세요.

스키마

스키마는 데이터 유형과 데이터 속성을 정의하는 메타 정보입니다. 각 컬렉션에는 컬렉션의 모든 필드, 자동 ID(기본 키) 할당 사용 여부 및 컬렉션 설명을 정의하는 고유한 컬렉션 스키마가 있습니다. 필드 스키마는 필드의 이름, 데이터 유형 및 기타 속성을 정의하는 컬렉션 스키마에도 포함됩니다. 자세한 내용은 스키마 관리를 참조하세요.

검색은 벡터 유사도 검색을 수행하는 작업을 수행하는 API로, 실행을 위해 벡터 데이터가 필요합니다. 자세한 내용은 단일 벡터 검색을 참조하세요.

세그먼트

세그먼트는 삽입된 데이터를 저장하기 위해 자동으로 생성되는 데이터 파일입니다. 컬렉션에는 여러 세그먼트가 포함될 수 있으며, 각 세그먼트에는 수많은 엔티티가 포함될 수 있습니다. 벡터 유사도 검색 중에 Milvus는 각 세그먼트를 검사하여 검색 결과를 컴파일합니다.

세그먼트에는 성장하는 세그먼트와 봉인된 세그먼트의 두 가지 유형이 있습니다. 증가하는 세그먼트는 특정 임계값이나 시간 제한에 도달할 때까지 계속해서 새로운 데이터를 수집하고, 그 이후에는 봉인됩니다. 일단 봉인된 세그먼트는 더 이상 새 데이터를 받지 않고 오브젝트 스토리지로 전송됩니다. 한편, 들어오는 데이터는 새로 생성되는 세그먼트로 라우팅됩니다. 성장 중인 세그먼트에서 봉인된 세그먼트로의 전환은 미리 정의된 엔티티 제한에 도달하거나 성장 상태의 최대 허용 기간을 초과하면 트리거됩니다. 자세한 내용은 디자인 세부 정보를 참조하세요.

스파크-밀버스 커넥터

Spark-Milvus 커넥터는 Apache Spark와 Milvus 간의 원활한 통합을 제공하여 Apache Spark의 데이터 처리 및 머신 러닝(ML) 기능과 Milvus의 벡터 데이터 저장 및 검색 기능을 결합합니다.

Shard

Milvus는 기본 키의 해싱을 기반으로 구성된 샤드를 사용하여 여러 노드에 걸쳐 쓰기 작업을 분산함으로써 데이터 쓰기 성능을 향상시킵니다. 이는 클러스터의 병렬 컴퓨팅 기능을 활용합니다.

파티셔닝은 파티션 이름을 지정하여 읽기 부하를 줄이는 반면, 샤딩은 여러 서버에 쓰기 부하를 분산시킵니다.

스파스 벡터

희소 벡터는 대부분의 요소가 0이고 0이 아닌 요소 하나만 특정 단어의 존재를 나타내는 벡터 임베딩을 사용하여 단어 또는 구문을 나타냅니다. SPLADEv2와 같은 스파스 벡터 모델은 도메인 외 지식 검색, 키워드 인식 및 해석 가능성에서 밀도 모델보다 성능이 뛰어납니다. 자세한 내용은 스파스 벡터를 참조하세요.

비정형 데이터

이미지, 비디오, 오디오, 자연어 등 비정형 데이터는 미리 정의된 모델이나 조직 방식을 따르지 않는 정보입니다. 이 데이터 유형은 전 세계 데이터의 약 80%를 차지하며, 다양한 인공지능(AI) 및 머신러닝 모델을 사용하여 벡터로 변환할 수 있습니다.

VChannel

V채널은 논리적 채널을 의미합니다. 각 V채널은 컬렉션의 샤드를 나타냅니다. 각 컬렉션에는 데이터 삽입, 삭제, 업데이트를 기록하기 위한 V채널 그룹이 할당됩니다. V채널은 논리적으로 분리되어 있지만 물리적으로 리소스를 공유합니다.

벡터

임베딩 벡터는 이메일, IoT 센서 데이터, Instagram 사진, 단백질 구조 등과 같은 비정형 데이터의 기능 추상화입니다. 수학적으로 임베딩 벡터는 부동소수점 숫자 또는 바이너리의 배열입니다. 최신 임베딩 기술은 비정형 데이터를 임베딩 벡터로 변환하는 데 사용됩니다. 밀버스는 2.4.0 버전부터 밀도 벡터와 스파스 벡터를 모두 지원합니다.

질리즈 클라우드

더 많은 엔터프라이즈 기능과 고도로 최적화된 성능을 갖춘 Zilliz Cloud의 완전 관리형 Milvus.