저는 응용 프로그램의 프로토 타입을 작성하는 작업을 받았습니다. 내가 함께 왔어요 솔루션 개념 가장에서 냄새 나는 것 같은 나는 ... 아직 코드가없는WPF 응용 프로그램에서 Azure blob 데이터를 많이로드합니다.
문제 :
솔루션이 물건을 할 다양한 푸른 프로젝트 구성 Azure SQL db-s에 저장된 많은 데이터. 거의 모든 작업을 수행하면 blob 저장소에 gzip 된 로그 파일이 생성됩니다. 로그 엔트리 당 하나의 .gz 파일입니다.
또한 이러한 로그 파일을 읽고 필터링하고 정렬 할 수있는 소형 데스크톱 (WPF) 앱이 있어야합니다.
로깅이 수행되는 방식에 영향을주지 않으므로이 문제를 해결하기 위해 변경할 수 없습니다. 나는 (개념)와 함께 왔어요
가능한 해결책 :
1 :
- 는
- 컨테이너를
- 읽기/다운로드를 열 BLOB 저장소에 연결 얼룩 (필터 적용)
- .gz 파일 압축 해제
- 읽기 및 표시
이의 문제 필터에 따라,이 전체 (느린)를 다운로드 할 데이터의 많은 및 프로세스 (매우 물어되지 않습니다 의미 할 수 있다는 것입니다). 난 정말이 응용 프로그램으로 볼 수 없습니다.
2 :
- 서비스가 필터 PARAMS 및 기타 물건을 데이터와 함께 하나의 XML/JSON 파일을 반환합니다
- 은 WCF 또는 REST 서비스를 실행하는 웹 역할을 만들 처리가 클라우드에서 수행됩니다.
이러한 접근 방식을 사용하면 이러한 파일의 압축을 풀 때 문제가 발생할 수 있습니다 (저장소/계산 인스턴스에서 여분의 공간을 차지할 것입니다. 그는 서비스가 실행 중입니다.)
편집 : 필터가 의미하는 것은 결과를 날짜와 심각도 (정보, 경고, 오류)로 제한하는 것입니다. .gz 파일은이 작업을 매우 쉽게 해주는 구조로 저장되며 파일 자체를 조사하여 필터링하지 않습니다.
3 :이
- 내가
의 모르는 다른 우아하고 간단한 해결책이 나는 또한 앱에서 실시간으로 표시되는 로그를 업데이트 만드는 방법이 필요 것 시간, 나는 blob 저장소/서비스에 대한 반복 된 요청으로 수행해야 할 필요가 있다고 가정합니다.
이것은 "코드 제공"질문 중 하나가 아닙니다. 모범 사례에 대한 조언이나 이와 유사한 문제를 해결하는 유사한 솔루션을 찾고 있습니다. 또한 사람들이 문제에 대한 접근 방식이 다르기 때문에 이것이 "아무도 맞지 않는 질문"중 하나 일 수 있음을 알고 있지만 프로토 타입을 제작할 시간이 있으므로 다른 것들을 시도 할 것입니다. 대답은 실제로 효과가있는 솔루션을 보여준 것이거나, 올바른 방향으로 나를 조종 한 솔루션 일 것입니다. 실제로 뭔가를 구축하고 테스트하기까지는 시간이 걸릴 수도 있습니다.
나에게 명확하지 않습니다. "로그 항목 당 하나의 .gz 파일"단일 마스터 로그가 있습니까? 이러한 .gz 파일을 조사하지 않고 필터링을 수행하려면 어떻게 필터링합니까? – Paparazzi
응용 프로그램은 Logger.Log (심각도, "메시지")와 같은 것을 호출합니다. 이러한 각 호출에 대해 "severity-date.gz"와 같은 파일 이름으로 새 파일이 작성됩니다 (이름에 더 많은 데이터가 있지만이 경우에는 관련이 없습니다). – Pinetree
아직도 명확하지 않습니다. .gz 파일 이름만으로 필터링한다고 말하고 있습니까? 따라서 Logger 앱을 제어 할 수 없습니까? Logger.Log에 대한 호출을 제어 할 수 있습니까? – Paparazzi