[데이터베이스 기술] NineData 데이터 복제, 실시간 데이터 웨어하우스 구축 가속화

8월 30일 나인데이터와 셀렉트DB가 공동 주최한 "실시간 데이터 기반, 선도적인 기업 지능형 데이터 관리"를 주제로 온라인 공동 기자간담회가 성공적으로 개최되었습니다! 양 당사자는 실시간 데이터 웨어하우스 기술 및 데이터 개발 역량에 중점을 두고 강력한 생태 개발 호환성을 통해 풍부한 빅데이터 생태 제품과 연결하는 방법을 시연하고 기업이 데이터 분석 사업을 신속하게 개발할 수 있도록 지원하며 실시간 데이터 기반 비즈니스를 공동으로 탐색합니다. 미래의 기업 지능형 데이터 관리 솔루션.

이 기사는 NineData X SelectDB 공동 컨퍼런스에서 Jiuzhang Arithmetic Technology 부사장 Chen Changcheng(Tianyu)이 전한 기조 연설 내용을 바탕으로 작성되었습니다.

기술공유|나인데이터 데이터 복제, 실시간 데이터 웨어하우스 구축 가속화
Chen Changcheng (Tianyu), Jiuzhang Arithmetic Technology 부사장

Chen Changcheng은 한때 Alibaba Cloud 데이터베이스 센터 책임자, Alibaba Cloud 데이터베이스 생태 도구 부서 총책임자, 전 Alibaba Cloud 수석 기술 전문가를 역임했습니다. Alibaba Cloud의 데이터베이스 인프라를 선도하여 IOE 제거부터 다양한 위치의 분산, 다중 활성, 컨테이너화, 스토리지와 컴퓨팅 분리에 이르기까지 세 가지 구조적 변화를 완료했습니다. 클라우드 네이티브 도구 아키텍처의 업그레이드를 주도하고 원스톱 관리 기능을 구축합니다. VLDB 및 ICDE 데이터베이스에 대한 많은 기술 특허와 최고의 컨퍼런스 논문을 출판했습니다.

01 나인데이터 제품소개

데이터와 클라우드 시대에 기업의 디지털화는 많은 과제에 직면해 있습니다. Gartner와 Percona의 보고서에 따르면 80% 이상의 기업이 멀티 클라우드 또는 하이브리드 클라우드를 선택할 것이며 70% 이상의 기업이 선택할 것이라고 합니다. 비즈니스 요구 사항을 충족하기 위해 여러 데이터베이스를 사용합니다. 업계 분석 보고서에 따르면 기업이 멀티 소스 인프라와 새로운 데이터 아키텍처를 효과적으로 사용할 수 있다면 혁신 능력과 전반적인 수익성이 크게 향상될 것으로 나타났습니다. 그러나 데이터와 클라우드 시대에는 데이터 사일로, 멀티 소스 이기종 데이터 관리 복잡성, 개발 효율성 등 기업 데이터 관리에 있어 시급히 해결해야 할 과제가 더 많아지고 있습니다.

위에서 언급한 일반적인 문제와 과제를 기반으로 Jiuzhang Math는 NineData 클라우드 기반 지능형 데이터 관리 플랫폼을 구축했습니다. 하단 IaaS 인터페이스 계층은 다양한 시나리오의 다양한 데이터 소스를 통합 방식으로 연결하며, 이를 기반으로 NineData는 데이터 백업, 데이터 복제, 데이터 비교, SQL 개발의 4가지 핵심 기능 모듈을 구축하고 엔터프라이즈 데이터베이스, 검색, 메시지와 통합합니다. 이 시스템은 긴밀하게 연결되어 기업이 데이터 자산을 보호하고 멀티 클라우드 및 하이브리드 클라우드를 기반으로 인프라를 유연하게 구축하며 보안 관리를 일원화하고 데이터베이스 개발 효율성을 향상시킬 수 있도록 지원합니다.

SQL 개발에 대한 소개입니다. 기업 내외의 모든 개발자가 통합된 데이터 액세스 사양을 따르고 효율성을 향상시킬 수 있는 모범 사례 제품화입니다. 현재 기업은 멀티 클라우드, 다중 데이터 소스에 직면해 있습니다. 각각의 CLI 또는 그래픽 관리 도구가 있지만 다음과 같은 문제가 있습니다.

  1. 권한이 분산되어 있고 감사가 부족하며 보안 관리 및 통제가 어렵습니다.

  2. 도구마다 구성 수준, 평균 경험 및 낮은 개발 효율성이 다릅니다.

  3. 통일된 표준을 만드는 것이 불가능하며, 데이터베이스 제작의 안정성도 보장되지 않습니다.

  4. 여러 환경과 여러 데이터 소스를 통합된 방식으로 관리할 수는 없습니다.

