programing

.Net 대 SSIS:SSIS는 무엇에 사용되어야 합니까?

elecom 2023. 6. 27. 21:41
반응형

.Net 대 SSIS:SSIS는 무엇에 사용되어야 합니까?

▁▁using▁option있는▁i▁if▁the▁have를 사용할 수 있는 옵션이 있다면,.Net데이터를 수행할 수 있습니다.transformations주 서 필 네 까 요 할 요 언 쯤 트 제 에 어 ▁would ? 필 까 ▁just ▁. 요 할 요 ▁in , ▁when ▁fine 언 에 net 쯤 ▁iSSIS다음과 같은 작업이 있습니까?SSIS그것이 더 나을까요?투명성의 추가적인 이점은 가치가 있습니까?그것이 내가 더 편안한 것입니까?이를 결정하기 위한 최상의 방법은 무엇입니까?

좋은 질문입니다.

데이터 전송량이 방대한 경우여러 데이터 파일을 처리하고 있는데 트랜잭션(파일 시스템 레벨과 데이터베이스 레벨 모두)이 필요합니까?서로 다른 위치(예: ftp, 로컬 파일 시스템, 데이터베이스)에서 여러 데이터 소스를 처리하고 있습니까?

위의 답변이 예라면 ssis를 진행하십시오. 기본적으로 .net은 작은 데이터 가져오기/내보내기 작업으로 멋지지만, 더 복잡한 것이 있을 때 ssis는 확실한 승자입니다.

내가 보는 또 다른 것은 - ssis 내에서 모든 것을 사용할 수 있을 때 .net 코드를 작성할 가치가 있느냐는 것입니다.(아마도 나의 실수 - 나는 코딩을 사랑한다) 하지만, 당신이 코딩하는 것은 무엇이든, 당신은 유지해야 합니다 :-)

프로젝트 시간/예산 제약과 표준 도구 사용이 SSIS를 사용하는 가장 큰 이유 중 하나라고 생각합니다.SSIS 패키지를 만드는 것은 대부분의 경우 .NET에서 유사한 것을 코딩하는 것보다 훨씬 빠릅니다.

하지만 그것이 말해주듯이, SSIS는 때때로 이 주장을 무효화할 수 있는 많은 문제점을 가지고 있는 것처럼 보입니다.다양한 고객의 다양한 환경에서 실행해야 하는 솔루션을 개발할 때 도움이 되었습니다. 프로젝트를 위해 SSIS를 평가하면 할수록 SSIS는 너무 힘들어 보였습니다.적절하게 설계된 .NET 솔루션은 구현하기 쉽고, 안정적이며, 유연하고, 이해하기 쉬우며, 매우 우수한 성능을 달성할 수 있습니다.

IMHO: 하나 또는 두 개의 사내 SQL 서버 환경에만 배포해야 하는 프로젝트에 SSIS를 사용하는 것을 고려해 보십시오.그렇지 않으면 .NET 접근 방식이 빠르게 더 매력적이 될 것입니다.

