화웨이의 자체 시계열 데이터베이스가 이제 오픈소스로 공개되었습니다. 어떻게 작동하는지 살펴볼까요?

시계열 데이터베이스(TSDB)의 사용은 수십 년 동안 다양한 산업, 특히 금융 및 산업 제어 시스템에서 일반적이었습니다. 그러나 사물인터넷(IoT)의 등장으로 시계열 데이터(줄여서 시계열 데이터)의 양이 급증하게 되었고, 이로 인해 데이터베이스 성능 및 스토리지 비용에 대한 요구 사항이 높아지면서 전용 데이터의 필요성이 대두되었습니다. 시계열 데이터베이스.

오래된 아키텍처와 레거시 시계열 솔루션의 제한된 확장성 문제에 직면하여 분산 처리 및 수평적 확장은 물론 클라우드 또는 온프레미스에서의 유연한 배포를 지원하는 최신 아키텍처를 채택한 차세대 시계열 데이터베이스가 등장했습니다.

2022년 말, 또 다른 블록버스터 제품이 오픈 소스 시계열 데이터베이스 트랙에 합류하여 단 1년 만에 60개 이상의 회사에서 테스트 및 생산되었으며, 국내외 주요 대학 및 회사에서 70명 이상의 기여자를 유치했습니다.— openGemini, Huawei의 오픈 소스 분산 시계열 데이터베이스는 주로 대규모 시계열 데이터의 저장 및 분석에 중점을 두고 있습니다. 기술 혁신을 통해 비즈니스 시스템 아키텍처를 단순화하고 대규모 시계열 데이터의 저장 비용을 절감하며 저장 및 분석 효율성을 향상시킵니다. 시계열 데이터.

오늘은 openGemini 커뮤니티의 리더인 Xiang Yu 님을 모시고 오픈소스 이야기를 들어보았습니다~

 

01 내부 요구에서 출발하여 점차 자기 연구로 나아간다.

openGemini의 연구 및 개발은 원래 Huawei 자체의 요구에서 시작되었습니다.

2019년에는 화웨이 클라우드가 구축되면서 광저우, 상하이, 베이징, 구이저우, 홍콩에 데이터 센터가 구축되었으며, 260개 이상의 클라우드 서비스가 출시되었으며, 매일 평균 수 TB의 모니터링 지표 데이터가 수집됩니다. .원래의 빅데이터 솔루션은 점차 압도되고 있습니다. 데이터의 양이 많아질수록 쿼리 효율성은 낮아지고, 데이터 저장 비용은 지속적으로 상승하고 있으며, 고성능, 고확장성을 갖춘 시계열 전용 데이터베이스의 필요성이 절실히 요구되고 있습니다.

당시에는 수요 증가를 따라잡을 수 있는 유용한 시계열 데이터베이스 제품이 없었습니다. InfluxDB는 아직 독립형 버전이고, 국내 Apache IoTDB와 TDengine은 생산 요구 사항을 충족시키기에는 거리가 멀습니다. 따라서 Huawei는 자체 데이터베이스를 구축하고 데이터 처리를 최적화하며 현재 매우 중요한 비즈니스 문제를 해결하기로 결정했습니다. 이러한 맥락에서 openGemini가 탄생했습니다.

Xiang Yu에 따르면 기술 선택 측면에서 처음에는 오픈 소스 InfluxDB를 기반으로 클러스터 변환을 수행했습니다. 그러나 지표 개수가 늘어나고 수집 빈도가 늘어나면서 일일 데이터량 증가량은 수십 테라바이트에 이르렀다. 이때 InfluxDB 자체 아키텍처의 결함이 명백해지기 시작하여 시스템의 성능과 안정성에 영향을 미쳤습니다. 따라서 그들은 아키텍처를 재구성하기로 결정하고 openGemini 커널의 자체 개발을 시작했습니다.

 

02 독특한 개성, 선도적인 성능

openGemini는 창립 이래 Huawei의 자체 비즈니스 요구 사항과 밀접하게 연결되어 있으므로 모든 디자인에는 실용적인 고려 사항이 가득합니다. 특히 openGemini는 9가지 주요 "성격" 측면에서 다른 시계열 데이터베이스와 다릅니다.

