2014-02-28 5 views
0

전체, 정보가 필요합니다.주 창고에 실시간으로 데이터를 업데이트하는 방법

영업 활동을 위해 여러 위치에 상점이 있으며 클라이언트 서버 앱을 사용합니다. 판매 데이터가 모든 상점에 설정된 데이터베이스에 저장됩니다. @ 일일 - 일괄 처리로 모든 상점 위치에서 데이터를 가져오고 기본웨어 하우스 데이터베이스를 업데이트합니다.

우리는 실시간 구현을 원하므로 모든 상점이 변환 될 때마다 데이터가 즉시 기본웨어 하우스 저장소로 업데이트됩니다.

주웨어 하우스에 실시간으로 데이터를 업데이트 할 수있는 방법에 대한 단서가 있습니까? 사전에

감사합니다 ...이에

+0

용 SQL Server 버전 2005-2008 ['Sql Server Replication'] (http://technet.microsoft.com/en-us/library/ms151198.aspx)을 사용할 수 있으며 SQL Server 2012가있는 경우 [ 'AlwaysOn Availability Groups'] (http://technet.microsoft.com/en-us/library/hh510230.aspx) 옵션이 있습니다. 다른 옵션은 ['Database Mirroring'] (http://technet.microsoft.com/en-us/library/ms189852.aspx)이지만 SQL Server 2014에서 사용되지 않으므로 제안하지 않았습니다. –

답변

0

한 가지 방법이 복제이라고합니다. SQL Server에서 여러 가지 방법으로이를 수행 할 수 있습니다. 아마도 트랜잭션 복제 또는 병합 복제를 찾고있을 것입니다.

Here's a place to start SQL Server 2012 설명서 여기에 도움이 될만한 a fairly recent overview이 있습니다.

+0

의견을 보내 주셔서 감사합니다. 나는 1 개의 쿼리를 가지고있다. 예를 들어, 트랜잭션 복제가 발생하면 그 순간에 어떤 트랜잭션이 진행되고 있는지를 알 수 있습니다.이 시나리오는 자동으로 처리됩니다. 아니면 우리가 끝까지 조치를 취해야합니까? – Amit

+0

위 질문에 대한 답변을 얻었습니다. 감사합니다. – Amit

0

"실시간"의 의미와 실제로 필요한 실시간을 이해해야합니다. 데이터를 미리 집계하지 않고 WH에 저장하는 경우 데이터베이스 서버간에 서로 replication을 설정할 수 있어야합니다 (대화가 가능한 경우). 집계를로드하는 경우 측정 값 (사실)을웨어 하우스의 기존 측정치로 병합해야하기 때문에 까다로워집니다. 진정한 실시간, 느린 속임료가 필요하지 않다면 SQL 에이전트의 일정에 따라 현재 프로세스를 단순히 실행하는 것을 고려하십시오.

0

먼저 꺼짐 - 하루에 여러 번 배치를 실행하지 않는 이유는 무엇입니까? 실제로 "실시간"이 아니지만 실제 결과가 충분히 나타날 수 있습니다.

하나의 옵션은 사용중인 SQL 엔진에서 제공하는 마스터 - 마스터 복제를 구현하는 것입니다. 이것은 아마도 중복 ID, 자동 증가 불일치 등을 방지하기 위해 취해야 할 단계가 있음을 의미합니다. 예를 들어 홀수 ID와 짝수 ID가있는 항목을 생성하도록 마스터 마스터 시스템을 설정했습니다.

또 다른 접근법은 모든 읽기가 로컬 데이터베이스에 대해 수행되고 모든 쓰기가 단일 원격 마스터로 수행되는 것입니다. 데이터는 마스터 - 슬레이브 설정으로 복제됩니다. 이것은 최상의 데이터 일관성을 제공하지만 느린 네트워크는 모든 쓰기를 느리게 만듭니다. 대부분의 상호 작용은 읽기이므로 마스터 - 마스터 복제의 상단에 이러한 종류의 설정이 구현되어 있습니다.

하나의 실제 사용 사례 나는 Firebird SQL을 기반으로 비슷한 매장/창고 설정을 실제로 발견했습니다. 모든 단일 테이블에는 로컬 데이터베이스의 모든 작업을 로그 테이블에 저장하기 위해 구현 된 트리거가있었습니다. 정기적으로이 로그 테이블을 확인하고 데이터를 원격 데이터베이스로 업데이트하고 원격 테이블 (자체 로그 테이블이있는)에서 새 데이터를 가져 오는 복제 응용 프로그램이 항상있었습니다. 하지만 데이터베이스 설정에서 변경된 사항과 복제 응용 프로그램이 때때로 실패/정지 할 때 업데이트해야하는 트리거가 있으므로 유지 관리가 어렵다는 단점이 있습니다. 그러나 데이터 일관성은 양호하게 유지되었으며 로컬 데이터베이스에 대해 사용 된 음수 ID 및 마스터/원격에 대한 양수 ID로 해결되었습니다. 그러나 결국 그것은 실제로 "실시간"을 제공하지 못했습니다.

결국에는 단 구두 맞추기가 전혀 없으며 해당 주제에 대한 책을 쓸 수 있습니다. 연구와 Google은 당신의 친구입니다.

관련 문제