이러한 문제에 대응하기 위해 나인데이터는 전사적 수준의 데이터베이스 보안 관리 기능을 설계하여 다양한 클라우드 벤더와 자체 구축한 다양한 데이터 소스를 통합 데이터 소스로 연결하고 업무 흐름 및 승인 흐름 설계, 보안 규칙 구성, 권한 관리 및 운영 감사 등을 설계했습니다. , SSO 지원 룰 엔진을 통해 기업 데이터(인스턴스, 라이브러리, 테이블) + 계정 역할 + 작업 유형을 통합적으로 관리하고, 데이터베이스 SQL 개발 안정성 및 보안 모범 사례를 내장하여 데이터베이스 접근 권한 관리를 제공하며, 변경 관리, 민감한 데이터 관리, 데이터 가져오기 및 내보내기 및 기타 기능. 나인데이터는 자연스러운 음성 쿼리 데이터, 테이블 구조 설계 재작성, SQL 측면에서 개발자 효율성을 향상시키기 위해 간단한 GUI를 갖춘 개인용 버전과 효율적인 협업이 가능한 엔터프라이즈 버전, 대규모 모델 AIGC 기능을 결합한 두 가지 서비스 모드를 제공합니다. 최적화 제안.

데이터 복제 시나리오에서 기업은 또한 여러 데이터 소스, 다중 클라우드 데이터 연결, 지역 간 장기 복제 및 그에 따른 성능 및 안정성 측면에서 문제에 직면합니다. NineData 데이터 복제는 데이터 흐름을 위한 인프라를 제공하기 위해 최선을 다하고 있습니다. 다양한 데이터베이스 유형, 공급업체, 환경으로 인해 발생하는 데이터 흐름 문제를 제거하고 기업이 데이터 가치를 극대화할 수 있도록 지원합니다. 현재 NineData는 단방향 및 양방향 링크, 강력한 복제 성능 및 완벽한 데이터 비교 기능을 갖춘 13가지 종류의 데이터 소스를 지원하며 향후 확장될 예정입니다.

02 데이터 복제 기술 아키텍처

먼저 나인데이터의 전체적인 아키텍처를 소개하자면, 멀티클라우드, 멀티소스 역량을 바탕으로 데이터 백업, 데이터 복제, 데이터 비교, SQL 개발 역량을 구축해왔습니다.

2.1 흐린 각도

멀티 클라우드 관점에서 기업이 멀티 클라우드 또는 하이브리드 클라우드에 분산된 다양한 데이터 소스를 통합적으로 관리할 수 있도록 유연한 클라우드 네이티브 아키텍처, 컨테이너화된 탄력적 풀업, 네트워크 아키텍처 등을 설계했습니다. .

전용 클러스터 지원

멀티 클라우드를 지원하는 동시에 전용 클러스터 기술을 통해 기업이 자신의 리소스를 독점적으로 누릴 수 있도록 할 수 있습니다. 이를 포함하여 기업의 작업자 노드를 로컬 또는 VPC 내부에 배치하여 데이터의 내부 폐쇄 루프를 실현하고 기업 데이터의 보안과 작업자 실행 효율성을 향상시킬 수 있습니다.

클라우드 네이티브 SAAS 모드

클라우드 네이티브 SAAS 제품인 NineData는 온디맨드 배포 및 탄력적인 확장이라는 가장 기본적인 기능을 갖추고 있습니다.

사이버 보안

네트워크 측면에서는 보안을 고려하여 많은 기업 고객이 데이터베이스의 공용 네트워크 포트를 노출하는 것을 원하지 않기 때문에 데이터베이스 게이트웨이를 설계했습니다. 이 설계를 통해 사용자는 NineData 데이터베이스 게이트웨이를 당겨 연결하기만 하면 됩니다. 중앙 관리 노드는 역방향 액세스 채널을 구축하기 위해 내부 소스를 포함해 곳곳에 흩어져 있는 데이터 소스를 관리할 수 있습니다. 또한 NineData 작업자를 로컬에 배치하여 데이터 링크의 내부 폐쇄 루프를 실현하는 동시에 관리 링크는 중앙 콘솔을 통해 통합 링크 관리를 실현할 수도 있습니다.

