출처 : https://learn.microsoft.com/ko-kr/training/modules/build-data-pipeline-azure-synapse-analytics/
Azure Synapse Analytics에서 데이터 파이프라인 빌드 - Training
Azure Synapse Analytics를 사용하여 파이프라인을 빌드합니다.
learn.microsoft.com
학습 목표
- Azure Synapse Analytics 파이프라인의 핵심 개념 설명
- Azure Synapse Studio에서 파이프라인을 만든다.
- 파이프라인에서 데이터 흐름 작업을 구현한다.
- 파이프라인 실행을 시작하고 모니터링한다.
Azure Synapse Analytics의 파이프라인 이해
- Azure Synapse Analytics의 파이프라인은 데이터 이동 및 처리 작업을 수행하는 일련의 활동을 캡슐화한다.
- 파이프라인을 사용하여 데이터 전송 및 변환 활동을 정의하고 분기, 반복 및 기타 일반적인 처리 논리를 관리하는 제어 흐름 활동을 통해 이러한 활동을 오케스트레이션할 수 있다.
- Azure Synapse Studio의 그래픽 디자인 도구를 사용하면 코딩을 최소화하거나 코딩 없이 복잡한 파이프라인을 빌드할 수 있다.
[핵심 파이프라인 개념]
1. Activity
- 파이프라인의 실행 가능한 작업
- 시퀀스로 연결하여 흐름을 정의할 수 있다.
- 특정 활동의 결과(성공, 실패, 완료)를 사용하여 시퀀스의 다음 활동으로 흐름을 전달할 수 있다.
- 원본에서 데이터를 추출하고 대상(또는 싱크)에 로드하는 간단한 데이터 복사 작업뿐만 아니라 ETL작업의 일부로 데이터에 변환을 적용하는 보다 복잡한 데이터 흐름을 포함하여 데이터 전송 작업을 캡슐화 할 수 있다.
- Spark Notebook 실행 또는 Azure 함수 호출과 같은 특정 시스템에서 처리 작업을 캡슐화하는 활동이 있다.
- 루프, 조건부 분기를 구현하거나 변수 및 매개 변수 값을 관리하는데 사용할 수 있는 제어 흐름 활동이 있다.
2. Integration runtime
- 파이프라인에는 컴퓨팅 리소스와 실행할 실행 컨텍스트가 필요하다. 파이프라인의 통합 런타임은 이 컨텍스트를 제공하며 파이프라인에서 활동을 시작하고 조정하는데 사용된다.
2. Linked services
- 대부분의 활동은 파이프라인의 통합 런타임에서 직접 실행되지만 일부 활동은 외부 서비스에 따라 달라진다. 예를 들어, 파이프라인에는 Azure Databricks에서 Notebook을 실행하거나 Azure SQL Database에서 저장 프로시서를 호출하는 활동이 포함될 수 있다. 파이프라인에서 사용하는 외부 서비스에 대한 보안 연결을 사용하도록 설정하려면 서비스에 대한 연결된 서비스를 정의해야 한다.
3. Dataset
- 대부분의 파이프라인은 데이터를 처리하며 파이프라인의 활동에서 사용하고 생성하는 특정 데이터는 데이터 세트를 사용하여 정의된다.
- 파이프라인에서 사용할 각 데이터 개체에 대한 스키마를 정의하고 원본에 연결할 관련 연결된 서비스를 포함한다.
- 활동에는 입력 또는 출력으로 데이터 세트가 포함될 수 있다.
Azure Synapse Studio에서 파이프라인 만들기
- 위치 : Integrate
- Azure Synapse Studio에서 그래픽 디자인 인터페이스 사용할 수 있음.
- 파이프라인 디자이너에는 시각적 디자인 캔버스로 끌어서 놓을 수 있는 범주로 구성된 활동 세트가 포함됨. 캔버스에서 각 활동을 선택하고 캔버스 바로 아래의 속성 창을 사용하여 해당 활동에 대한 설정을 구성할 수 있음.
- 활동의 논리적 시퀀스를 정의하기 위해 각 활동의 오른쪽 가장자리에 작은 아이콘으로 표시되는 성공, 실패, 완료됨 종속성 조건을 사용하여 활동을 연결할 수 있음.
[JSON을 사용하여 파이프라인 정의]
- 예시)
{
"name": "CopyPipeline",
"properties": {
"description": "Copy data from a blob to Azure SQL table",
"activities": [
{
"name": "CopyFromBlobToSQL",
"type": "Copy",
"inputs": [
{
"name": "InputDataset"
}
],
"outputs": [
{
"name": "OutputDataset"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 10000,
"writeBatchTimeout": "60:00:00"
}
},
"policy": {
"retry": 2,
"timeout": "01:00:00"
}
}
]
}
}
데이터 흐름 정의
- 데이터 흐름은 데이터 흐름과 변환을 정의하는데 일반적으로 사용되는 활동 유형
- 구성
- 원본 : 전송할 입력 데이터
- 변환 : 데이터 흐름을 통해 스트림할 때 데이터에 적용할 수 있는 다양한 작업
- 싱크 : 데이터를 로드할 대상
- 파이프라인에 Data Flow 활동을 추가할 때 필요한 데이터 흐름 요소를 만들고 구성할 별도의 그래픽 디자인 인터페이스에서 열 수 있음.
- 데이터 흐름을 만드는 중요한 부분은 다양한 단계를 통해 데이터가 흐르면서 열에 대한 매핑을 정의하여 열 이름과 데이터 형식이 적절하게 정의되도록 하는 것
- 데이터 흐름을 개발하는 동안 데이터 흐름 디버그 옵션을 사용하도록 설정하여 흐름을 통해 데이터 하위 집합을 전달할 수 있음. 이는 열이 올바르게 매핑되었는지 테스트하는데 유용할 수 있다.
파이프라인 실행
- 파이프라인을 실행하도록 트리거를 정의할 수 있다.
- 즉시
- 명시적으로 예약된 간격으로
- 데이터 레이크의 폴더에 추가되는 새 데이터 파일과 같은 이벤트에 대한 응답으로
- Azure Synapse Studio의 Monitor 페이지에서 파이프라인의 개별 실행을 모니터링할 수 있다.
- Azure Synapse Analytics 및 Microsoft Purview를 통합하는 기능과 결합된 경우 파이프라인 실행 기록을 사용하여 데이터 계보 데이터 흐름을 추적할 수 있다.