소스 제어 관리를 사용하여 파이프라인 관리

이 페이지에서는 Git 저장소를 통해 Cloud Data Fusion에서 소스 제어를 사용하여 파이프라인을 관리하는 방법을 설명합니다.

소스 제어 관리 정보

Cloud Data Fusion은 ETL 및 ELT 통합을 위해 파이프라인을 시각적으로 설계하는 기능을 제공합니다. 개발과 프로덕션 간 파이프라인 관리를 개선하기 위해 Cloud Data Fusion에서는 GitHub 및 기타 버전 제어 시스템을 사용하는 파이프라인의 소스 제어 관리를 허용합니다.

Cloud Data Fusion의 소스 제어 관리를 사용하면 다음을 수행할 수 있습니다.

  • 각 Cloud Data Fusion 네임스페이스를 버전 제어 시스템과 통합합니다.
  • 중앙 Git 저장소에서 파이프라인을 관리합니다.
  • 파이프라인 변경사항을 검토하고 감사합니다.
  • 파이프라인 변경사항을 되돌립니다.
  • 중앙 제어를 보장하면서 팀과 효과적으로 공동작업합니다.

시작하기 전에

  • 소스 제어 관리는 GitHub, Bitbucket 서버, Bitbucket 클라우드, Gitlab 저장소와의 통합을 지원합니다.
  • GitHub OAuth는 지원되지 않습니다.
  • 소스 제어 관리는 일괄 파이프라인만 지원합니다.
  • 소스 제어 관리는 푸시 및 가져오기 작업을 위한 파이프라인 설계 JSON만 지원합니다. 실행 구성은 지원되지 않습니다.
  • 연결된 저장소의 크기 제한은 5GB입니다.

필수 역할 및 권한

Cloud Data Fusion의 소스 제어 관리는 다음 두 가지 주요 작업으로 구성됩니다.

  • 소스 제어 저장소 구성
  • 푸시 및 가져오기 작업을 사용하여 파이프라인을 Git 저장소와 동기화

소스 제어 관리 기능을 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음과 같은 사전 정의된 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

Git 저장소 설정

GitHub에서 Git 저장소를 만들려면 저장소 만들기에 설명된 안내를 따르세요.

GitHub 및 기타 버전 제어 시스템의 개인 액세스 토큰에 대한 자세한 내용은 다음 페이지를 참조하세요.

Cloud Data Fusion과 Git 저장소 연결

Cloud Data Fusion을 사용하면 각 네임스페이스의 소스 제어 관리 탭에서 Git 저장소를 구성하고 연결할 수 있습니다. 네임스페이스를 Git 저장소와 연결하려면 다음 단계를 따르세요.

콘솔

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 네임스페이스 관리자를 클릭합니다.
  3. 네임스페이스 관리자 페이지에서 소스 제어 관리 탭을 클릭합니다.
  4. 저장소 연결을 클릭합니다.
  5. 다음 세부정보를 입력합니다.

    • 공급업체: 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 저장소에서 제공한 토큰을 입력합니다.
    • (선택사항): 사용자 이름: 토큰의 사용자 이름 또는 소유자를 입력합니다.
  6. 검증을 클릭합니다. 연결이 확인될 때까지 기다립니다.

  7. 구성이 완료되면 저장 후 닫기를 클릭하여 구성을 확인합니다.

Cloud Data Fusion과 Git 저장소를 연결합니다.

REST API

  1. Cloud Data Fusion에서 개인 액세스 토큰이 포함된 보안 비밀 키를 만듭니다.

  2. 다음 명령어를 실행합니다.

    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: 네임스페이스의 ID
    • PASSWORD_SECRET_KEY: 개인 액세스 토큰이 포함된 보안 비밀 키의 이름
    • PERSONAL_ACCESS_TOKEN: GitHub의 개인 액세스 토큰
  3. 다음 명령어를 실행합니다.

    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: 네임스페이스의 ID
    • TEST_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 저장소로 동기화하려면 다음 단계를 따르세요.

콘솔

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 네임스페이스 관리자를 클릭합니다.
  3. 네임스페이스 관리자 페이지에서 소스 제어 관리 탭을 클릭합니다.
  4. 동기화할 Git 저장소를 찾고 파이프라인 동기화를 클릭합니다.
  5. 네임스페이스 파이프라인 탭을 클릭합니다.
  6. Git 저장소로 푸시하려는 파이프라인을 검색하여 선택합니다.

    파이프라인의 최신 버전을 Git 저장소로 내보내거나 Git 저장소에서 가져오는 경우 Git에 연결 상태가 Connected로 표시됩니다. 파이프라인이 GitHub에 푸시된 적이 없으면 Git에 연결 상태가 블랭크(-)로 표시됩니다.

    이미 Git 저장소와 동기화된 최신 버전의 파이프라인을 배포하면 Git에 연결 상태가 Connected에서 블랭크(-)으로 변경됩니다.

  7. 저장소로 푸시를 클릭합니다.

  8. 커밋 메시지를 입력하고 확인을 클릭합니다.

    푸시 작업이 시작되고 선택한 파이프라인이 원격 저장소로 푸시되고 있음을 나타내는 메시지가 표시됩니다.

