2013-07-14 6 views
0

데이터 흐름에서 웹 서비스를 쿼리하는 스크립트 구성 요소를 사용하여 데이터를 가져옵니다. 출력은 고객의 지불 테이블입니다. 무엇보다도SSIS 2012 : 각 그룹별로 행 가져 오기

| PaymentId | CustomerId | Amount | PaymentDate | 
| 2   | 1   | 10  | 01/01/2009 | 
| 5   | 1   | 15  | 08/07/2013 | 
| 1   | 2   | 20  | 05/08/2007 | 
| 3   | 2   | 18  | 07/03/2011 | 
| 6   | 2   | 32  | 02/09/2013 | 
| 4   | 3   | 70  | 04/06/2012 | 
| 7   | 3   | 61  | 02/03/2013 | 

, 나는 고객 당 행 다음 필터링 할 수 있습니다

  • 가장 많은
  • 작은 양
  • 첫 번째 지불
  • 을 함께 지불과 지불 가장 최근 지불액

그리고 각각에 대해 나중 처리를 위해 PaymentId, CustomerId, Amount 및 PaymentDate가 필요합니다.

CustomerId에 의해 그룹화 된 Aggregate Transforamtion을 사용하고 적절한 Min/Max 함수를 사용하여 요청 된 VALUES를 얻는 방법을 알고 있습니다.

하지만 완벽한 ROWS를 얻는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다.

답변

1

데이터 원본이 SQL 데이터베이스 인 경우 SSIS를 사용하기 전에 SQL로 수행 할 수있는 작업을 수행하십시오. 이것은 일반적으로 최상의 성능을 제공합니다.

그렇지 않으면 웹 서비스의 데이터를 RAW 파일로 내보내는 것이 좋습니다. 원시 파일은 준비된 변환을 수행하기위한 준비 데이터에 유용합니다. more on RAW files

+0

현재 SQL Server 데이터베이스에 액세스 할 수 있지만 나중에 ISV에서 호스팅되는 버전으로 마이그레이션 할 때 변경 될 수 있습니다. 그렇다면 webservice-api를 통해서만 접속할 수 있습니다. 따라서 데이터베이스에 대한 직접 액세스와는 별도로 ETL을 설계하여 성능 저하를 허용하려고합니다. –

+0

죄송합니다. 질문의 마지막 부분에 초점을 맞추었고 웹 서비스를 언급 한 첫 번째 문장을 잊어 버렸습니다. 또 다른 길은 웹 서버에서 데이터를 추출하여'RAW' 파일에 넣는 것입니다. RAW 파일은 여러 변형 작업을 수행하는 동안 데이터를 준비하는 데 매우 편리합니다. [원시 파일에 대한 정보에 대한 링크] (http://www.jasonstrate.com/2011/01/31-days-of-ssis-raw-files-are-awesome-131/) –

+0

귀하의 요점 : 나는 웹 서비스에서 검색된 데이터를 RAW 파일에 넣은 다음이 파일을 데이터 흐름 소스로 사용합니다. 그런 다음이 파일에 대해 적절한 SQL 문을 작성하여 필요한 행을 가져올 수 있습니다. 내 경험에 대한 가장 효율적인 해결책이 있다면 그것을 시도해 보겠습니다! –