이 페이지에서는 Git 저장소를 통해 Cloud Data Fusion에서 소스 제어를 사용하여 파이프라인을 관리하는 방법을 설명합니다.
소스 제어 관리 정보
Cloud Data Fusion은 ETL 및 ELT 통합용 파이프라인을 시각적으로 설계하는 기능을 제공합니다. 개발과 프로덕션 사이에서 파이프라인을 효과적으로 관리할 수 있도록 Cloud Data Fusion은 GitHub 및 기타 버전 제어 시스템을 사용한 파이프라인 소스 제어 관리를 허용합니다.
Cloud Data Fusion의 소스 제어 관리를 사용하면 다음을 수행할 수 있습니다.
- 각 Cloud Data Fusion 네임스페이스를 버전 제어 시스템과 통합합니다.
- 중앙 Git 저장소에서 파이프라인을 관리합니다.
- 파이프라인 변경사항을 검토하고 감사합니다.
- 파이프라인 변경사항을 되돌립니다.
- 중앙 제어를 보장하면서 팀과 효과적으로 공동작업합니다.
시작하기 전에
- 소스 제어 관리는 GitHub, Bitbucket Server, Bitbucket Cloud, Gitlab 저장소와의 통합을 지원합니다.
- GitHub OAuth는 지원되지 않습니다.
- 소스 제어 관리는 일괄 파이프라인만 지원합니다.
- 소스 제어 관리는 푸시 및 가져오기 작업을 위한 파이프라인 설계 JSON만 지원합니다. 실행 구성은 지원되지 않습니다.
- 연결된 저장소의 크기 한도는 5GB입니다.
필수 역할 및 권한
Cloud Data Fusion의 소스 제어 관리는 다음과 같은 두 가지 주요 작업으로 구성됩니다.
- 소스 제어 저장소 구성
- 푸시 및 가져오기 작업을 사용하여 파이프라인을 Git 저장소와 동기화
소스 제어 관리 기능을 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음과 같은 사전 정의된 역할을 부여해 달라고 요청하세요.
소스 제어 저장소 구성:
- Cloud Data Fusion 운영자(
roles/datafusion.operator
) - Cloud Data Fusion 편집자(
roles/datafusion.editor
) - Cloud Data Fusion 관리자(
roles/datafusion.admin
)
- Cloud Data Fusion 운영자(
네임스페이스에서 푸시 또는 가져오기 작업을 사용하여 파이프라인 동기화하기:
- Cloud Data Fusion 운영자(
roles/datafusion.operator
) - Cloud Data Fusion 개발자(
roles/datafusion.developer
) - Cloud Data Fusion 편집자(
roles/datafusion.editor
) - Cloud Data Fusion 관리자(
roles/datafusion.admin
)
- Cloud Data Fusion 운영자(
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Git 저장소 설정
GitHub에서 Git 저장소를 만들려면 저장소 만들기에 설명된 안내를 따르세요.
GitHub 및 기타 버전 제어 시스템의 개인 액세스 토큰에 대한 자세한 내용은 다음 페이지를 참조하세요.
GitHub: 개인 액세스 토큰 만들기 및 세분화된 개인 액세스 토큰 만들기
Cloud Data Fusion과 Git 저장소 연결
Cloud Data Fusion을 사용하면 각 네임스페이스의 소스 제어 관리 탭에서 Git 저장소를 구성하고 연결할 수 있습니다. 네임스페이스를 Git 저장소와 연결하려면 다음 단계를 수행합니다.
콘솔
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 네임스페이스 관리자를 클릭합니다.
- 네임스페이스 관리 페이지에서 소스 제어 관리 탭을 클릭합니다.
- 저장소 연결을 클릭합니다.
다음 세부정보를 입력합니다.
- 제공업체: GitHub 또는 GitLab과 같은 Git 서비스 제공업체를 선택합니다.
- 저장소 URL: 저장소에 액세스할 수 있는 URL을 입력합니다. GitHub의 경우 저장소 URL은
https://github.com/HOST/REPO
입니다. - 기본 브랜치(선택사항): Git의 초기 브랜치를 입력합니다. 이 브랜치는 GitHub에 구성된 기본 브랜치와 다를 수 있습니다. 이 브랜치는 GitHub의 기본 브랜치에 관계없이 파이프라인을 동기화하는 데 사용됩니다.
- 경로 프리픽스(선택사항): Git 저장소에 저장된 파이프라인 이름의 프리픽스를 입력합니다. 예를 들어 파이프라인 이름이
DataFusionQuickStart
이고 접두사를namespaceName
으로 지정하면 파이프라인이 Git 저장소에namespaceName/DataFusionQuickStart
로 저장됩니다. - 인증 유형: Cloud Data Fusion을 사용하면 맞춤 액세스 토큰을 인증 유형으로 사용할 수 있습니다. 이 항목은 자동으로 선택됩니다.
- 토큰 이름: 토큰과 연결할 수 있는 이름을 입력합니다.
- 토큰: GitHub 저장소에서 제공한 토큰을 입력합니다.
- (선택사항): 사용자 이름: 토큰의 사용자 이름 또는 소유자를 입력합니다.
검증을 클릭합니다. 연결이 확인될 때까지 기다립니다.
구성이 완료되면 저장 및 닫기를 클릭하여 구성을 확인합니다.
REST API
Cloud Data Fusion에 개인 액세스 토큰이 포함된 보안 비밀 키를 만듭니다.
다음 명령어를 실행합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDPASSWORD_SECRET_KEY
: 개인 액세스 토큰이 포함된 보안 비밀 키의 이름PERSONAL_ACCESS_TOKEN
: GitHub의 개인 액세스 토큰
다음 명령어를 실행합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDTEST_ONLY
: 구성만 검증하고 여기에 추가하지 않으려면true
로 설정PROVIDER_TYPE
: Git 제공업체 이름(GITHUB
)REPO_URL
: 연결할 저장소 URL.https
URl을 사용하세요(예:https://github.com/user/repo.git
).DEFAULT_BRANCH
: 푸시 및 가져오기 작업에 사용되는 브랜치. 생략하면 저장소에 구성된 기본 브랜치(예: 기본 브랜치)가 사용됩니다.PATH_TO_DIRECTORY
: 구성 파일이 저장된 저장소의 디렉터리 경로AUTH_TYPE
: 인증 유형.PAT
만 지원됩니다. GitHub의 세분화된 개인 액세스 토큰을 참조하세요.PASSWORD_SECRET_KEY
: 인증 유형PAT
의 개인 액세스 토큰이 포함된 보안 비밀 키의 이름USER_NAME
: 이 인증 유형PAT
값을 생략할 수 있습니다.
원격 저장소와 Cloud Data Fusion 파이프라인 동기화
네임스페이스로 Git 저장소를 구성한 후에는 Git 저장소를 사용하여 파이프라인을 내보내고 가져오며 동기화할 수 있습니다.
Cloud Data Fusion에서 Git 저장소로 파이프라인 내보내기
네임스페이스에서 Git 저장소로 배포된 파이프라인 여러 개를 동기화하려면 다음 단계를 수행합니다.
콘솔
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 네임스페이스 관리자를 클릭합니다.
- 네임스페이스 관리 페이지에서 소스 제어 관리 탭을 클릭합니다.
- 동기화할 Git 저장소를 찾고 파이프라인 동기화를 클릭합니다.
- 네임스페이스 파이프라인 탭을 클릭합니다.
Git 저장소에 내보낼 파이프라인을 검색하여 선택합니다.
파이프라인의 최신 버전을 Git 저장소로 내보내거나 Git 저장소에서 가져오는 경우 Git에 연결 상태가
Connected
로 표시됩니다. 파이프라인이 GitHub에 푸시된 적이 없으면 Git에 연결 상태가 블랭크(-
)로 표시됩니다.이미 Git 저장소와 동기화된 최신 버전의 파이프라인을 배포하면 Git에 연결 상태가
Connected
에서 블랭크(-
)으로 변경됩니다.저장소로 내보내기를 클릭합니다.
커밋 메시지를 입력하고 확인을 클릭합니다.
내보내기 작업이 시작되고 선택한 파이프라인을 원격 저장소에 내보내고 있음을 나타내는 메시지가 표시됩니다.
푸시 작업이 성공적으로 완료되면 원격 저장소로 푸시된 파이프라인 수를 나타내는 성공 메시지가 표시됩니다.
푸시 작업이 실패하면 GitHub의 파이프라인에서 최신 버전인지 확인합니다. 내보내기 작업이 실패할 때마다 오류 메시지가 표시됩니다. 오류 세부정보를 보려면 오류 메시지를 펼치세요.
개별 파이프라인을 파이프라인 설계 스튜디오에서 Git 저장소에 내보낼 수도 있습니다.
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 목록을 클릭합니다.
- Git 저장소로 내보낼 파이프라인을 클릭합니다.
- 파이프라인 페이지에서 작업 > 저장소로 내보내기를 클릭합니다.
- 커밋 메시지를 입력하고 확인을 클릭합니다.
REST API
파이프라인 집합을 Cloud Data Fusion에서 Git 저장소로 내보냅니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDPIPELINE_NAME_1
,PIPELINE_NAME_2
: 푸시할 파이프라인의 이름COMMIT_MESSAGE
: Git 커밋에 대한 커밋 메시지
응답에는 푸시 작업의 ID가 포함됩니다. 예를 들면 다음과 같습니다.
RESPONSE { "id": OPERATION_ID }
푸시 작업의 상태를 폴링하려면 다음 명령어를 실행합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDOPERATION_ID
: 푸시 작업에서 수신된 작업 ID
응답에는 푸시 작업의 상태가 포함됩니다. 예를 들면 다음과 같습니다.
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
푸시 작업이 완료되었는지 확인하려면 응답에서
done
속성을 확인하세요. 작업이 실패하면error
속성에서 자세한 내용을 확인하세요.
Git 저장소에서 Cloud Data Fusion으로 파이프라인 가져오기
Git 저장소에서 네임스페이스로 파이프라인 여러 개를 동기화하려면 다음 단계를 수행합니다.
콘솔
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 네임스페이스 관리자를 클릭합니다.
- 네임스페이스 관리 페이지에서 소스 제어 관리 탭을 클릭합니다.
- 동기화할 Git 저장소를 찾고 파이프라인 동기화를 클릭합니다.
- 저장소 파이프라인 탭을 클릭합니다. Git 저장소에 저장된 모든 파이프라인이 표시됩니다.
- Git 저장소에서 Cloud Data Fusion 네임스페이스로 가져올 파이프라인을 검색하여 선택합니다.
저장소에서 가져오기를 클릭합니다.
가져오기 작업이 시작되고 선택한 파이프라인을 원격 저장소에서 가져오고 있음을 나타내는 메시지가 표시됩니다. Cloud Data Fusion이 구성된 경로에 있는 JSON 파일을 찾아 Cloud Data Fusion에 이를 파이프라인으로 배포합니다.
가져오기 작업이 성공적으로 완료되면 원격 저장소에서 가져온 파이프라인 수를 나타내는 성공 메시지가 표시됩니다.
가져오기 작업이 실패하면 오류 메시지가 표시됩니다. 오류 세부정보를 보려면 오류 메시지를 펼칩니다.
파이프라인 디자인 스튜디오에서 Git 저장소의 개별 파이프라인을 네임스페이스로 가져올 수도 있습니다.
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 목록을 클릭합니다.
- Git 저장소에서 가져올 파이프라인을 클릭합니다.
- 파이프라인 페이지에서 작업 > 저장소에서 가져오기를 클릭합니다.
REST API
Git 저장소에서 Cloud Data Fusion으로 파이프라인 세트를 가져옵니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDPIPELINE_NAME_1
,PIPELINE_NAME_2
: 가져올 파이프라인의 이름
응답에는 가져오기 작업의 ID가 포함됩니다. 예를 들면 다음과 같습니다.
RESPONSE { "id": OPERATION_ID }
가져오기 작업의 상태를 폴링하려면 다음 명령어를 실행합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
다음을 바꿉니다.
NAMESPACE_ID
: 네임스페이스의 IDOPERATION_ID
: 가져오기 작업에서 수신한 작업 ID
응답에는 가져오기 작업의 상태가 포함됩니다. 예를 들면 다음과 같습니다.
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
가져오기 작업이 완료되었는지 확인하려면 응답에서
done
속성을 확인합니다. 작업이 실패하면error
속성에서 자세한 내용을 확인하세요.
Git 저장소 구성 삭제
네임스페이스에서 Git 저장소 구성을 삭제하려면 다음 단계를 수행합니다.
콘솔
- Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
- 네임스페이스 관리자를 클릭합니다.
- 네임스페이스 관리 페이지에서 소스 제어 관리 탭을 클릭합니다.
- 삭제하려는 Git 구성에서 > 삭제를 클릭합니다.
REST API
Git 저장소 구성을 삭제합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE
NAMESPACE_ID를 네임스페이스의 ID로 바꿉니다.
다음 단계
- GitHub 저장소를 사용하여 파이프라인 관리에 대해 자세히 알아보기