SSIS를 사용하지 않는 것에 대한 나의 주장은 다음과 같습니다.

  • 보고 및 추출을 위한 RESTful 데이터 피드가 프로젝트 계획 및 예산, 특히 OData와 같은 표준에 내장되어 다른 도구가 바로 연결될 수 있도록 그린필드 제품을 설계합니다.

  • 데이터 피드는 업스트림 시스템과 피드에서 가져와 필요에 따라 변환해야 합니다. 따라서 스케줄링된 작업, 스케줄링된 작업 구성, 작업 실행자 VM 및 이 모든 신뢰할 수 없는 스케줄링 작업을 실행하는 직원이 무시됩니다.

  • RESTful 데이터 피드는 HTTP 캐싱을 활용합니다.

  • 피드/서비스/API는 탄력적인 규모의 클라우드로 쉽게 이동할 수 있습니다.

  • SSIS는 몇 주 동안 그런 일을 즐기는 SSIS 기술을 가진 사람들을 찾아야 합니다.제 경험에 따르면 SSIS 개발자를 찾고 유지하는 것은 어렵고 비용이 많이 들고 발견된 사람들은 평균 이하인 경향이 있습니다.

  • SSIS는 소스 제어 및 협업 작업에서 잘 작동하지 않습니다.

  • SSIS는 마이크로서비스나 전통적인 코드 라이브러리와 달리 코드 재사용에 적합하지 않습니다.

  • SSIS는 REST 서비스와 달리 버전이 쉽게 나오지 않습니다.

  • SSIS는 모듈식 설계와 많은 작은 변경 사항의 지속적인 배치에 도움이 되지 않으며, 무서운 릴리스가 포함된 대규모 배치인 경향이 있습니다.

  • SSIS는 핫 스팟인 SQL에 많은 수요를 두는 저장 프로시저의 사용을 촉진합니다.확장 가능한 상태 비저장 중간 계층에 수요를 배치하는 선호 디자인.

  • 툴링이 투박하고 신뢰할 수 없습니다.

  • 당신은 MS의 SSIS 로드맵에 좌우됩니다.

  • 데이터가 애플리케이션에 들어오는 즉시 분석, 보고 및 보기를 지원하는 테이블/서비스에 기록하는 것을 고려합니다. 이벤트 소싱 및 기타 애플리케이션 아키텍처 패턴을 참조하십시오.

  • Excel을 데이터 소스로 사용하지 마십시오. 직원을 교육합니다.

  • 코드는 왕입니다.

궁극적으로 SSIS는 엔터프라이즈 IT의 유물이라고 생각합니다.저는 "구글이 SSIS를 사용할까요?"라고 묻고 싶습니다.다른 방법으로 그 문제를 해결할 수 있습니까?틀 밖에서 생각하세요.

하는 일에 따라 다르겠지만, SSIS는 옛날 DTS처럼 매우 강력합니다.만약 당신이 많은 물건을 싣고 있고 계속해서 변화가 필요하다면, 저는 끝까지 SSIS를 할 것입니다.만약 당신이 몇 개의 아이템만 로딩하려고 한다면, 그것은 많은 고객을 위한 것이라면, 코드로 입력하겠습니다.사내 ETL 프로세스는 SSIS를 선호하지만 사용합니다.레거시 시스템에서 SQL 데이터베이스로 데이터를 로드해야 할 때 클라이언트 샵에서 Net.앞서 말씀드렸듯이, 많은 혁신과 로드해야 하는 다양한 데이터 사일로가 있다면, 이 작업을 수행하는 것은 미친 짓이라고 생각합니다.넷과 나는 SSIS로 갈 것입니다.로드할 항목이 몇 개 안 되고 단일 응용 프로그램용이며 다양한 클라이언트에서 응용 프로그램의 일부로 설치될 수 있다면 제가 가겠습니다.그물을 쭉 쳐요.내 2센트야.

저는 작은 프로젝트부터 크고 복잡한 ETL까지 SSIS에 대한 많은 경험을 가지고 있습니다.자세한 내용은 설명하지 않고 다음과 같이 안내합니다.

  • DBA이고 .NET에 익숙하지 않거나 SSIS에 상당히 익숙한 개발자라면 작고 간단한 ETL(Extract, Transform, Load) 작업에 SSIS를 사용할 수 있습니다.

  • SSIS는 매우 특이하고 많은 함정, 함정, 그리고 명백한 버그로 간주될 수 있는 것들이 있습니다.당신이 친숙하다면 그것은 매우 강력합니다.

  • 이제 C#에 TPL 데이터 흐름이 있습니다.간단한 성능 테스트를 통해 SSIS보다 우위를 점할 수 있습니다.(예: http://mymemoryleaks.blogspot.cz/2013/10/ssis-vs-tpldataflow.html) )

  • 사소한 것 이상의 작업을 수행하고 싶다면 SSIS 대신 .NET을 사용하십시오.

SSIS에는 다양한 데이터 소스에서 변환을 수행하는 여러 가지 방법이 내장되어 있으며 사용자 지정이 매우 용이한 방식으로 SSIS를 연결할 수 있습니다.이들은 신속하게 작업할 수 있는 최적화 기능을 내장하고 있습니다.

.NET을 사용하여 SSIS 작업의 속도와 반복성을 활용하기 위해 사용자 정의 변환을 수행할 수도 있습니다.