2.2 다중 소스 측면

여러 소스 측면에서 우리는 주로 통합 데이터 소스 액세스 계층을 설계했습니다. 많은 데이터 소스에 접근하기 위해 데이터 소스의 연결 풀 관리, 속성 구성, 연결 확인 및 보안 인증을 통합적으로 추상화했습니다. 이런 방식으로 모든 데이터 소스를 균일하게 연결할 수 있습니다. 우리의 4가지 주요 기능 모듈은 모두 동일한 데이터 소스 액세스 계층을 사용하므로 한 번의 액세스로 모든 기능을 사용할 수 있습니다. 사용자에게는 진정한 통합관리가 실현됩니다.

나인데이터의 제품 설계에 있어 보안은 단일한 업무나 기능이 아닌 처음부터 끝까지 내재되어 있으며, 제품 설계, 개발, 운영, 유지관리 전 과정에서 데이터 전송 암호화, 운영, 유지관리에 있어 많은 노력을 기울여 왔습니다. 화이트 스크린, 운영 감사, 동시에 NineData는 내부 테스트 및 제3자 감사를 통해 여러 측면에서 데이터 보안을 보호합니다.

일반적인 NineData 데이터 복제 링크 토폴로지는 소스와 대상을 구성한 후 NineData가 전체 링크 실행을 시작합니다. 네트워크 연결, 계정 비밀번호 등이 올바른지 확인하기 위해 처음에 사전 확인이 진행됩니다. 다음으로 구조가 복사되고 전체 및 증분 데이터를 가져와서 기록합니다.

제품 차원에서는 멀티 클라우드와 멀티 소스를 지원해야 하며, 위에서 소개한 탄력적 아키텍처와 네트워크 아키텍처 외에도 복제 모듈의 여러 데이터 유형의 호환성과 확장성을 위한 중요한 설계를 했습니다. 동시에 다중 소스 이기종 장기 운영이 존재해야 하며 소수의 호환되지 않는 시나리오의 경우 관찰 가능성 및 개입 측면에서 기능 설계에도 중점을 두었습니다. 데이터 전송 커널 모듈의 핵심은 데이터 일관성을 보장하는 동시에 처리량 및 대기 시간 측면에서 최고의 이점을 갖는 것입니다. 따라서 우리는 이와 관련하여 많은 작업을 수행했습니다. 나중에 핵심 기능을 공유할 때는 이러한 점을 중심으로 진행됩니다.

03 데이터 복제의 핵심 기능

3.1 처리량

전체 성능을 예로 들면 몇 가지 중요한 최적화 항목이 있습니다.

대규모 테이블 마이그레이션 성능

대규모 테이블 마이그레이션의 성능은 가장 일반적인 병목 현상입니다. 소스 측에서 처리할 데이터가 있다고 가정해 보겠습니다. 그 중에는 많은 테이블이 있고 데이터 볼륨이 모두 다릅니다. 동시에 처리하기 위해 세 개의 동시 스레드를 시작하면 적은 양의 데이터를 가진 일부 테이블은 처리되었을 수 있지만 많은 양의 데이터를 가진 일부 테이블은 여전히 ​​단일 스레드가 처리되기를 기다리고 있습니다. 테이블 수준이 동시인 경우에도 비슷한 문제가 발생합니다. 따라서 전체적인 효율성을 향상시키기 위해서는 테이블의 동시성 성능을 향상시켜야 합니다. 특히, 테이블이 균등하게 슬라이스되어 있는지 고려해야 합니다. 이를 위해 우리는 기본 구성 요소가 단일 키 분할을 지원하고 기본 키, null이 아닌 고유 키, null 허용 고유 키, 공통 키 등의 순서로 분할을 지원하는 전략을 세웠습니다. 가장 균형 잡힌 방식으로 동시 처리가 가능합니다.

동시 쓰기 역시 공간 문제와 관련이 있는데, 사용 중 소스단에서 100G의 데이터를 쓰면 타겟단에서는 150G가 될 수도 있다. 단일 테이블을 순서 없이 제출할 경우 일부 데이터 홀이 생성될 수 있기 때문입니다. 이를 위해 NineData는 쓰기 증폭을 제어하기 위해 슬라이스 크기 및 동시 순서 측면에서 최적화되었습니다.

대상 라이브러리 쓰기

