단위 테스트와 데이터 변경 영향 검토
코드 변경은 출력값뿐 아니라 스키마와 보안 표지에도 영향을 줄 수 있습니다. 운영 브랜치를 보호하고 pull request에서 코드, 검사 결과와 데이터 영향을 함께 확인하는 방식이 권장됩니다.
단위 테스트
Code Repositories는 대부분의 언어와 저장소 유형에서 단위 테스트를 발견하고 실행하는 helper를 제공합니다. Python transforms, Java transforms와 TypeScript Functions 등이 해당합니다.
현재 파일의 테스트는 편집기의 Test로 실행합니다. Tests helper에서는 발견한 테스트와 결과를 볼 수 있으며 자동 checks의 결과에도 저장소 테스트 출력이 포함됩니다. TypeScript 함수의 작성 규칙은 함수 단위 테스트에서 확인할 수 있습니다.
비교 전 양쪽 데이터 빌드
영향을 비교하려면 현재 commit에 맞는 결과가 양쪽 브랜치에 있어야 합니다.
| 브랜치 | 빌드 목적 |
|---|---|
| Head, 개발 브랜치 | 코드가 빌드되고 기대한 출력과 data expectation을 만족하는지 확인합니다. |
| Base, 병합 대상 브랜치 | 대상 브랜치의 최신 코드 결과와 비교합니다. |
영향받는 데이터셋이 stale이면 pull request에 경고가 표시됩니다. Configure and build에서 head와 base의 대상들을 확인하고 빌드할 수 있습니다.
Staleness 경고는 이 저장소에서 영향을 받는 데이터셋만 다룹니다. 저장소 밖의 오래된 상위 데이터셋이나 commit하지 않은 변경은 경고 범위에 들어가지 않습니다.
Impact analysis
기본 화면에는 직접 영향을 받은 데이터셋만 표시하며, 파생 데이터셋은 자동으로 모두 포함하지 않습니다. Python 저장소는 transform logic level versioning(TLLV)으로 영향을 판단하고, Java transforms는 pull request에서 변환 소스 파일이 바뀌면 해당 출력을 직접 영향 대상으로 봅니다.
데이터를 검토하려면 접근 권한이 필요합니다. 접근할 수 없는 데이터셋은 UI에 inaccessible로 표시됩니다.
| 항목 | 표시 범위 |
|---|---|
| Code | 해당 변환 소스 파일의 변경입니다. 그 파일이 참조하거나 사용하는 다른 파일까지 포함하지는 않습니다. |
| Schema | 데이터셋 열의 변경입니다. |
| Security | 출력에 적용되는 보안 표지의 변경입니다. |
| Expectations | Head 브랜치의 data expectation입니다. |
| Trashed datasets | 휴지통에 있지만 PR이 갱신하는 데이터셋은 흐리게 표시합니다. |
파생 데이터셋 포함
Add datasets to analysis에서 추가 테이블을 선택하면 직접 영향 데이터셋과 선택한 데이터셋 사이의 모든 중간 데이터셋도 포함됩니다. 추가한 자산도 stale 상태가 아니어야 합니다. Configure and build로 갱신할 목록을 다시 확인합니다.
Pipeline review
Pipeline review는 영향받는 데이터셋을 데이터 계보 그래프로 보여 줍니다.
노드를 선택하면 해당 데이터셋을 만드는 소스 파일의 코드 변경과 그 파일이 만드는 모든 출력의 스키마 변경을 볼 수 있습니다. 데이터가 흐르는 순서로 확인하면 여러 파일과 출력의 관계를 이해하기 쉽습니다.
각 파일을 개별적으로 승인하거나 거부하여 검토 상태를 관리할 수 있습니다. 변환 소스 파일의 상태는 그래프에서 대응하는 출력 데이터셋 노드에도 표시됩니다.