주요 장점은 전체 프로그래밍 구조를 시각적으로 정의하는 것이라고 생각합니다.SSIS 패키지를 보는 사람은 거의 자기 설명자입니다.SSIS와 SQL의 긴밀한 통합을 통해 SQL의 일부로 백업 예약을 수행할 수 있으며 그 이상의 이점을 누릴 수 있습니다.

모두가 설명했듯이 많은 데이터 조작을 하고 있다면 좋은 도구입니다.SQL을 모두 사용할 수 있고 VS 2008 BIDS로 매우 쉽게 배울 수 있는 경우 무료입니다.

이 질문에 대답하기에는 조금 늦었지만 가치가 있기를 바랍니다.

SSIS는 프로그래밍 언어와 비교할 때 종종 오해를 받습니다.SSIS는 프레임워크인 반면 C#은 .NET Framework의 언어입니다.저는 MSBI 제품군을 이용한 대형 데이터 웨어하우징 솔루션을 취급하고 개발한 경험이 풍부하며 대형 웹사이트(ASP.NET)도 개발한 경험이 있어 편견을 가질 수 없습니다.

SSIS를 제대로 사용하지 않으면 성능이 저하될 수 있습니다. SSIS 패키지에는 세 가지 변환이 있습니다.

  1. 변환 차단 - 위의 변환이 완료되고 모든 행을 가져오고 필요한 계산을 완료한 경우에만 데이터를 전달할 수 있습니다.
  2. 세미-블럭 변환 - 부분 데이터를 전달할 수 있습니다.
  3. 비차단 - 행이 준비되는 즉시 처리

SSIS는 제어 흐름 및 데이터 흐름에 대한 적절한 설정으로 비차단 변환에서 매우 잘 작동합니다.2TB 이상의 더 큰 데이터 웨어하우스에서 사용해 본 적이 있으며, 가장 빠른 로드 환경임을 보장할 수 있습니다.마이크로소프트 블로그에서 SSIS와 함께 30분 내에 1TB를 로드했다는 소식을 확인할 수 있습니다.

차단 변환을 처리할 때 SSIS의 성능이 저하되고 필요할 때마다 T-SQL로 전송해야 한다는 것에 동의합니다.

C#에 와서 SSIS가 .NET 프레임워크와 데이터 공급자를 사용하여 작업을 수행하는 것에 동의합니다.그러나 C#은 언어가 좀 더 논리적이기 때문에 비즈니스 논리를 다루도록 처리해야 합니다.예를 들어 조건에 따라 다른 매개 변수로 exe를 실행해야 하는 경우 매개 변수를 고려하는 패키지를 작성한 다음 exe 파일을 실행하기 위해 전달해야 하는 매개 변수를 논리적으로 결정할 수 있습니다.논리적 작업은 프레임워크 대신 언어로 쉽게 수행할 수 있기 때문에 C#에서 쉽게 수행할 수 있는 반면 SSIS에서 수행하는 것은 긴 프로세스일 것입니다.

여기서 중요한 것은 문제 진술을 해결하기 위한 보다 편리한 접근 방식입니다. SSIS는 소스에서 대상으로 데이터를 로드하는 대량의 레코드를 로드하는 확실한 승자이며 C#은 논리를 작성하는 데 완벽합니다.C#을 좋아하더라도 대형 데이터 웨어하우스 시스템에서 ETL(Extract Transform Load) 작업을 수행하는 것은 권장하지 않습니다.

SSIS는 일반적으로 ETL(Extract Transform Load)에 사용됩니다.구체적인 사용 사례로는 SSAS(SQL Server Analysis Services) 큐브의 사전 처리 및 Data Change Capture를 사용한 향상된 추출이 있습니다.