손실이 가장 적은 메소드를 대상 라이브러리에 작성해야만 최대 성능을 얻을 수 있습니다. 채널 성능이 해결되고 선형적으로 확장될 수 있으면 처리량 병목 현상은 채널이 아니라 대상 라이브러리 쓰기에 발생합니다. 그러므로 대상 라이브러리의 글쓰기 자세가 매우 중요합니다. 각 SQL을 대상 측에서 구문 분석해야 하는 경우 성능이 확실히 저하됩니다. 따라서 일괄 제출 방식을 채택해야 합니다. 동시에 압축 스위치를 다룰 때는 CPU 수에 주의를 기울여야 합니다. CPU 수가 적은 경우 압축을 활성화하면 성능에 큰 영향을 미칠 수 있습니다.

메모리 최적화

메모리 최적화는 처리량 성능을 향상시킬 수 있습니다. 전체 전체 복사본은 콘텐츠에 대한 일괄 로드와 대상 라이브러리에 대한 빠른 쓰기가 특징이므로 이 데이터는 제거됩니다. 따라서 메모리 및 CPU 오버헤드를 줄이고 채널 성능을 향상시키기 위해 전체 JVM의 매개변수에 대해 일부 대상 구성 최적화가 수행됩니다.

3.2 낮은 대기 시간

그렇다면 NineData는 어떻게 낮은 지연 시간을 구축할까요? 우리는 다양한 차원에서 지연 시간이 짧은 기능을 고려합니다.

채널 실적

채널 성능의 관점에서 볼 때 일괄 및 핫 데이터 병합과 같은 일부가 포함됩니다. 핫스팟 데이터 병합의 경우 레코드가 A1에서 A2로 변경된 다음 A3으로 변경되면 일반적인 동기화 모델은 전체 트랙 수정이지만 핫스팟 기능이 활성화된 후에는 최종 A3 insert 문에 직접 병합될 수 있습니다. A1은 삽입되지 않습니다. 또는 최종 상태에서 데이터를 직접 쓰는 기능을 통해 A2를 업데이트하고 이 대기열을 메모리에 직접 병합합니다. 채널 성능 수준에는 몇 가지 다른 디자인이 있습니다. 예를 들어 redis의 복제 링크에서는 큐의 직렬화 비용이 줄어들어 전체 큐의 소비가 최소화됩니다.

채널 관리 디자인

채널 관리 계층은 지연 시간이 짧은 전체 시스템 설계에서도 매우 중요하며 이는 수년간의 실습을 통해 얻은 경험입니다. 최소한의 비용으로 동기화 링크의 다양한 이상현상에 대처할 수 있어야 합니다.

(a) 비정상적인 조건에서 다시 그릴 가능성을 줄입니다. 데이터베이스에 지연이 있는데 데이터 서버의 로그가 지워졌는데, 클라우드 네이티브 제품인 우리는 어떻게 해야 할까요? 소스 데이터베이스의 인터페이스를 얻어서 OSS나 다른 객체 스토리지에 업로드된 로그가 있는지 확인하겠습니다. 있는 경우 자동으로 이전 기록을 획득하고 계속하므로 전체 금액을 다시 가져오는 것을 방지하고 지연을 줄입니다.

 (b) 데이터를 가능한 한 적게 롤백합니다. 우리는 테이블 수준의 보안 사이트를 설계했습니다. 각 테이블에는 고유한 최신 위치가 있습니다. 재생 중에 이 테이블의 위치가 사용된 경우 위치 롤백을 방지하기 위해 이를 삭제합니다.

(c) 깨끗하게 운영한다. 일상적인 작업 및 유지 관리 작업의 경우 NineData 복제 스레드는 대기열의 모든 데이터를 제출하여 16개 스레드가 일관된 위치에 도달한 다음 프로세스를 닫습니다. 이 기능을 통해 우리는 깔끔한 정리를 달성했으며 사용자는 다시 시작한 후 데이터를 재생할 필요가 없습니다. 이는 가장 우아한 방법 중 하나입니다.

3.3 일관된 데이터 동기화

데이터 일관성의 중요성은 의심의 여지가 없습니다. 여기서는 데이터 일관성과 DDL 구조 일관성이라는 두 가지 측면에서 NineData의 설계 기능을 소개하는 데 중점을 둘 것입니다. 한편 NineData는 완전한 데이터 비교 기능을 구현했습니다.

데이터 일관성