파이프라인을 Cloud Data Fusion에서 Git 저장소로 푸시합니다.

푸시 작업이 성공적으로 완료되면 원격 저장소로 푸시된 파이프라인 수를 나타내는 성공 메시지가 표시됩니다.

푸시 작업이 실패하면 GitHub의 파이프라인에서 최신 버전인지 확인합니다. 실패한 푸시 작업마다 오류 메시지가 표시됩니다. 오류 세부정보를 보려면 오류 메시지를 펼치세요.

파이프라인 설계 스튜디오에서 개별 파이프라인을 Git 저장소로 내보낼 수도 있습니다.

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 목록을 클릭합니다.
  3. Git 저장소로 푸시하려는 파이프라인을 클릭합니다.
  4. 파이프라인 페이지에서 작업 > 저장소로 푸시를 클릭합니다.
  5. 커밋 메시지를 입력하고 확인을 클릭합니다.

파이프라인 설계 스튜디오에서 파이프라인을 푸시합니다.

REST API

  1. 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: 네임스페이스의 ID
    • PIPELINE_NAME_1, PIPELINE_NAME_2: 푸시할 파이프라인의 이름
    • COMMIT_MESSAGE: Git 커밋에 대한 커밋 메시지

    응답에는 푸시 작업의 ID가 포함됩니다. 예를 들면 다음과 같습니다.

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. 푸시 작업의 상태를 폴링하려면 다음 명령어를 실행합니다.

    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: 네임스페이스의 ID
    • OPERATION_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 저장소의 여러 파이프라인을 네임스페이스로 동기화하려면 다음 단계를 수행합니다.

콘솔

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 네임스페이스 관리자를 클릭합니다.
  3. 네임스페이스 관리자 페이지에서 소스 제어 관리 탭을 클릭합니다.
  4. 동기화할 Git 저장소를 찾고 Sync pipelines(파이프라인 동기화)를 클릭합니다.
  5. 저장소 파이프라인 탭을 클릭합니다. Git 저장소에 저장된 모든 파이프라인이 표시됩니다.
  6. Git 저장소에서 Cloud Data Fusion 네임스페이스로 가져오려는 파이프라인을 검색하고 선택합니다.
  7. 저장소에서 가져오기를 클릭합니다.

    가져오기 작업이 시작되고 선택한 파이프라인을 원격 저장소에서 가져오고 있음을 나타내는 메시지가 표시됩니다. Cloud Data Fusion이 구성된 경로에 있는 JSON 파일을 찾아 Cloud Data Fusion에 이를 파이프라인으로 배포합니다.

Git 저장소에서 Cloud Data Fusion으로 파이프라인을 가져옵니다.

가져오기 작업이 성공적으로 완료되면 원격 저장소에서 가져온 파이프라인 수를 나타내는 성공 메시지가 표시됩니다.

가져오기 작업이 실패하면 오류 메시지가 표시됩니다. 오류 세부정보를 보려면 오류 메시지를 펼칩니다.

또한 파이프라인 설계 스튜디오에서 Git 저장소에서 네임스페이스로 개별 파이프라인을 가져올 수 있습니다.

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 목록을 클릭합니다.
  3. Git 저장소에서 가져오려는 파이프라인을 클릭합니다.
  4. 파이프라인 페이지에서 작업 > 저장소에서 가져오기를 클릭합니다.

파이프라인 설계 스튜디오에서 파이프라인을 가져옵니다.

REST API

  1. 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: 네임스페이스의 ID
    • PIPELINE_NAME_1, PIPELINE_NAME_2: 가져올 파이프라인의 이름

    응답에는 가져오기 작업의 ID가 포함됩니다. 예를 들면 다음과 같습니다.

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. 가져오기 작업의 상태를 폴링하려면 다음 명령어를 실행합니다.

    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: 네임스페이스의 ID
    • OPERATION_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 저장소 구성을 삭제하려면 다음 단계를 따르세요.

콘솔

  1. Cloud Data Fusion Studio에서 메뉴를 클릭합니다.
  2. 네임스페이스 관리자를 클릭합니다.
  3. 네임스페이스 관리자 페이지에서 소스 제어 관리 탭을 클릭합니다.
  4. 삭제하려는 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로 바꿉니다.

다음 단계