성능우위 : openGemini의 차별화된 경쟁력 중 가장 중요한 것은 고성능입니다. 대용량 데이터 시나리오에서 openGemini는 오픈 소스 InfluxDB에 비해 단순 쿼리 시나리오는 2배 이상, 중간 쿼리 시나리오는 5배 이상, 복잡한 쿼리 시나리오는 10배 이상 향상되었습니다. 다른 유사한 오픈 소스 제품과 비교하여 openGemini는 또한 명백한 성능 이점을 가지고 있습니다.

공식적으로 발표된 독립 실행형 쓰기 성능은 다음과 같습니다(테스트 도구는 TSBS입니다. 관련 테스트 세부 사항은 openGemini 공식 웹사이트 문서를 참조하세요):

공식적으로 발표된 DevOps 시나리오의 단일 머신 쿼리 성능 비교(평균 대기 시간, ms):

IoT 시나리오(평균 지연, ms)에서 공식적으로 발표된 단일 머신 쿼리 성능 비교:

또한 openGemini는 더욱 차별화된 경쟁력을 구축하기 위해 데이터 저장 및 데이터 분석 분야의 실용적인 기능을 일련으로 출시했습니다.

독특한 분산 아키텍처 : openGemini는 독립형 클러스터와 분산 클러스터라는 두 가지 버전을 제공합니다. 분산 클러스터는 컴퓨팅 엔진, 스토리지 엔진 및 메타데이터 관리를 독립적인 구성 요소로 나누는 MPP 대규모 병렬 처리 계층 아키텍처를 채택합니다. -store 및 ts-meta입니다. 다양한 구성 요소가 독립적인 수평 확장을 지원하므로 복잡한 애플리케이션 시나리오에 유연하게 대응할 수 있습니다.

높은 카디널리티 엔진: 높은 카디널리티 문제(차원의 재앙이라고도 함)로 인해 반전된 인덱스가 확장되어 과도한 메모리 리소스 소비가 발생하고 읽기 및 쓰기 성능이 저하되어 오랫동안 시계열 데이터베이스 개발을 괴롭혀 왔습니다. openGemini 고기수 엔진은 시계열별 희소 지수를 구축하여 이 문제를 완전히 해결합니다. 이는 네트워크 모니터링, 금융 위험 제어, 사물 인터넷, 운송 및 기타 분야에 사용하기에 매우 적합합니다.

텍스트 검색: 텍스트 데이터는 일반적인 데이터 유형입니다. openGemini는 텍스트 데이터에 대한 인덱스 생성을 지원하고 동적 학습 단어 분할 방법을 채택하며 정확한 구문 및 퍼지 일치를 지원하며 메모리 리소스 사용량이 낮고 검색 효율성이 높습니다.

스트리밍 집계: 스트리밍 집계는 데이터를 쓰는 동안 데이터를 다운샘플링하는 사전 집계 방법입니다. 그 목적은 계산을 위해 디스크에서 대량의 기록 데이터를 읽어 심각한 I/O 증폭을 초래하는 기존 다운샘플링 방법의 문제를 해결하는 것입니다. 문제.

다단계 다운샘플링 : 기존 기록 데이터의 경우 기존 다운샘플링 방법으로 기록 데이터 세부정보를 유지합니다. 일부 시나리오에서는 기록 데이터 세부 정보가 중요하지 않으며 데이터 특성만 유지하면 됩니다. 다단계 다운샘플링 기능은 기록 데이터 세부 정보의 특징을 추출하고 기록 데이터 세부 정보를 대체할 수 있으므로 추가로 줄일 수 있습니다. 비용이 50% 증가합니다.

이상 탐지 및 예측: 이상 탐지 및 예측은 현재 시계열 데이터 분석의 가장 성숙한 응용 프로그램 중 하나이며 정량적 트랜잭션, 네트워크 보안 탐지, 데이터 센터, 산업 장비 및 IT의 일일 유지 관리와 같은 시나리오에서 널리 사용됩니다. 하부 구조. openGemini는 13가지 일반적인 이상 시나리오에 대한 감지 알고리즘을 캡슐화한 이상 감지 라이브러리인 openGemini-castor를 제공합니다. 이는 빠른 감지 속도, 높은 정확성, 스트림 및 배치 통합의 장점을 가지고 있어 애플리케이션이 데이터 분석 효율성을 향상시키는 데 도움이 됩니다.

