Openflow Connector for Jira Cloud 설정

참고

커넥터에는 커넥터 약관 이 적용됩니다.

이 항목에서는 Openflow Connector for Jira Cloud 를 설정하는 단계에 대해 설명합니다.

전제 조건

  1. Openflow Connector for Jira Cloud 정보 을 검토했는지 확인합니다.

  2. Openflow를 설정 했는지 확인합니다.

자격 증명 받기

Jira Cloud 관리자는 Atlassian 계정에서 다음 작업을 수행합니다.

  1. API 토큰 페이지 로 이동합니다.

  2. Create API token with scopes 을 선택합니다.

  3. Create an API token 대화 상자에서 API 토큰의 설명이 포함된 이름을 입력하고 API 토큰의 만료일을 선택합니다. 이 기간은 1일에서 365일까지입니다.

  4. API 토큰 앱 Jira 를 선택합니다.

  5. jira scopes read:jira-workread:jira-user 를 선택합니다.

  6. Create token 을 선택합니다.

  7. Copy your API token 대화 상자에서 Copy 를 선택하여 생성된 API 토큰을 복사본으로 복사한 다음 커넥터 매개 변수에 토큰을 붙여넣거나 안전하게 저장합니다.

  8. Close 를 선택하여 대화 상자를 닫습니다.

Snowflake 계정 설정하기

Snowflake 계정 관리자는 다음 작업을 수행합니다.

  1. 새 역할을 생성하거나 기존 역할을 사용합니다.

  2. 유형이 SERVICE 인 새 Snowflake 서비스 사용자를 생성합니다.

  3. Snowflake 서비스 사용자에게 이전 단계에서 생성한 역할을 부여합니다.

  4. 2단계의 Snowflake SERVICE 사용자에 대해 키 페어 인증 으로 구성합니다.

  5. Snowflake는 이 단계를 강력히 권장합니다. Openflow에서 지원하는 시크릿 관리자(예: AWS, Azure, Hashicorp)를 구성하고 공개 및 개인 키를 시크릿 스토어에 저장합니다.

    참고

    어떤 이유로든 시크릿 관리자를 사용하지 않으려면 조직의 보안 정책에 따라 키 페어 인증에 사용되는 공개 키와 개인 키 파일을 보호할 책임이 있습니다.

    1. 시크릿 관리자가 구성되면 인증 방법을 결정합니다. AWS 에서는 다른 시크릿을 유지할 필요가 없으므로 Openflow와 연결된 EC2 인스턴스 역할을 사용하는 것이 좋습니다.

    2. Openflow에서 오른쪽 상단의 햄버거 메뉴에서 이 시크릿 관리자와 연결된 매개 변수 공급자를 구성합니다. Controller Settings » Parameter Provider 로 이동한 다음 매개 변수 값을 가져옵니다.

    3. 이 시점에서 모든 자격 증명은 연결된 매개 변수 경로로 참조할 수 있으며 민감한 값은 Openflow 내에서 유지될 필요가 없습니다.

  6. 다른 Snowflake 사용자가 커넥터에서 수집한 원시 수집 문서 및 테이블에 대한 액세스가 필요한 경우(예:Snowflake에서 사용자 정의 처리를 위해), 해당 사용자에게 1단계에서 생성한 역할을 부여하십시오.

  7. 커넥터가 수집한 데이터를 저장할 수 있도록 Snowflake에서 데이터베이스와 스키마를 생성합니다. 첫 번째 단계에서 생성한 역할에 다음 데이터베이스 권한 를 부여합니다.

    CREATE DATABASE jira_destination_db;
    CREATE SCHEMA jira_destination_db.jira_destination_schema;
    GRANT USAGE ON DATABASE jira_destination_db TO ROLE <jira_connector_role>;
    GRANT USAGE ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>;
    GRANT CREATE TABLE, CREATE VIEW ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>;
    
    Copy
  8. 커넥터에서 사용할 웨어하우스를 생성하거나 기존 웨어하우스를 사용합니다. 가장 작은 데이터 웨어하우스 크기로 시작한 다음 복제되는 테이블 수와 전송되는 데이터의 양에 따라 크기를 실험해 보십시오. 테이블 수가 많은 경우 일반적으로 더 큰 규모의 웨어하우스보다는 멀티 클러스터 웨어하우스 에서 확장이 더 쉽습니다.

  9. 커넥터가 사용하는 역할이 있는 사용자에게 웨어하우스를 사용하는 데 필요한 권한이 있는지 확인합니다. 그렇지 않은 경우에는 해당 역할에 필수 권한을 충족하는 권한을 부여하십시오.

    CREATE WAREHOUSE jira_connector_warehouse WITH WAREHOUSE_SIZE = 'X-Small';
    GRANT USAGE ON WAREHOUSE jira_connector_warehouse TO ROLE <jira_connector_role>;
    
    Copy

커넥터 설정하기

데이터 엔지니어는 다음 작업을 수행하여 커넥터를 설치하고 구성합니다.

