3

저는 푸른 하늘 프로젝트를 연구하는 인턴입니다.
현재 프로젝트의 일부로 아키텍처를 고안하고 있습니다.Microsoft 푸른 하늘을위한 아키텍처. CSV to SQL

목표는 여러 csv 파일을 클라우드의 SQL 데이터베이스로 변환하는 것입니다. 이 csv는 국가의 임의의 위치에서 전송되며 처리되어야하므로 웹 서비스를 사용하여 데이터베이스에 액세스 할 수 있습니다.

나는 푸른 색의 장면을 처음 접했고 나 자신을 가르쳐왔다. 그러나 내 머리 속에는 조금 흐릿 해 보인다.

약간의 정보 :

csv로의의이 작은 파일 만 약 20.000 이 예는 우리가 쉽게 데이터를 집계해야하기 때문에 SQL 저장을 할 필요가 매일 수신 할 수있다.

csv에 저장 될 내용은 무엇입니까 ??
고유 키 값 (문자열)
소비 값 (더블)
날짜 시간 스탬프 (날짜/문자열)
품질 값 (int)를

내가 생각했던 아키텍처는 다음과 같습니다
HTTP를 클라우드 (구름이 리스너 서비스가 필요합니까?)가
는 SQL 드라이브 저장 (직접 가져 오기를 처리? 또는 작업자 역할의 어떤 종류가 필요합니까 전에 CSV 년대를 보유하고
큐 서비스 요청 나는 n 사이?)
sqlDB의 데이터를 쿼리하여 외부 AOS 또는 클라이언트 응용 프로그램으로부터 요청을받을 웹 서비스입니다.

이 문제는 표준 구성 요소로 해결할 수 있다고 가정 할 때 또는 VM 역할을 구현해야합니까? 이걸 어떻게 세우 겠어?

난 정말 내가 요구 사항의 명확한 개요를 준 희망
구름 :) 손실 느낌 때문에 모든 입력이 훨씬 쉽게 뭔가를 설명 아니에요
완전히 자신에게

을 파악하지 ... 주시면 감사하겠습니다

답변

3

VM 역할이 전혀 필요하지 않습니다.

  • csv 파일을 쉽게 올릴 수있는 웹 서비스를 설정합니다 (svc가있는 웹 역할에서 쉽게 할 수 있음). 해당 서비스 메소드가 "cssv"와 같은 특정 컨테이너 (예 : "업로드")의 Azure Blob에 각 csv를 저장하도록하십시오. Guid.NewGuid()를 호출하십시오. ToString()을 사용하면 즉시 guid를 생성 할 수 있습니다. . 완료되면 해당 파일 이름을 참조하는 대기열 메시지를 작성하십시오.
  • svc를 호스팅하는 동일한 역할 인스턴스 (Run())를 오버라이드하거나 별도의 작업자 역할에서 Run() 메서드를 사용하면 csv를 얻기 위해 대기열에서 읽는 while (true) 루프를 설정합니다. 가져 오기 필요, blob을 메모리 스트림으로 읽고 디스크의 임시 파일로 덤프 한 다음 csv를 구문 분석하고 SQL 삽입을 호출하는 로컬 도우미 메서드를 호출하는 것입니다.
  • 데이터 검색을위한 다른 웹 서비스를 설정하십시오. 다시 말하지만, 이것은 동일한 웹 역할 또는 다른 웹에서 호스팅 될 수 있습니다.

VM 역할은 절대 필요하지 않습니다.

+0

SQL이 SQL Azure로 이동한다고 언급하지 않았지만 VM 호스트 SQL Server 설치는 아닙니다. SQL Azure는 SQL Server의 상당 부분 집합이므로 수행중인 저장소 유형에 사용할 때 아무런 문제가 없어야합니다. –

+0

안녕하세요, 답장을 보내 주셔서 감사합니다! 어제 오후에 설치에 대해 생각해 보았는데 회신에 나와있는 것과 거의 비슷하게 나왔습니다. 충분히 튼튼 해 보일 정도로 나는 그것에 가야 할 것이고, 내가 곤경에 처하게되는지 안다. blob 저장소를 건너 뛰고 작업자 역할로 CSV를 검색하여 대기열에 직접 저장할 수 있는지 궁금합니다. (CSV가 최대 8KB를 초과하지 않을 것이므로) 다시 입력을 좋아합니다! tx – peanut

+0

당신은 대기열에 보관할 수 있고 얼룩 저장 장치를 건너 뛸 수 있습니다. 그러나 나중에 제한 할 수 있습니다. 특히 CSV를 다시 검사 (예 : 다른 방법으로 다시 처리하려는 경우)하는 경우에 특히 그렇습니다. blob 기술을 고수하면 여러 큐 메시지를 한 번에 읽을 수 있습니다. CSV를 메시지와 함께 저장하면 그 능력을 제한하게됩니다. –

0

BCP (대량 복사)를 사용하여 데이터를 SQL Azure로 직접 가져올 수없는 이유가 있습니까? BCP는 CSV 파일을 지원하므로이 도구를 사용하여 매일 데이터를 가져 오는 매우 간단한 프로세스를 만들 수 있습니다. 이렇게하는 경우 optimize the load of the data 수있는 방법 중 일부를 읽었는지 확인하십시오. 대용량 데이터 세트를 사용하면 이러한 변화가 실제로 발생할 수 있습니다.

+0

뛰어난 링크를 가져 주셔서 감사합니다. 내가 대량 복사를 사용할 수없는 이유는 CSV 파일을 보내는 인스턴스를 제어하지 않기 때문입니다. 이들은 정기적으로 데이터를 보내는 고정 포인트입니다 (미안하지만 이것에 대해 자세히 알 수는 없습니다 :)) – peanut