데이터 자체의 일관성, 트랜잭션 일관성을 보장하는 방법. 예를 들어 T1에서 T5까지 5개의 트랜잭션이 있다고 가정합니다. 여기서 B1은 주문 상태이고 주문은 B1에서 생성되며 사용자 지불은 B3으로 이루어질 수 있으며 이때 물류 주문 L이 생성됩니다. 일반적인 행 수준 동기화 방법을 사용하면 주문과 물류 주문이 서로 다른 테이블에 저장되며 행 수준 동시성으로 인해 순서가 보장되지 않습니다. 따라서 B1과 L이 대상 라이브러리에 동시에 나타날 수 있습니다. 즉, 주문이 생성되면 물류 주문도 생성됩니다. 온라인 비즈니스의 경우 이는 확실히 비즈니스 논리에 위배되며 온라인 비즈니스의 정상적인 운영을 지원할 수 없습니다.

따라서 우리는 트랜잭션 일관성 기능을 구축했으며 사용자는 트랜잭션 기능을 활성화할 수 있습니다. 사용자가 트랜잭션 기능을 활성화하면 T3의 이 트랜잭션에 있는 각 레코드가 이전의 모든 트랜잭션과 종속 관계를 가지고 있는지 확인합니다. 존재하는 경우 T3는 데이터 일관성을 보장하기 위해 제출하기 전에 다른 트랜잭션이 제출될 때까지 기다립니다. 따라서 첫 번째 제출은 T1만 T4에 제출하고, T3는 제출하기 전에 T2가 제출될 때까지 기다립니다. 이는 데이터 일관성을 보장하는 동기화 메커니즘입니다.

DDL 변경 동기화의 일관성

DDL 변경 동기화의 일관성. 구체적으로 테이블 구조를 예로 들어 보겠습니다. 테이블 구조에 변경 사항이 있는 경우 일반적인 해결 방법은 소스에서 테이블 구조를 확인하는 것입니다. 하지만 대부분의 데이터 로그에는 데이터와 테이블 이름만 있고 구조, 유형 등의 정보가 부족하기 때문에 구조적 정보를 얻고 최종 결과를 엮기 위해서는 데이터 소스를 확인해야 합니다. 그러나 검토 과정에서 소스에서 이미 두 번째 DDL이 발생했을 가능성이 매우 높으며, 우리가 얻는 것은 다시 수정된 DDL로 인해 스플라이싱된 데이터에 불일치와 오류가 발생하는 것입니다.

따라서 우리는 DDL 구문 분석 기능을 개발했습니다. 즉, DDL 구문 분석이 완료된 후 동기 스레드 구문 분석 스레드에서 직접 재생이 수행됩니다. 동시에 각 변경 사항의 버전을 기록하고 재생 중에 새 버전을 생성하며 이전 버전은 삭제되지 않습니다. 이러한 방식으로 모든 테이블은 다른 업계 관행처럼 처음부터 다시 재생하는 대신 언제든지 메타 구조를 확인할 수 있습니다.

데이터 비교

데이터 비교 측면에서 나인데이터는 이를 중요한 제품 역량으로 구축하고 있으며, 데이터 비교가 전반적인 데이터 품질에 미치는 영향은 매우 중요하다고 믿습니다. 따라서 우리는 구조 비교, 데이터 비교 및 ​​수정된 SQL 생성 측면에서 매우 포괄적입니다. 둘째, 사용자의 원본 데이터베이스와 대상 데이터베이스 간의 데이터 비교로 인해 발생하는 부하를 고려합니다. 이러한 부하는 많은 생산 인력에게 매우 중요합니다. 따라서 우리는 일치하지 않는 데이터만 다시 확인하고, 동시성과 전류 제한을 제어하고, 샘플링 비율과 조건부 필터링을 설정하고, 특정 범위 내의 데이터만 비교하는 등 많은 전략을 세웠습니다. 동시에 성능 측면에서도 고유한 최적화를 수행합니다. 기존의 데이터 비교는 소스와 타겟의 모든 데이터를 뽑아내는데, 이로 인해 컴퓨팅 리소스와 대역폭이 많이 소모되므로 보다 우아한 계산 푸시다운을 수행하고 일치하지 않는 데이터만 테이블로 반환하여 비교합니다. 분야별로.

3.4 확장성, 실시간 데이터 웨어하우스 구축 가속화