핫 및 콜드 데이터 계층형 스토리지: 기록 데이터를 개체 스토리지로 전송하도록 지원하여 기록 데이터를 저렴한 비용으로 영구 보존할 수 있으며 빅데이터의 오프라인 분석도 지원합니다. [해당 기능은 H2 출시 예정]

데이터 신뢰성 : 데이터 신뢰성을 더욱 향상시키기 위해 여러 컴퓨팅 복사본을 지원합니다. [해당 기능은 H2 출시 예정]

 

03 사용자 경험에 집중하여 더 쉽게 시작할 수 있습니다.

openGemini는 강력한 성능을 제공할 뿐만 아니라 독특한 디자인으로 실제 애플리케이션에서 많은 편안한 경험을 제공할 수 있습니다.

시작 측면에서 openGemini는 InfluxDB v1과 완벽하게 호환됩니다. 동시에 openGemini는 InfluxDB와 동일한 라인 프로토콜을 사용합니다. 데이터 모델링은 간단하고 이해하기 쉬우며 관계형 데이터베이스 개발자에게도 친숙합니다. 마지막으로 openGemini는 추가 학습이 필요하지 않고 시작하기 쉬운 SQL과 유사한 쿼리 언어를 사용합니다. 클러스터 배포의 경우 커뮤니티에서는 많은 구성 작업을 줄여주는 원클릭 배포 도구인 Gemix도 제공합니다.

운영 체제 측면에서 openGemini 는 현재 주류 Linux 시스템(openEuler 포함), Windows 및 MacOS를 지원하므로 애플리케이션 개발 및 디버깅이 더욱 편리해집니다. 프로세서는 X86 및 ARM64 아키텍처를 모두 지원합니다.

클라우드 네이티브 측면에서 openGemini는 Dockerfile 및 Docker 이미지를 제공하여 Docker, K8s, KubeEdge 및 기타 플랫폼의 배포를 지원합니다. 컨테이너가 다시 시작된 후 IP 주소가 변경되므로 openGemini는 컨테이너가 다시 시작된 후에도 클러스터 노드가 계속 연결을 유지할 수 있도록 도메인 이름 기능을 추가했습니다. 커뮤니티는 또한 사용자의 원클릭 컨테이너 배포를 용이하게 하기 위해 openGemini-operator 프로젝트를 만들었습니다. openGemini는 Prometheus 원격 읽기 및 쓰기를 지원하며 Prometheus의 백엔드 스토리지로 사용하여 스토리지 용량 부족 문제를 해결할 수 있습니다. [btw: openGemini는 현재 개발 중인 PromQL도 직접 지원할 예정입니다.]

관찰 가능성 측면에서 커뮤니티는 노드 및 커널 지표 수집을 전문으로 하는 ts-monitor 구성 요소를 개발했습니다. 이는 19개의 하위 범주와 260개 이상의 항목으로 나누어져 있으며 Grafana와 함께 사용하여 운영 상태를 포괄적으로 모니터링할 수 있습니다. 오픈제미니. 예를 들어, CPU 및 메모리 사용률, 쓰기 대역폭, 쓰기 대기 시간, 쓰기 동시성, QPS 등의 지표를 시각적 인터페이스를 통해 한눈에 볼 수 있어 운영 상태, 데이터베이스 성능 튜닝, 정확한 문제 위치를 쉽게 확인할 수 있습니다. 언제든지.

 

04 내부 실전 테스트 후 오픈소스로 환원

시계열 데이터베이스로서 openGemini는 현재 사물 인터넷과 운영 및 유지 관리 모니터링에 가장 일반적으로 사용됩니다. 대용량 데이터 처리 측면에서 일반 데이터베이스가 따라올 수 없는 장점을 가지고 있습니다. 동시에 Huawei 내부 프로젝트인 openGemini는 "자체 직원" 테스트를 통과했습니다.

