매크로 및 매크로 함수

매크로는 Cloud Data Fusion 플러그인 속성 구성 내에 있는 자리표시자입니다. ${ }로 묶인 변수(예: ${input_file_path})로 표시됩니다. 파일 경로 및 테이블 이름과 같은 요소에 동적 구성을 사용 설정하기 위해 자리표시자는 런타임 시 실제 값으로 대체됩니다.

플러그인 속성을 볼 때 옆에 M이 있는 속성 필드에 매크로를 추가할 수 있습니다. 매크로를 추가하려면 M을 클릭합니다.

자세한 내용은 매크로, 환경설정, 런타임 인수 관리를 참조하세요.

매크로 함수

매크로 외에도 다음과 같은 사전 정의된 매크로 함수를 사용할 수 있습니다.

  • logicalStartTime()
  • secure()

논리적 시작 시간 함수

logicalStartTime() 매크로 함수는 파이프라인 실행의 논리적 시작 시간을 문자열 값으로 반환합니다.

파라미터가 제공되지 않으면 시작 시간(밀리초)을 반환합니다. 모든 파라미터는 선택사항입니다. 이 함수는 시간 형식, 오프셋, 시간대를 인수로 사용하고 파이프라인의 논리적 시작 시간을 사용하여 대체를 수행합니다.

${logicalStartTime([timeFormat[,offset [,timezone])}

다음 목록에는 logicalStartTime()의 선택적 파라미터가 나와 있습니다.

매개변수 설명
timeFormat Java SimpleDateFormat 형식의 시간 형식 패턴입니다.
offset
논리적 시작 시간 이전의 타임스탬프입니다.
timezone
논리적 시작 시간에 사용할 시간대입니다.

예시

이 예시에서 파이프라인 실행의 논리적 시작 시간은 2020-01-01T00:00:00이고 다음 매크로를 제공합니다.

${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}

형식은 yyyy-MM-dd'T'HH-mm-ss이며 오프셋은 논리적 시작 시간 전의 1d-4h+30m입니다. 오프셋이 20.5시간으로 변환되므로 런타임 시 매크로 값은 2019-12-31T03:30:00으로 대체됩니다. 전체 매크로는 2020년 1월 1일 자정까지 20.5시간으로 평가됩니다.

파일 기반 플러그인에서 logicalStartTime() 사용

이 함수를 사용하는 가장 일반적인 방법은 파일 기반 플러그인의 경로 필드에서 사용하는 것입니다.

파일 이름에 파이프라인 시작 시간(밀리초) 포함

파일 이름에서 실제 시작 시간(밀리초)을 캡처하려면 매크로 함수에서 파라미터를 생략합니다.

예시

이 예시에서는 Amazon S3 파일 이름에 파이프라인 시작 시간(밀리초)을 포함합니다.

sales_012345671011.csv

Amazon S3 싱크 속성의 경로 필드에 다음 값을 입력합니다.

s3a://sales-data/sales_${logicalStartTime()}.csv

파일 이름에 오늘 날짜 포함

파일 이름에서 logicalStartTime() 매크로 함수를 사용하여 현재 날짜를 캡처할 수 있습니다.

예시

이 예시에서는 다음 S3 파일 이름에서 오늘 날짜를 캡처합니다.

s3a://sales-data/sales_20210204.csv

Amazon S3 싱크 속성의 경로 필드에 다음 값을 입력합니다.

s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv

logicalStartTime을 사용하여 정형 레코드에 타임스탬프 필드 추가

필드 추가 변환과 logicalStartTime()을 사용하여 타임스탬프를 정형 레코드에 추가할 수 있습니다.

  1. Cloud Data Fusion 허브에서 필드 추가 변환 플러그인을 가져옵니다. 플러그인을 배포하면 변환 목록에 필드 추가로 표시됩니다.
  2. 플러그인 속성을 구성할 때 타임스탬프를 정형 레코드에 추가합니다. 예를 들어 필드 이름에는 새 필드 이름을 입력하고 필드 값에는 logicalStartTime() 매크로 함수를 입력합니다.

보안 함수

secure() 매크로 함수는 단일 키를 인수로 받아 보안 저장소에서 키의 연결된 문자열 값을 조회합니다. 대체를 수행하려면 인수로 제공된 가 이미 보안 저장소에 있어야 합니다. 이는 민감한 정보로 대체하는 경우에 유용합니다.

예시

이 예시에서는 MySQL 데이터베이스에 연결하는 플러그인의 경우 비밀번호 속성 필드를 다음 값으로 구성합니다.

${secure(password)}

이 매크로는 런타임 시 보안 저장소에서 비밀번호를 가져옵니다.

재귀 매크로

매크로는 다른 매크로를 최대 10개 수준까지 재귀적으로 참조할 수 있습니다. 매크로 인수는 가장 안쪽 인수부터 가장 바깥쪽 인수까지 평가됩니다.

예시

이 예시에는 호스트 이름과 포트를 참조하는 서버가 있습니다. 다음 런타임 인수를 제공합니다. 마지막 인수는 다른 매크로를 참조하는 매크로입니다.

  • 호스트 이름: examplepetstore.com
  • 포트: 9991
  • 서버 주소: ${hostname}:${port}

파이프라인 구성에서 다음 표현식을 사용합니다.

server-address: ${server-address}

런타임 시에 다음 값으로 대체됩니다.

examplepetstore.com:9991

다음 단계