확장성 측면에서 NineData에서 빠르고 새로운 데이터 소스를 지원하는 방법은 무엇입니까? 즉, 구조 및 데이터 유형의 변환을 빠르게 지원하고 채널을 빠르게 제품화해야 한다는 것이 현재 중요한 고려 사항입니다. 우리의 전체 설계 아이디어는 다양한 원본 소스에서 대상까지 N을 M으로 곱하는 토폴로지 방법이 M에 N을 더함으로써 실현될 수 있다는 것입니다.

데이터 유형에 대해 먼저 이야기해 보겠습니다. 왜냐하면 데이터 유형은 최종 일관성에 더 관심이 있을 수 있고 업계에서는 많은 중간 유형을 정의했기 때문입니다. 현재 NineData는 일부 중간 유형도 정의합니다. 중간 유형을 더 잘 추상화할수록 해당 유형이 적어지기 때문에 새로운 데이터 소스에 대한 변환을 개발하는 데 필요한 작업이 줄어듭니다. 따라서 더 적은 수의 샘플 세트로 더 효과적으로 추상화하는 방법이 전반적으로 더 나은 추상화 방법입니다.

두 번째 캡처 및 쓰기 모듈의 플러그인은 코드 재사용을 극대화하고 제품 효율성과 안정성을 향상시킵니다. 우리는 관계형 데이터 커밋(Relational Data Commitment)이라는 프레임워크를 제공합니다. 이 프레임워크는 DDL/DML 라이브러리, 테이블, 기본 키 수준 충돌 대기, 트랜잭션 충돌 대기, 핫스팟 병합 및 배치 최적화 SQL을 추상화하여 나중에 연결되는 데이터 소스가 자연스럽게 이러한 기능을 가질 수 있도록 합니다.

현재 NineData는 MySQL, PostgreSQL, SQLServer, Redis, MongoDB, Kafka, ElasticSearch, SelectDB(Doris) 및 기타 데이터베이스를 광범위하게 지원하고 있으며 해당 시리즈는 주류 클라우드 공급업체의 제품과 연결되어 있습니다. 여기서는 SelectDB와 ClickHouse의 기능 디자인에 중점을 둡니다.

구조 복제

NineData는 배포 키 조정 및 SQL 재작성, SQL 재작성과 같은 데이터베이스 간 생성 테이블 생성 등을 포함하여 모든 MySQL DDL을 SelectDB에 자동으로 동기화하는 기능을 지원합니다.

데이터 복제

NineData 중간 유형에서 SelectDB 데이터 유형으로의 일대일 매핑을 정의하여 데이터 유형 및 문자 집합 매핑을 구현하고 동시에 시간 유형에 대해서는 시간대 간 데이터 마이그레이션을 지원합니다. 서버의 글로벌 시간대.

데이터 처리

복사 프로세스 중 동기화 개체 필터링을 지원하는 동시에 작업 유형 필터링(예: 삽입만 복사하고 삭제는 복사하지 않음), 데이터 계산에 따른 필터링 및 데이터 유형 변환을 수행합니다.

성능 최적화

NineData 데이터 복제는 복제 프레임워크에서 지원하는 쓰기 병합 외에도 스트림 모드에서 전체 또는 증분 쓰기를 지원하며, MySQL->SelectDB(Doris) 테스트에서 클라우드의 동일한 지역에 있는 30개 지역의 동시성이 도달할 수 있습니다. 209MB/S, 88W RPS(단일 회선의 경우 평균 약 250B).

NineData는 ClickHouse 지원에 대해서도 신중하게 설계했습니다. 구조 매핑 측면에서 사용자는 CollapsingMergeTree 또는 ReplacingMergeTree를 선택하여 복사할 수 있으며 기본값 차이 처리를 포함하여 ClickHouse에서 다양한 데이터 유형의 매핑을 지원합니다. 성능면에서 Airbyte와 유사한 접근 방식은 ClickHouse 엔진의 많은 추가, 삭제 및 변경 사항이 직접 추가되기 때문에 모든 증분 데이터를 하나의 파일로 결합하므로 이 방법은 비교적 간단합니다. 하지만 이 방법을 사용하면 시간이 많이 지연됩니다. 따라서 구현 과정에서 SQL을 사용하여 제출하는 것을 고려하며, 그 수가 많을 경우 즉시 배치 제출로 전환하여 동적으로 제어할 수 있습니다. 예를 들어 1000초 또는 0.5초를 초과하는 경우 수백 밀리초 안에 제출됩니다. 또한 ClickHouse의 Jdbc는 각 문을 구문 분석할 때 성능이 좋지 않아 성능 향상을 위해 일부 최적화 및 일괄 제출을 채택했습니다.

