programing

대규모 SQL에서 MongoDB로의 전송?

starjava 2023. 9. 19. 20:40
반응형

대규모 SQL에서 MongoDB로의 전송?

현재 SQL에서 MongoDB로 100만 개 이상의 레코드를 전송하는 과정에 있습니다(완전히 다른 스키마로).

SQL의 여러 테이블에서 데이터를 읽고 이를 하나의 새로운 MongoDB 문서에 복사하여 업로드하는 Java 애플리케이션을 코딩했습니다. 이는 매우 효율적이며 애플리케이션은 리소스를 거의 사용하지 않습니다.

그러나 전송해야 하는 레코드가 약 백만 개에 달하며 다운타임을 최소화하기를 원하기 때문에(전송 중 24시간 다운타임은 허용할 수 없음) 애플리케이션을 다중 스레드화할 수밖에 없습니다.약 200개의 스레드(각각 3개의 쿼리를 수행하여 하나의 BSON 문서를 컴파일함)로 실행되는 SQL은 100% cpu 사용으로 빠르게 최고치를 달성하고 새로 생성된 스레드를 차단합니다.

질문:이처럼 CPU 사용량이 많은 것을 방지하는 가장 좋은 방법은 무엇입니까?

우리는 이미 필요한 모든 것에 인덱스를 사용하고 있으며, 가장 느린 SQL 쿼리는 일반적인 SQL 서버 성능 중에 0.0005ms로 실행됩니다.

SQL의 전원을 끄려고 하는데 공유하기가 아깝고, 스레드의 양을 줄이는 것은 실제로 선택 사항이 아닙니다.테이블 전체를 몽고로 전송한 다음 스키마로 전송하는 것이 가능한 대안이 될 수 있습니까?(CPU 병목 현상을 방지하기 위해) SQLLite로 전환하여 모든 SQL 데이터를 가져오는 것은 어떻습니까?

도와주셔서 감사합니다!

언급URL : https://stackoverflow.com/questions/22135507/large-sql-to-mongodb-transfer

반응형