Huawei Cloud SRE는 openGemini를 모니터링 데이터 저장 기반으로 사용하며, 전체 네트워크에 걸쳐 총 25개의 클러스터가 배포되며, 최대 클러스터 크기는 초당 4천만 건의 데이터 쓰기와 50,000건의 동시 쓰기 테스트를 성공적으로 통과했습니다. 쿼리. 기존 솔루션과 비교하여 동일한 업무 수행 시 기존 시스템의 종단 간 지연 시간은 50% 감소하고, CPU 자원은 68%, 메모리 자원은 50%, 하드 디스크를 절약할 수 있습니다. 자원을 90% 이상 절약할 수 있습니다.

Huawei Cloud의 산업용 IoT 플랫폼은 이전에 OpenGemini로 전환한 이후 독립형 버전의 InfluxDB를 사용해 왔으며, 더 이상 처리량에 대해 걱정할 필요가 없습니다. 장치 액세스가 백만 수준으로 증가했습니다.

Xiang Yu는 openGemini가 오픈 소스에서 시작되었으며 InfluxDB 오픈 소스 프로젝트에서 많은 혜택을 받았다고 소개했습니다. 따라서 오픈 소스 정신을 고수하면서 모든 openGemini 코드는 전 세계의 더 많은 회사와 개발자가 오픈 소스로 제공되기를 바랍니다. 또한 오픈 커뮤니티를 통해 플랫폼이 개발자와 함께 기술 혁신을 공동으로 촉진하고 오픈 소스 결과를 공유하기를 바랍니다.

현재 openGemini는 오픈소스 버전과 클라우드 서비스만 보유하고 있으며 오프라인 상용 버전에는 참여할 계획이 없으며 재단에 기부할 의향이 있습니다. 현재 커뮤니티에는 여전히 많은 결함이 있습니다. 다음으로 커뮤니티는 openGemini의 생태 도구(예: 데이터 마이그레이션 도구, SDK, 빅 데이터 생태 통합 등), 시각적 관리 인터페이스, 문서 등을 더욱 풍부하게 만들 것입니다.

"현재 커뮤니티의 기술 계획은 일반적으로 사물 인터넷의 세 가지 중요한 응용 시나리오, 운영 및 유지 관리 모니터링 및 관찰 가능성에 초점을 맞추고 관련 기술의 생태학적 호환성과 커널 기능 구축을 강화할 것입니다. 우리는 다음을 시연하기 시작했습니다. openGemini의 세대 소프트웨어 아키텍처입니다." Xiang Yu가 말했습니다.

“단기적으로 openGemini는 산업 관련 시나리오를 고려하지 않을 것입니다. 왜냐하면 산업 분야의 비즈니스 시나리오는 매우 복잡하고, 실시간 요구 사항이 극도로 높으며, 산업용 소프트웨어 제조업체의 해자가 매우 깊고, 시계열 데이터베이스는 제한적입니다. 게다가, 우리는 이 시나리오에 대해 충분히 알지 못합니다. 그 후에는 산업용 소프트웨어 공급업체, 솔루션 등 산업 분야의 파트너를 찾는 것을 고려할 것입니다. 공급업체 등이 함께 협력하고 개선하기 위해 노력하고 있습니다.”라고 Xiang Yu는 말했습니다.

 

openGemini 공식 홈페이지 홈페이지: https://www.openGemini.org/

openGemini 오픈 소스 주소: https://github.com/openGemini

동료 치킨 "오픈 소스" deepin-IDE 및 마침내 부트스트랩을 달성했습니다! 좋은 친구, Tencent는 Switch를 "생각하는 학습 기계"로 전환했습니다. Tencent Cloud의 4월 8일 실패 검토 및 상황 설명 RustDesk 원격 데스크톱 시작 재구성 웹 클라이언트 WeChat의 SQLite 기반 오픈 소스 터미널 데이터베이스 WCDB의 주요 업그레이드 TIOBE 4월 목록: PHP 사상 최저치로 떨어졌고 FFmpeg의 아버지인 Fabrice Bellard는 오디오 압축 도구인 TSAC를 출시했으며 Google은 대규모 코드 모델인 CodeGemma를 출시했습니다 . 오픈소스라서 너무 좋아요 - 오픈소스 사진 및 포스터 편집기 도구
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/6852546/blog/11052794