FTP 및 전자 메일을 포함한 일반적인 자동화를 수행할 수 있습니다.스크립트 태스크(C# 또는 Visual Basic)를 사용하는 프로그래밍 측면이 있으므로 SSIS는 컨트롤에 포함된 기능 이상의 기능을 가지고 있습니다.

조건부 제어 흐름 경로를 사용하도록 패키지를 프로그래밍할 수 있습니다.예를 들어 월요일부터 금요일까지 특정 태스크를 수행하고 토요일과 일요일에는 다른 태스크를 수행합니다.또는 특정 조건이 충족되지 않을 경우 ETL 수행을 거부합니다.

SSIS 패키지는 다른 SSIS 패키지를 호출할 수 있습니다.코드를 모듈식으로 유지하여 재사용이 가능합니다.

다양한 데이터 소스와 함께 작동하고 파생 열 컨트롤을 사용하여 간단한 변환을 수행할 수 있습니다.이는 소스 서버(예: Oracle 또는 Hadoop)에서 변환을 수행하는 것과 비교됩니다(예: 로컬 SQL 서버에서 제어할 수 없는 것).

이름에서 알 수 있듯이 SSIS는 통합 시스템입니다..net에서는 Excel, 테라데이터, 오라클 등과 같은 상이한 데이터 소스에 대한 커넥터를 처리하고 이러한 연결, 가비지 수집, 메모리 문제 처리 등을 정상적으로 종료해야 하는 책임을 감당하기가 매우 어려울 수 있습니다.

따라서 SSIS는 두 개의 서로 다른 소스에서 데이터를 가져와 대상 위치(sql 서버, 플랫 파일 또는 다른 db 시스템)에 쓰기 전에 일련의 조회, 변환, 병합, 파생 및 계산을 수행해야 하는 시나리오에 적합합니다.

SSIS에는 패키지가 어떤 이유로든 실패할 경우 패키지가 중단된 위치에서 픽업하는 체크포인트도 있습니다(기본 동작이 아니므로 구성해야 함).

또한 SSIS는 태스크를 재사용할 수 있고 배포 프로세스를 구현하고 스케줄링하기가 매우 쉬우며 뛰어난 이벤트 처리를 지원하므로 많은 시간을 절약할 수 있습니다.

기본적으로 SSIS에는 A 지점에서 B 지점으로의 데이터 전송을 더 작은 블록으로 분할하여 개별적으로 디버그하고, SQL Server 테이블에 쉽게 액세스하고, XML 데이터 작업, c# 스크립트를 사용한 API 호출, DB에 데이터 저장, 원격 서버에서 DB 데이터 읽기 및 FTP 등과 같은 많은 이점이 있습니다.
이미 존재하는 BI 블록의 묶음 외에도 고유한 매개 변수와 출력을 사용하여 사용자 지정 작업을 직접 생성할 수도 있습니다.
기존 답변에 몇 가지 포인트를 추가할 수 있기를 바랍니다.

일상적인 작업 - SSIS Developer가 사용하며 에 비해 비교적 쉽습니다.은 다음을 포함할 수 있습니다.

표 간의 데이터 비교.

조건부 분할, 일부 논리를 기반으로 데이터를 차단하는 데이터.

데이터 변환, 조회, 병합, 통합, 모두 비교적 사용하기 쉽습니다.

파일 처리(수정, 유효성 검사).

오류 처리, 전자 메일 알림.

용기, FOR/FOR 각 루프는 사용하기 쉽습니다.

웹 서비스 작업을 사용하면 웹 서비스에 데이터를 쉽게 게시할 수 있습니다.

체크포인트를 사용하여 데이터 로드의 재실행성을 쉽게 처리할 수 있습니다.

디버깅은 쉬운 편입니다 - 콘테이너 레벨, 패키지 레벨에서 수행할 수 있습니다.

태스크를 사용할 수 없는 경우 스크립팅도 수행할 수 있습니다.또한 자신의 작업을 사용자 정의할 수 있습니다.

사람들이 이전 답변에서 말한 것은 모두 맞지만, 코딩 대신 SSIS를 사용하는 가장 중요한 측면은 유지보수가 용이하고 재사용이 가능한 제품이라고 생각합니다.

SSIS는 BI 애플리케이션에 매우 적합합니다. Stage Table의 데이터를 조작하고 DataWarehouse 테이블에서 BI에 사용할 수 있도록 할 수 있습니다.

SAP, Oracle에 연결하여 직원 정보를 얻고 PowerBI, QlikView 등에서 사용할 수 있습니다.

어디서 왜 사용하는지 안다면 좋은 도구입니다.당신이 어려움을 겪을 것이기 때문에 ir를 사용하세요.

언급URL : https://stackoverflow.com/questions/690123/net-vs-ssis-what-should-ssis-be-used-for

반응형