an architecture과 몇 가지 지속성 하이브리드 아키텍처가 있습니다. 누군가가 구현 수준, 상세한 기사, MongoDB를 (또는 카산드라, CouchDB를) 함께와 MySQL (모든 RDBMS) (A PHP를 들어, Java 응용 프로그램)하이브리드 SQL 및 MongoDB 솔루션
답변
나는 현재 일할 때 어떻게했는지에 대해 몇 가지 정보를 공유 할 수 있습니다.
관계형 매장은 기존 시스템으로 간주됩니다. 그들은 권한있는 엔티티를 가지고 있으며 우리는이 데이터를 MongoDB로 이동하여 읽습니다. 앞으로 우리는 관계형 시스템 대신에 MongoDB에 대한 글쓰기를 원합니다. - 우리가 삽입에 대한 감시의 MySQL의 테이블, 업데이트에 트리거를 설정 트리거 및 저장 프로 시저이 방법에 대한
를 사용하여 DR, MongoDB를 (특히 워드 프레스)TL MySQL에서 데이터를 이동
삭제합니다. 이러한 작업 중 하나가 발생하면 엔티티를 생성하고 대기열 역할을하는 테이블에 저장 프로 시저를 실행합니다.
그런 다음 외부 프로세스를 사용하여 몇 초마다 해당 테이블을 폴링했습니다. 우리는 동일한 대기열 항목을 두 번 이상 처리하지 않도록 저장 프로 시저를 작성했습니다.
외부 프로세스 (Mule ESB 플로우)는 대기열 테이블에서 데이터를 읽은 스토어드 프로 시저의 결과에 대해 약간의 변형을 수행 한 다음이를 MongoDB에 전달합니다.
Wordpress 백엔드에서 출판 한 후 MongoDB에서 Wordpress 게시물을 JSON 문서로 보는 데 2 초 정도 걸릴 수 있습니다. MongoDB를에 SQL 서버에서 데이터를 이동
(접근 1)
내가 사용했던 첫 번째 방법은 XML을 생성 저장 프로 시저를 작성하는 것입니다. XML 구문은 TSQL에서 약간 어색하지만 작업이 완료됩니다. 좋은 점은 XML 구조를 임의로 깊게 만들 수 있다는 것입니다.
일단 XML을 생성하면 XML을 JSON으로 변환하는 툴을 작성하기 위해 홉 건너 뛰기 및 건너 뛰기가됩니다. 그런 다음 외부 프로세스 (다시 Mule을 사용했습니다)에서 XML 결과를 가져 와서 JSON으로 변환 한 다음 MongoDB에 쓸 수 있습니다. MongoDB를에 SQL 서버에서 데이터를 이동
(접근 2)
이 방법은 SQL 서버의 CLR 기능/저장 프로 시저로 배포 된 비주얼 스튜디오에서 C# 프로젝트를 작성하고있었습니다.
코드를 작성하기가 쉽고 서버에서 매우 빠르게 실행되기 때문에 이것이 가장 선호하는 방법입니다. CLR 함수를 사용하여 결과를 serialize 한 다음 임시 테이블에 저장하거나 저장된 프로 시저에서 결과를 반환 할 수도 있습니다.
잠재적으로 JSON 시리얼 라이저를 포함하여 코드를 프로덕션 SQL Server 상자에 배치하도록 DBA를 설득하는 것이 어려울 수 있지만 장점은 뛰어납니다. 또한 XML 접근 방식보다 훨씬 뛰어납니다.
굉장한 게시글, trigers 기반 접근 방식에 대해 더 많은 정보를 공유 할 수 있습니까? mongo에서 oplog tailing과 결합 할 때 어느 정도 이것을 일반화하고 1 : 1 미러를 만드는 것이 나에게 비쌉니다. 어떤 문제가 있니? – meawoppl
결혼하는 방법을 보여줍니다 튜토리얼에 대한 링크가있는 경우
이 궁금해 PHP 또는 Java 응용 프로그램은 객체 (엔티티)를 중심으로 구축됩니다. 엔터티의 역할 및 사용 모델 (지속 및 검색 빈도)에 따라 적합한 데이터 저장소를 선택해야 할 수 있습니다. 예를 들어 RBDMS의 사용자 ID 암호, mongodb와 같은 문서 지향 DB의 액터 개체 (문서, 음악, 블로그 게시물 등)를 유지할 수 있으며 파일 시스템 계층 구조와 같이 자주 사용되는 작은 개체를 그대로 유지할 수 있습니다. 모두 아키텍처에 달려 있습니다. 바로 사용할 수있는 프레임 워크가 없습니다.
Marry? 한 시스템에 다른 ID/ID를 나타내는 ID를 저장하십시오. 그 외에도, 요구 사항, 플랫폼, 프레임 워크 및 선택한 언어가 매우 관례입니다. – WiredPrairie
결혼 할 때, 나는 같은 애플리케이션이 관계형과 비 관계형을 다르게 사용한다는 것을 의미했다. –