베니스는 파생된 데이터 스토리지 플랫폼으로 다음과 같은 특징을 제공합니다.
위의 내용으로 인해 Venice는 Feathr와 같은 Feature Store를 지원하는 상태 저장 구성 요소로 특히 적합합니다. AI 애플리케이션은 ML 훈련 작업의 출력을 Venice에 공급한 다음 온라인 추론 워크로드 중에 사용할 데이터를 쿼리합니다.
베니스는 아래 그림과 같이 오프라인, 니어라인, 온라인 세계를 포괄하는 시스템입니다.
베니스 쓰기 경로는 전체 데이터 세트 교체, 기존 데이터 세트에 많은 행 삽입, 일부 행의 일부 열 업데이트라는 세 가지 세부 사항으로 나눌 수 있습니다. 세 가지 세분성 모두 Hadoop과 Samza에서 지원됩니다. 또한 모든 서비스는 온라인 생산자 라이브러리를 사용하여 단일 행 삽입 및 업데이트를 비동기적으로 생성할 수도 있습니다. 아래 표에는 각 플랫폼에서 지원되는 쓰기 작업이 요약되어 있습니다.
하둡 | 삼자 | 모든 서비스 | |
---|---|---|---|
전체 데이터 세트 교환 | ✅ | ✅ | |
기존 데이터 세트에 일부 행 삽입 | ✅ | ✅ | ✅ |
일부 행의 일부 열 업데이트 | ✅ | ✅ | ✅ |
또한 세 가지 쓰기 작업 단위를 모두 단일 데이터세트 내에서 혼합할 수 있습니다. 행 삽입 또는 행 업데이트 외에도 전체 데이터세트 교환을 수행하는 데이터세트를 하이브리드 라고 합니다.
하이브리드 로 저장소를 구성하는 과정에서 중요한 개념은 되감기 시간 입니다. 이는 최근 실시간 쓰기를 얼마나 뒤로 되감고 새로운 세대의 데이터세트에 적용해야 하는지를 정의합니다.
이 메커니즘을 활용하면 일괄 작업 출력 위에 스트림 처리 작업 출력을 오버레이할 수 있습니다. 부분 업데이트를 사용하는 경우 일부 열은 실시간으로, 일부는 일괄 업데이트되도록 할 수 있으며, 이러한 두 열 집합은 원하는 대로 겹치거나 분리될 수 있습니다.
쓰기 컴퓨팅에는 지정된 키와 관련된 값에 대해 수행할 수 있는 두 가지 종류의 작업이 포함됩니다.
주의: 현재 쓰기 컴퓨팅은 활성-수동 복제와 함께만 지원됩니다. 활성-활성 복제에 대한 지원은 개발 중입니다.
Venice는 다음 읽기 API를 지원합니다.
베니스 데이터에 액세스하는 데는 두 가지 주요 모드가 있습니다.
아래 표에는 클라이언트의 특성이 요약되어 있습니다.
네트워크 홉 | 일반적인 지연 시간(p99) | 국가 발자국 | |
---|---|---|---|
씬 클라이언트 | 2 | < 10밀리초 | 무국적 |
빠른 클라이언트 | 1 | < 2밀리초 | 최소(라우팅 메타데이터만 해당) |
다빈치 클라이언트(RAM + SSD) | 0 | < 1밀리초 | 제한된 RAM, SSD의 전체 데이터 세트 |
Da Vinci 클라이언트(올인RAM) | 0 | 10마이크로초 미만 | RAM의 전체 데이터 세트 |
이러한 클라이언트는 모두 위에서 설명한 것과 동일한 읽기 API를 공유합니다. 이를 통해 사용자는 애플리케이션을 다시 작성할 필요 없이 비용/성능 균형을 변경할 수 있습니다.
오픈 소싱 베니스 블로그와 컨퍼런스 토크는 베니스가 지원할 수 있는 사용 사례와 규모에 대한 개요를 얻을 수 있는 좋은 출발점입니다. 더 많은 베니스 게시물, 강연, 팟캐스트를 보려면 자세히 알아보기 페이지를 참조하세요.
자체 Venice 클러스터를 생성하고 데이터 저장소 생성, 일괄 푸시, 증분 푸시 및 단일 가져오기와 같은 일부 기능을 사용해 보려면 Venice 빠른 시작을 참조하세요. 최신 안정 릴리스를 사용하는 것이 좋습니다.
다음을 통해 자유롭게 커뮤니티에 참여해 보세요.
베니스 프로젝트와 커뮤니티의 진행 상황에 대해 자세히 알아보려면 팔로우하세요.