3.5 고가용성 메커니즘

노드 재해 복구

NineData의 모든 구성 요소는 단일 지점 위험을 방지하기 위해 고가용성 아키텍처를 채택합니다. 작업 노드는 분산 컨테이너 클러스터에서 실행되며 재해 복구 시스템은 비정상적인 작업과 비정상적인 노드를 자동으로 감지하고 작업 간 드리프트 재해 복구를 자동으로 완료합니다.

작업 견고성

동적 샤딩, 동적 일괄 처리, 스트리밍 읽기 및 쓰기, 탄력적 확장 및 축소 등의 기술과 결합된 동적 메모리 관리를 통해 링크의 부하 적응 능력이 향상되고 작업 안정성이 효과적으로 보장됩니다.

http

모든 모듈은 구조 복제, 전체 복제, 증분 복제, 데이터 비교 등 정기적인 위치 기록을 지원하며, 작업이나 서비스 노드에 이상이 있는 경우 중단점을 기준으로 작업을 다시 시작합니다. 완벽한 재시도 및 개입 방법을 통해 네트워크 불량, 높은 데이터 부하, 하드웨어 이상 등의 시나리오에서 링크의 견고성이 향상됩니다.

3.6 관찰 및 개입 기능

관찰 가능성

(1) 복제 시스템은 링크별로 2차 로그 관리 기능을 갖추고 있으며, 2차 RPS, DDL/DML 작업 누적 횟수, 큐 누적 횟수 및 기타 지표를 확인하고, 각 모듈의 상태를 확인할 수 있습니다. 작업의.

(2) 제출 스레드 상태를 실시간으로 확인합니다. 예를 들어 16개의 스레드가 실행 중인 경우 이 16개의 스레드가 각각 어떤 SQL을 실행하고 있는지 또는 작업이 DDL에 의해 중단되었는지 여부 등을 표시합니다. 각 스레드가 수행하는 작업, 수행 기간 및 기타 정보를 MySQL Processlist와 유사한 방식으로 볼 수 있습니다. 동기화 프로세스 중에 사용자는 대상 측에서 몇 가지 문제, 새로운 쓰기 등을 겪게 되어 양측 간에 데이터 충돌이 발생할 수 있습니다. 따라서 관찰 가능성 측면에서 기본 상태를 사용자에게 완전히 공개할 뿐만 아니라 각 스레드에서 제출한 명령문도 제공합니다.

개입 능력

(1) 동기화 개체를 수정합니다.장기적인 복제 작업의 경우 비즈니스 변경으로 인해 사용자가 동기화 링크에 새 개체를 추가해야 할 수 있습니다.인터페이스에서 직접 추가할 수 있습니다.배경에서는 구조 초기화가 생성되고, 전체 금액 및 새 개체의 증가 그리고 따라잡은 후 동기화 개체를 기존 링크에 병합합니다.

(2) 성숙한 예외 처리 기능. 비정상적인 작업에 대해 NineData는 특정 오류 정보를 표시하고 사용자는 SQL 수준에서 문을 수정 및 재시도하거나 건너뛸 수 있으므로 소수의 대상 이중 쓰기 또는 구조적 불일치가 발생하는 경우 작업을 신속하게 복구할 수 있습니다. 대상 데이터의 무결성 보장 적시성과 정확성.

3.6 능력 데이터 복제 요약

NineData 데이터 복제의 설계 목표는 Any Where, Any Data, AnyTime 서비스 고객의 데이터 흐름 시나리오입니다. 현재 주류 데이터 소스는 상대적으로 완전하고 호환 가능하며 다양한 복잡한 네트워크 환경에 적응하고 VPN, 전용 회선, 요새 호스트, 클라우드 공급업체 VPC 및 개인 네트워크 액세스 등에 깊이 적응하고 SaaS 서비스 또는 전용 클러스터를 통해 고객에게 서비스를 제공할 수 있습니다. . 데이터 보안 및 복제 안정성 확보

04 일반적인 사용자 사례

4.1 국영 클라우드 고객

