1

Azure blob 저장소에서 시간당 약 65000 개의 작은 xml 파일 (파일 당 약 1-3kb)이 있습니다. 그것의 원격 측정 데이터는 매 시간마다 얼룩이있을 것입니다. 나는 그들 모두를 결합하고 커다란 XML 파일 (시간당 하나의 파일 정도)을 만들고 그것을 커다란 csv 파일로 변환하고 싶다. 하늘색 데이터 호수 저장소에 그것을 복사하고 싶다. 그래서 나는 U를 사용하여 분석을 더 할 수있다. -SQL 스크립트. 이 작업을 수행하는 올바른 방법이 무엇인지 말해주십시오.BLOB 저장소에있는 65000 개의 작은 xml 파일을 결합하여 큰 CSV 파일로 데이터 호수에 복사하십시오.

지금 우리는 Azure 테이블 저장소에 모든 파일 이름을 유지함으로써이 작업을 수행하는 azure 배치 서비스를 사용하고 있으며 배치 서비스의 각 작업은 테이블 저장소에서 데이터를 읽고 완료되면 업데이트합니다.

우리는 웹 작업 SDK 및 Azure 서비스 버스 (주제 및 구독)를 사용하여 이보다 더 잘할 수 있다고 생각합니다. 매 시간마다 한 주제와 한 가입자를 고려할 수 있습니다.

내 생각이 정확하다는 것을 알려주거나 더 나은 기술로이 작업을 수행 할 수 있습니다.

답변

1

제 의견으로는 웹 작업에서 xml 파일을 csv로 직접 변환하여 변환 할 수 있습니다 (데이터가 크지 않음). 작업이 끝나면 변환 된 파일을 데이터 레이크 저장소에 업로드 할 수 있습니다.

그러나이 방법을 사용하면 실시간으로 데이터 레이크 저장소에 데이터를 업로드 할 수 없습니다.

데이터를 결합하고 변환하는 데 도움이되도록 하늘색 웹 작업 timer trigger (매 시간 변환 코드 실행)을 사용할 수 있습니다.

데이터를 실시간으로 유지하려면 먼저 웹 버스 (blob trigger 사용)를 사용하여 데이터를 서비스 버스에 먼저 읽은 다음 스트림 분석을 사용하여 데이터를 데이터 저장소의 CSV로 변환 할 수 있다고 제안하십시오. 호수.

+0

BLOB 트리거가 이러한 많은 새로운 작업을 처리합니까? 초당 약 20 새로운 얼룩? –

+0

이제 BLOB 트리거를 즉시 시작하지 못했습니다. 즉시 해고하고자하는 경우에는 [Azure Service Bus Trigger] (https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service- 버스). –

+0

잠시 후 발사하면 괜찮습니다. 그러나 나는 Azure 함수가이 하중을 처리하는 방법에 대해 더 걱정하고있다. 내 지식에 따라 각 하늘빛 함수는 모두 새로운 VM을 시작하고 해당 VM에서 코드를 실행합니다. 그래서 제 경우에는 - 그것은 시간당 65000 개의 VM을 시작합니까? 또한 작은 VM을 csv로 변환하고 데이터 레이크 저장소에 업로드하려는 경우 각 VM에 대해 너무 많은 작업을 수행하지 않습니다. 그것은 의미가 있습니까? 나는 Azure Function이 어떻게 작동하는지에 대한 많은 지식이 없다고 생각한다. 이 점을 이해하도록 도와주세요. –

관련 문제