사용자 지정 변수 루프 실행
    • PDF

    사용자 지정 변수 루프 실행

    • PDF

    기사 요약

    개요

    커스텀 변수 루프 실행은 워크플로우 정의에 커스텀 변수가 포함된 전송 설정 및 데이터 마트 정의가 내장되어 있을 때 설정할 수 있는 기능입니다.
    이 페이지에서는 사용자 지정 변수 루프 실행에 대한 개요와 설정 내용을 사용 사례와 함께 소개합니다.

    사용자 지정 변수 루프 실행이란?

    사용자 지정 변수 루프 실행은 작업에 내장된 사용자 지정 변수에 대해 여러 값을 확장하도록 설정할 수 있습니다.
    이렇게 설정한 작업이 워크플로우 작업 내에서 실행되면, '사용자 지정 변수에 값을 전개하고 이를 기반으로 작업을 실행하는' 프로세스가 순차적으로 반복됩니다.
    결과적으로 한 번의 작업 실행으로 여러 작업을 실행할 수 있습니다.

    사용자 정의 변수 및 워크플로우 정의에 대한 정보

    각각의 개요 및 설정 방법에 대한 자세한 내용은 아래를 참고하세요.

    사용 사례

    커스텀 변수 루프 실행의 대표적인 사용 사례를 소개합니다.

    전송원 광고계 커넥터에서 여러 계정 ID의 데이터를 한꺼번에 전송하는 것

    광고계 커넥터에서 여러 개의 광고 계정 ID를 사용하는 경우, 여러 광고 계정 ID의 데이터를 한꺼번에 전송할 수 있습니다.

    설정 예시

    전송 설정을 만들 때 광고 계정 ID에 사용자 지정 변수를 삽입합니다.
    위의 전송 설정을 워크플로우 정의에 통합하고, 전송할 광고 계정 ID 목록을 사용자 지정 변수로 확장하도록 설정합니다.

    전송원 파일 저장소 커넥터에서 특정 날짜 및 시간대의 파일을 전송하는 방법

    파일명 접두사 또는 접미사에 날짜 및 시간이 포함된 경우, 지정한 날짜 및 시간이 포함된 파일을 일괄 전송할 수 있습니다.
    마찬가지로 특정 날짜와 시간이 포함된 폴더 아래 파일을 일괄적으로 전송할 수도 있습니다.

    설정 예시

    전송 설정을 생성할 때 경로 접두사에 사용자 지정 변수를 삽입합니다.
    위의 전송 설정을 워크플로우 정의에 통합하고, 전송 대상 날짜 및 시간 목록을 사용자 지정 변수로 확장하도록 설정합니다.

    대용량 파일을 분할하여 전송할 수 있는 데이터베이스 기반 커넥터에서 대용량 파일을 분할하여 전송하기

    데이터베이스 계열 커넥터에서 대용량의 데이터를 전송하고 싶을 때 파일을 분할하여 전송할 수 있습니다.
    작업을 분할하여 전송하면 한 번에 일괄 전송할 때보다 짧은 시간 내에 전송을 완료할 수 있습니다.

    설정 절차

    전송 설정을 생성할 때 쿼리 내에 사용자 지정 변수를 삽입합니다.
    예를 들어, timestamp 타입의 컬럼을 기준으로 분할하는 경우, 쿼리 내에 다음과 같은 WHERE 구문을 작성합니다.

    WHERE column_timestamp BETWEEN "$start_date$" AND "$end_date$"
    

    위의 전송 설정을 워크플로우 정의에 통합하고, 작업이 임의의 횟수로 분할될 수 있도록 사용자 지정 변수에 확장할 날짜를 설정합니다.

    전송원 데이터베이스 계열 커넥터에서 동일한 스키마의 테이블을 일괄적으로 전송하는 방법

    데이터베이스 계열 커넥터에 동일한 스키마의 테이블이 여러 개 있는 경우, 여러 테이블을 한꺼번에 전송할 수 있습니다.

    설정 절차

    전송 설정을 생성할 때 쿼리 내 FROM 절에 사용자 지정 변수를 삽입합니다.
    위의 전송 설정을 워크플로우 정의에 통합하고, 전송 대상 테이블 이름 목록을 사용자 지정 변수로 확장하도록 설정합니다.

    구글 애널리틱스에서 전송하는 데이터가 샘플링되지 않도록 설정하기

    구글 애널리틱스의 API 측 사양에 따라 전송처 구글 애널리틱스(UA) 및 전송처 구글 애널리틱스 4에서 수집 대상 데이터 크기가 일정 이상 커지면 샘플링이 발생한다.
    수집 대상 데이터를 분할하여 샘플링 수집을 피할 수 있습니다.

    설정 절차

    전송 설정을 생성할 때 데이터 수집 기간의 시작일과 종료일에 사용자 지정 변수를 삽입합니다.
    위의 전송 설정을 워크플로우 정의에 통합하고, 작업을 샘플링되지 않을 정도로 세밀하게 분할할 수 있도록 사용자 지정 변수에 확장할 날짜를 설정합니다. (예: 1일 단위로 분할)

    데이터 마트 정의를 사용하여 특정 컬럼을 키로 테이블을 분할하는 방법

    테이블에 포함된 특정 컬럼을 키로 하여 테이블을 분할할 수 있습니다.
    예를 들어, A사, B사, C사... 와 같은 값을 가진 company_id 컬럼이 포함된 테이블이 있을 때, 테이블을 회사별로 구분하여 생성할 수 있다.

    설정 절차

    데이터 마트 정의를 생성할 때 쿼리출력 대상 테이블에 사용자 지정 변수를 삽입합니다.
    다음은 쿼리 및 출력 대상 테이블의 예입니다.
    - 쿼리 예시

    SELECT *
    FROM
      <전 테이블
    WHERE
      company_id == $companyId$
    
    • 출력 대상 테이블 예시
    date$_$companyId$
    

    위의 데이터 마트 정의를 워크플로우 정의에 통합하고, 키 컬럼에 포함된 값의 목록을 사용자 지정 변수로 확장하도록 설정합니다.


    위의 내용 외에도 사용자 지정 변수 루프 실행에는 다양한 사용 사례가 있습니다.
    자세한 내용은 고객지원팀에 문의해 주시기 바랍니다.

    설정 절차

    1. 전송 설정 및 데이터 마트 정의를 생성합니다. 이 때, 적절한 커스텀 변수를 삽입합니다.
      image.png
    문자열 타입의 사용자 정의 변수 값

    문자열 형식의 사용자 정의 변수를 삽입할 경우, 값을 입력합니다. 이 값은 루프 실행 시 전개되는 값에 의해 덮어씌워집니다.
    따라서 이 값은 루프 실행 시에는 사용되지 않습니다. 주의하시기 바랍니다.

    1. 워크플로우 정의를 작성합니다.

    2. 플로우 편집 화면에서 사용자 정의 변수가 포함된 작업(전송 설정, 데이터 마트 정의)을 통합합니다.
      image.png

    3. 작업 오른쪽의 삼점 리더 > 연필 아이콘을 클릭합니다. 작업 편집 화면이 표시됩니다.
      image.png

    4. 작업 편집 화면에서 사용자 지정 변수에서 루프 실행을 활성화하고 루프 유형을 선택합니다.
      image.png

    5. 대상 사용자 지정 변수를 선택하고 각각 적절히 설정합니다.
      각 설정 항목에 대한 자세한 내용은 아래 '루프 종류별 설정 항목'을 참고하세요.

    6. 워크플로우 작업을 실행합니다.
      사용자 지정 변수에서 루프 실행이 활성화된 태스크 작업은 사용자 지정 변수에 값이 순차적으로 전개되는 형태로 루프 실행됩니다.
      다음은 루프 실행된 태스크 작업의 실행 로그입니다.
      image.png

    루프 종류별 설정 항목

    문자열 확장으로 루프

    사용자 지정 변수에 확장할 문자열을 입력합니다.
    확장하고 싶은 문자열을 추가하려면 루프 추가를 클릭합니다.
    참고로 루프 실행 시 입력한 순서대로 문자열이 전개됩니다.
    image.png

    복사 및 붙여넣기를 통한 일괄 입력

    아래와 같은 텍스트를 복사하여 붙여넣기하면 일괄 입력할 수 있습니다.

    hoge
    fuga
    piyo
    

    기간(상대적 지정)으로 루프

    기간, 루프 간격, 전개 설정을 적절히 설정합니다.
    참고로, 루프 실행 시 사용자 지정 변수 출력 이미지 순서대로 날짜가 전개됩니다.

    loop-using-custom-variables-2024-08-29-7-5-6

    쿼리 결과 루프

    DWH에서 쿼리를 실행하고 결과 값을 사용자 지정 변수로 확장할 수 있습니다.
    쿼리 결과에서 루프는 다음과 같은 DWH로 대응하고 있습니다.
    - Amazon Redshift
    - Google BigQuery
    - Snowflake

    아래 화면 캡처는 'BigQuery의 쿼리 결과에서 루프'의 예시입니다.

    image.png


    이 문서가 도움이 되었습니까?