대규모 국유 클라우드 데이터 복제, 고객은 전국 30개 이상의 지역을 보유하고 있으며 동기화해야 할 데이터가 많으며 동시에 고객에게 데이터 복제 제품도 제공해야 합니다. 예를 들어, 이 클라우드의 고객은 다른 클라우드 공급업체 또는 자체 구축 시스템에서 마이그레이션합니다. 여기에는 클라우드로의 마이그레이션, 클라우드 간 마이그레이션, 지역 간 마이그레이션, 데이터 재해 복구, 원격 다중 활성 및 기타 비즈니스 시나리오와 같은 복잡한 애플리케이션 시나리오가 많이 포함됩니다. 또한 매우 복잡한 네트워크 환경, 지역 내/지역 간, 다른 클라우드 공급업체와 고객 소유 시스템 간의 다양한 링크에 직면해 있습니다. 고객은 시중에 나와 있는 주류 클라우드 벤더와 데이터 복제 벤더의 솔루션을 살펴본 후 나인데이터를 선택했습니다.

4.2 국경 간 전자상거래 기업

국경을 넘는 전자상거래 기업은 NineData를 통해 실시간 데이터 웨어하우스를 구현하여 운영 분석 및 의사결정을 안내합니다. 고객의 분석 및 운영 활동은 ClickHouse를 기반으로 합니다. MySQL 생산은 일본, 한국 등 전 세계에 분산되어 있으며, 다양한 곳의 온라인 데이터를 국내 ClickHouse로 집계하여 통일된 분석과 운영 의사결정을 수행합니다. 이 과정에서 그는 당사의 NineData 복제 제품을 사용했는데 NineData는 지역 간 복제에 몇 가지 장점이 있습니다. 우리의 구문 분석 모듈, 읽기 모듈 및 쓰기 모듈은 서로 다른 위치에 배포할 수 있으며 구문 분석 모듈은 사용자의 소스 끝에 가까울 수 있으며 쓰기 끝은 사용자의 대상 끝에 가까울 수 있으므로 전반적인 성능이 더욱 최적화됩니다.

4.3 대규모 부동산 기업

대규모 부동산 회사는 NineData를 사용하여 통합 데이터 관리를 실현합니다. 이 회사는 대규모 데이터베이스를 보유하고 있지만 개발 프로세스에는 ISV나 타사 소프트웨어 개발 공급자와 같은 많은 파트너가 참여합니다. 따라서 데이터 소스에 대한 액세스 제어를 이러한 파트너에게 위임해야 합니다. 기존의 수동 관리 과정에서는 권한 관리가 매우 복잡해지고 과정이 번거로워 통일된 관리가 어렵습니다. 이를 위해 나인데이터는 데이터 소스의 통합 관리를 위한 솔루션을 제공합니다. 이 솔루션을 통해 기업의 모든 데이터 소스를 통합 관리하며, 개발자의 계정 초기화, 권한 적용, 데이터 개발 프로세스의 시각화 등이 모두 최적화되어 개발 효율성과 협업 효율성이 크게 향상됩니다. 

마지막으로 NineData는 데이터 소스 및 클라우드 공급업체와 긴밀한 협력 관계를 구축했으며 클라우드 서비스, 정보 보안 관리, 품질 관리 분야에서 여러 인증을 획득했으며 다양한 산업 분야의 선도 기업에서 널리 사용되고 있습니다. NineData는 고객에게 보다 안정적이고 지능적인 데이터베이스 서비스를 제공하여 고객이 신속하게 통합 데이터 관리를 구축할 수 있도록 지원하여 모든 사람이 데이터와 클라우드를 잘 활용할 수 있도록 하고 모든 사람이 이를 경험할 수 있도록 최선을 다하고 있습니다.

NineData는 데이터 복제, SQL 개발, 데이터 백업, 데이터 비교 등 다양한 기능을 포함하는 차세대 클라우드 기반 지능형 데이터 관리 플랫폼입니다. NineData는 선도적인 클라우드 네이티브 및 AIGC 기술을 사용하여 클라우드 및 AI 시대의 아키텍처 설계를 위한 지능형 데이터 관리 플랫폼을 제공합니다. 크로스 클라우드와 로컬 IDC의 원활한 통합을 지원하는 업계 최초의 플랫폼으로 고객이 클라우드로의 데이터 마이그레이션, 클라우드 간 데이터 실시간 전송, ETL, 데이터 백업, 엔터프라이즈 수준 지능형 SQL 개발을 쉽게 완료할 수 있도록 지원합니다. , 데이터베이스 개발 사양, 생산 변경, 민감한 데이터 관리 및 기타 기능을 통해 고객 데이터를 보다 안전하고 효율적으로 사용할 수 있습니다.

추천

출처blog.csdn.net/NineData/article/details/132597836