커넥터 설치하기

  1. Openflow 개요 페이지로 이동합니다. Featured connectors 섹션에서 View more connectors 을 선택합니다.

  2. Openflow Connector 페이지에서 커넥터를 찾아 Add to runtime 을 선택합니다.

  3. Select runtime 대화 상자의 Available runtimes 드롭다운 목록에서 런타임을 선택합니다.

  4. Add 를 선택합니다.

    참고

    커넥터를 설치하기 전에 커넥터가 수집한 데이터를 저장할 수 있도록 Snowflake에서 데이터베이스와 스키마를 생성했는지 확인하십시오.

  5. Snowflake 계정 자격 증명으로 배포를 인증하고 런타임 애플리케이션이 Snowflake 계정에 액세스할 수 있도록 허용할지 묻는 메시지가 표시되면 Allow 를 선택합니다. 커넥터 설치 프로세스를 완료하는 데 몇 분 정도 걸립니다.

  6. Snowflake 계정 자격 증명으로 런타임에 인증합니다.

커넥터 프로세스 그룹이 추가된 Openflow 캔버스가 표시됩니다.

커넥터 구성

  1. 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Parameters 를 선택합니다.

  2. 플로우 매개 변수 에 설명된 대로 필수 매개 변수 값을 채웁니다.

플로우 매개 변수

이 섹션에서는 다음 매개 변수 컨텍스트에 따라 구성할 수 있는 플로우 매개 변수에 대해 설명합니다.

참고

수집 구성과 관련된 매개 변수(예: 검색 유형, JQL 쿼리, 프로젝트 이름, 생성 이후)를 수정하면 FetchJiraIssues 프로세서의 상태가 재설정되어 모든 문제를 다시 가져올 수 있습니다. 이 기능은 문제 쿼리 기준을 변경하거나 수집을 처음부터 다시 시작하려는 경우에 유용합니다. 이 재설정 작업은 대상 테이블을 잘라내지 않습니다.

Jira Cloud 소스 매개 변수

매개 변수

설명

Jira Email

Atlassian 계정의 이메일 주소입니다.

Jira API 토큰

필요한 범위(read:jira-workread:jira-user)를 포함한 Atlassian Jira 계정의 API 액세스 토큰입니다.

Environment URL

Atlassian Jira 환경에 대한 URL입니다. 예: https://your-domain.atlassian.net.

Jira Cloud 대상 매개 변수

매개 변수

설명

대상 데이터베이스

데이터가 유지될 데이터베이스입니다. Snowflake에 이미 존재해야 합니다. 이름은 대소문자를 구분하며, 따옴표로 묶이지 않은 식별자의 경우 이름은 반드시 대문자로 제공되어야 합니다.

대상 스키마

데이터가 유지될 스키마입니다. Snowflake에 이미 존재해야 합니다. 이름은 대소문자를 구분하며, 따옴표로 묶이지 않은 식별자의 경우 이름은 반드시 대문자로 제공되어야 합니다.

Snowflake 계정 식별자

Snowflake 계정 이름은 [organization-name]-[account-name] 형식으로 형식이 지정되며, 데이터는 여기에 영구적으로 저장됩니다.

Snowflake Authentication Strategy

Snowflake에 대한 인증 전략. 가능한 값: SPCS 에서 흐름을 실행하는 경우 SNOWFLAKE_SESSION_TOKEN, 개인 키를 사용하여 액세스를 설정하는 경우 KEY_PAIR.

Snowflake 개인 키

인증에서 사용되는 RSA 개인 키입니다. RSA 키는 PKCS8 표준에 따라 형식이 지정되어야 하며 표준 PEM 헤더와 푸터가 있어야 합니다. Snowflake 개인 키 파일 또는 Snowflake 개인 키 중 하나를 정의해야 합니다.

Snowflake 개인 키 파일

PKCS8 표준에 따라 형식이 지정되고 표준 PEM 헤더와 푸터가 있는 Snowflake 인증에 사용되는 RSA 개인 키가 포함된 파일입니다. 헤더 라인은 -----BEGIN PRIVATE 로 시작합니다. Reference asset 확인란을 선택하여 개인 키 파일을 업로드합니다.

Snowflake 개인 키 비밀번호

Snowflake 개인 키 파일과 연결된 비밀번호입니다

Snowflake 역할

쿼리 실행 중에 사용되는 Snowflake 역할

Snowflake 사용자 이름

Snowflake 인스턴스에 연결하는 데 사용되는 사용자 이름입니다

Snowflake 웨어하우스

쿼리 실행에 사용되는 Snowflake 웨어하우스

Jira Cloud 수집 매개 변수

매개 변수

설명

Search Type

수행할 검색 유형입니다. 이 값은 SIMPLEJQL 중 하나를 사용할 수 있습니다. 기본값: SIMPLE.

대상 테이블

데이터가 저장되는 Snowflake 테이블입니다. 존재하지 않는 경우 생성됩니다. 테이블 이름은 따옴표 없이 대문자로 제공되어야 합니다. 대상 테이블에 추가로, 대상 테이블을 기반으로 한 평면화된 뷰가 생성됩니다. 뷰 이름은 테이블 이름과 _VIEW 접미사의 연결한 것입니다.

JQL Query

