문제

SOAP, REST Services 또는 데이터베이스 저장 절차를 사용하여 여러 내부 및 외부 소스와 대화하는 응용 프로그램이 있습니다. 분명히 성능과 안정성은 제가 다루는 주요 문제입니다. 엔드 포인트가 최선을 다하면 큰 데이터 세트의 경우 10 초가 걸리는 통화를 쉽게 볼 수 있습니다.

따라서 데이터를 프리 페치하고 로컬로 저장하여 응용 프로그램의 성능을 향상 시키려고 노력하고 있습니다.

내 애플리케이션은 주요 소비자이자 데이터 생산자이지만 일부 데이터는 내 응용 프로그램 외부에서 변경할 수있어 제어 할 수 없습니다. 캐싱을 사용하는 경우 해당 데이터가 응용 프로그램 외부에서 변경 될 때 언제 캐시를 무효화 해야하는지 알 수 없습니다.

따라서 내 유일한 옵션은 데이터베이스를 지속적으로 업데이트하는 작업 스케줄러를 실행하는 것입니다. 사용자가 얼마나 자주 로그인하고 응용 프로그램을 사용하는지에 따라 사용자의 우선 순위를 정할 수 있습니다.

나는 5 만 명에 대해 이야기하고 있으며, 최소한 10 개의 엔드 포인트가 몹시 느리고 때로는 단일 통화에 1 분이 걸릴 수 있습니다. 석영과 같은 것이 내가 필요한 규모를 줄까요? 그리고 어떻게 일정이 단일 실패 지점이되는 지점을 둘러 볼 것인가?

나는 높은 유지 보수가 필요하지 않은 것을 찾고 있으며, 적어도 덜 복잡한 서브 시스템 중 일부는 대부분이 아니라면 속도를 높이고 있습니다. 제안이 있습니까?

도움이 되었습니까?

해결책

데이터웨어 하우스가 필요한 것처럼 들립니다. 필요한 일정에 따라 다양한 출처에서 데이터웨어 하우스를 업데이트합니다. 그러나 모든 읽기 전용 트랜잭션은 데이터웨어 하우스에서 나오며 다양한 외부 소스에 대한 즉각적인 호출이 필요하지 않습니다.

이것은 최신 데이터에 대한 실시간 액세스가 필요하지 않다고 가정합니다. 특정 소스에서 지난 1 시간 내에 정확한 데이터가 필요하더라도 해당 소스에서 매 시간마다 업데이트하면됩니다.

어떤 플랫폼을 사용하고 있는지 말하지 않았습니다. SQL Server 2005 이상을 사용하는 경우 데이터웨어 하우스를 업데이트하기 위해 SQL Server Integration Services (SSIS)를 권장합니다. 그것은 이런 종류의 일을 위해 만들어졌습니다.

물론 플랫폼 선택에 따라 더 적절한 대안이있을 수 있습니다.


다음은 SSI 및 데이터웨어 하우스에 대한 몇 가지 리소스입니다. Microsoft 제품을 사용하지 않을 것이라고 말합니다. 나는이 링크를 참조 지점으로 포함시킨다 : 이것들은 내가 위에서 이야기했던 제품이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top