JQL 쿼리는 가져올 Jira 문제를 검색하는 데 사용됩니다. 검색 유형이 ``JQL``일 때만 사용해야 합니다.

프로젝트 이름

문제를 가져올 프로젝트 목록입니다. 프로젝트 이름, 프로젝트 키 또는 프로젝트 ID로 특정 프로젝트에 속한 문제를 검색할 수 있습니다. 검색 유형이 SIMPLE``일 때만 사용해야 합니다. 항목을 쉼표로 구분하여 목록을 제공합니다(예: ``Project1, Project2).

Status Category

간단한 검색을 위한 상태 카테고리 필터. 검색 유형이 SIMPLE 인 경우에만 사용해야 합니다. 예제 값은 Done, In Progress, To Do 입니다.

Updated After

지정된 날짜 및 시간 이후에 업데이트된 필터 문제. 검색 유형이 SIMPLE 인 경우에만 사용해야 합니다. 2023-10-01과 같이 yyyy-MM-dd 형식이어야 합니다.

Created After

지정된 날짜 및 시간 이후에 생성된 문제를 필터링합니다. 검색 유형이 SIMPLE 인 경우에만 사용해야 합니다. 2023-10-01과 같이 yyyy-MM-dd 형식이어야 합니다.

Issue Fields

각 문제에 대해 반환할 필드 목록으로, 필드의 하위 집합을 검색하는 데 사용됩니다. 사용자 지정 필드의 IDs는 다음의 가이드<https://confluence.atlassian.com/jirakb/get-custom-field-ids-for-jira-and-jira-service-management-744522503.html>`_에서 가져올 있습니다. 매개 변수는 쉼표로 구분된 목록을 허용합니다. 특수 :code:`*all`을 사용하여 모든 필드를 가져오고, :code:`*navigable`을 사용하여 탐색 가능한 필드를 가져오며, 마이너스(:code:-`) 접두사를 사용하여 필드를 제외할 수 있습니다. 예를 들어, :code:`*all,-description`은 description 필드를 제외한 모든 필드를 반환합니다. 기본값 :code:`*all`입니다.

Maximum Page Size

요청당 반환할 최대 문제 수, 기본값 및 최대값은 ``1000``입니다. Jira API는 총 응답 크기에 따라 결과가 더 적게 반환될 수 있음을 유의하십시오.

플로우 실행

  1. 평면을 마우스 오른쪽 버튼으로 클릭하고 Enable all Controller Services 를 선택합니다.

  2. 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택합니다. 커넥터가 데이터 수집을 시작합니다.

문제 쿼리 기준을 변경해야 하거나 수집을 처음부터 다시 시작하려는 경우, 다음 단계를 수행하여 대상 테이블의 데이터가 일관성을 유지하도록 하십시오.

  1. FetchJiraIssues 프로세서를 마우스 오른쪽 버튼으로 클릭하고 중지합니다.

  2. FetchJiraIssues 프로세서를 마우스 오른쪽 버튼으로 클릭한 다음 View State 를 선택합니다.

  3. State 대화 상자에서 Clear State 를 선택합니다. 이 작업은 프로세서의 상태를 지우고 모든 문제를 다시 가져올 수 있도록 합니다.

  4. 선택 사항: 문제 쿼리 기준을 변경하려면 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Parameters 를 선택합니다. 필요에 따라 매개 변수를 업데이트합니다.

  5. 선택 사항: 대상 테이블 이름을 변경하려면 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Parameters 를 선택합니다. 대상 테이블 매개 변수를 업데이트합니다.

  6. FetchJiraIssues 프로세서를 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택합니다. 커넥터가 데이터 수집을 시작합니다.

  7. 데이터가 수집된 후에는 Snowflake 대상 테이블 및 대상 뷰에서 평면화된 형식으로 확인할 수 있습니다. 이 뷰는 Jira 인스턴스에서 사용 가능한 모든 필드를 포함합니다.

데이터에 액세스하기

Jira에서 가져온 데이터는 대상 테이블에서 사용할 수 있습니다. Jira 문제에 대해 가져온 모든 필드는 API에서 가져온 원시 형태의 오브젝트로 ISSUE 열에 제공됩니다.

데이터 쿼리를 지원하기 위해 대상 테이블을 기반으로 평면화된 뷰가 생성됩니다. 뷰 이름은 테이블 이름과 _VIEW 접미사를 연결한 것입니다. 예를 들어, 대상 테이블의 이름이 ``JIRA_ISSUES``인 경우 뷰의 이름은 ``JIRA_ISSUES_VIEW``가 됩니다. 뷰에서 모든 문제 필드가 추출되어 별도의 열로 제공됩니다. 열 이름은 필드 레이블로 설정됩니다. 동일한 레이블이 있는 문제가 여러 개 존재할 경우, 고유성을 보장하기 위해 열 이름에 ID 접미사가 추가됩니다. 예를 들어, IDs가 customfield_1, customfield_2`인 필드가 있고 필드 모두의 레이블이 :code:`Custom Field`로 설정된 경우 뷰의 이름은 :code:`Custom Field (customfield_1), :code:`Custom Field (customfield_2)`가 됩니다.