중급 Part02: System 변수 또는 사전 정의된 변수에 대하여

이번에는 시스템 변수 (System Variables)에 대해 소개하고 싶습니다.

시스템 변수를 변경하는 이점

시스템 변수를 사용하면 재시도 횟수와 동시 실행 횟수 등 미리 정해진 상한선을 작업의 특성에 맞게 변경할 수 있습니다.

시스템 변수는 어디에서 설정합니까?

변수 화면의 왼쪽에서 "User"에서 "System"으로 전환하여 설정 화면을 전환할 수 있습니다.

thumbnail image

시스템 변수 목록

참고 다음 표와 설명은 2020 년 4 월 현재 정보를 기반으로 작성되었습니다.업데이트될 수 있으므로 최신 정보는 이 도움말을 참조하십시오.

System Variable 설명 기본값 단위 MB 변환
_MAX_COMBINED_SPLIT_SIZE 단일 작업에서 처리할 데이터의 양을 바이트 단위로 지정합니다. 작은 파일은 이 크기에 도달할 때까지 결합됩니다. 그것보다 큰 파일은, 압축되어 있지 않은 경우, 혹은 Bzip2 를 사용해 압축되고 있는 경우 모두에 설정된 사이즈에 근거해 분할됩니다. 67,108,864 바이트 64
_BYTES_PER_REDUCER 한 레코드에서 읽을 수 있는 문자열 크기(바이트)입니다. 그보다 큰 크기의 레코드는 무시됩니다. 209,715,200 바이트 200
_LINE_RECORD_READER_MAX_LENGTH 파일에서 읽을 때 한 줄의 최대 바이트 길이. 이 값보다 긴 행은 파기됩니다. 1,048,576 바이트 1
_DEFAULT_TIMEZONE DateTime Field에서 Timezone 지정이 없는 것에 대해서 Timezone을 자동 추가할 때의 Timezone. 기본값은 UTC. +00:00'
_DEFAULT_PARALLELISM 패키지에서 사용할 병렬 reduce 작업의 기본 수를 설정합니다. 일반적으로 Reducer의 수는 데이터의 크기와 배포에 따라 다릅니다. 데이터가 비교적 크지만 편향된 경우(예를 들어, 필드에 집계하는 경우 대부분의 레코드는 하나의 그룹으로 분류됨) Reducer를 추가해도 성능에 긍정적인 영향을 미치지 않습니다. 기본값은 0입니다. 이는 Reducer 수가 _BYTES_PER_REDUCER에 의해 계산됨을 의미합니다. 0
_SHUFFLE_INPUT_BUFFER_PERCENT 셔플 중 (Mapper 출력을 Reducer에 전달하는 처리) 최대 힙 크기에서 Map 출력 저장에 할당되는 메모리의 비율입니다. 70%
_COPY_PARALLELISM 복사 전처리 작업에 사용되는 프로세스 수를 제어합니다. 0
_COPY_TARGET_PARTITIONS 복사 전처리 조치로 데이터가 분할되는 파티션 수를 제어합니다. 이 변수의 값을 0으로 설정하면 프로세스는 파일을 병합하지 않습니다. 100
_COPY_TARGET_SIZE 사본 전처리 조치로 연결된 파일의 파티션에서 파일당 최대 크기를 제어합니다. 64
_PARQUET_COMPRESSION 저장 시 Apache Parquet을 이용하는 경우의 압축 타입. 사용 가능한 값은 다음과 같습니다. UNCOMPRESSED, GZIP, SNAPPY.
_PARQUET_PAGE_SIZE Apache Parquet 압축을 위한 페이지 크기 1 * 1024 * 1024
_PARQUET_BLOCK_SIZE Apache Parquet의 메모리에 버퍼링되는 행 그룹의 크기.* Apache parquet 문서에 따르면 큰 행 그룹 (512MB - 1GB)을 권장합니다https://parquet.apache.org/documentation/latest/ 128 * 1024 * 1024 Byte 128
_GA_API_REQUEST_READ_TIMEOUT Google 애널리틱스 요청 시간 초과 30 * 1000 MilliSecond
_GA_API_REQUEST_MAX_RESULTS Google 애널리틱스 응답에 포함할 수 있는 최대 행 수입니다. (지정할 수 있는 Max는 10000) 10,000
_GA_API_MAX_INPUT_SPLITS Google 애널리틱스에서 동시에 실행할 수 있는 최대 요청 수 10
_GA_API_SKIP_BAD_PROFILES Google 웹로그 분석 프로필 ID에 액세스할 수 없는 항목이 포함되어 있고 패키지 실행을 성공적으로 완료하려면 true로 설정합니다. False
_ADWORDS_API_REQUEST_READ_TIMEOUT Google 애드워즈에 대한 요청 시간 초과 180 * 1000 MilliSecond
_ADWORDS_API_MAX_INPUT_SPLITS Google 애드워즈에 동시에 실행할 수 있는 최대 요청 수 -1
_CACHED_BAG_MEMORY_PERCENT Map 또는 Reduce 태스크의 모든 백 (데이터를 처리할 때, 1 개 혹은 복수의 필드를 그룹화한 것=즉 처리 대상의 데이터입니다)에 할당할 수 있는 힙의 비율. 여기에서 설정한 값이 가득 차면 데이터가 디스크로 유출됩니다. 값을 늘리면 디스크로의 유출이 줄어들지만 힙 메모리가 부족할 가능성이 높아집니다. 0.2 20%
_MAP_MAX_ATTEMPTS Map 태스크 정보 실패로 완료하기 전에 몇 번 재시도합니까? 3
_REDUCER_MAX_ATTEMPTS Reduce 태스크 정보 실패로 완료하기 전에 몇 번 재시도합니까? 3
_MAP_MAX_FAILURES_PERCENT 작업이 실패하고 완료되기 전에 실패할 수 있는 Map 작업의 최대 백분율을 제어합니다. 값의 범위는 0~100입니다. 0
_REDUCER_MAX_FAILURES_PERCENT 작업이 실패하고 완료되기 전에 실패할 수 있는 Reduce 작업의 최대 백분율을 제어합니다. 값의 범위는 0~100입니다. 0
_MAP_TASK_TIMEOUT 태스크 응답이 없을 때 얼마나 기다려야 하고 태스크를 킬할지를 밀리초 단위로 설정합니다. 600 * 1000 MilliSecond
_BQ_READER_POLL_RETRIES Google BigQuery에서 데이터 내보내기를 폴링할 때 재시도 횟수를 제어합니다. 60 횟수
_BQ_READER_POLL_INTERVAL Google BigQuery에서 데이터 내보내기를 폴링할 때 재시도 간격을 밀리초 단위로 제어합니다. 10,000 MilliSecond
_BQ_READER_MAX_SARDS Shard된 테이블을 로드할 때의 최대 수 500
_JDBC_SPLIT_QUERY_RETRIES 데이터베이스 소스의 병렬 쿼리에서 키의 최소값과 최대값을 검색하기 위한 재시도 간격입니다. 3
_JDBC_SPLIT_QUERY_RETRIES_INTERVAL_IN_SEC 데이터베이스 소스의 병렬 쿼리에서 키의 최소값과 최대값을 검색하기 위한 재시도 간격입니다. 30
_SQL_COMMAND_TIMEOUT_IN_SEC SQL 런타임 시간 초과. 기본값은 시간 초과 없음입니다. -1
_INTERMEDIATE_COMPRESSION 결과에 대해 압축할지 여부입니다. 기본값은 압축 없음입니다. False
_SPANNER_MAX_WORKERS Google Cloud Spanner가 검색어를 분산 처리하는 최대 작업자 수 2
_SPANNER_BATCH_SIZE Google Spanner에 로드할 때 트랜잭션당 배치 크기(행 수) 기본값은 100입니다. 100
_FS_SFTP_MAX_RETRIES SFTP로 파일이나 디렉토리를 검색할 때의 재시도 횟수입니다. 기본값은 5입니다. 5
_FS_SFTP_RETRY_SLEEP SFTP로 파일이나 디렉토리를 검색할 때의 재시도 간격(밀리초)입니다. 기본값은 500입니다. 500 밀리초
_FS_SFTP_BLOCK_SIZE 작업이 SFTP에서 읽는 블록의 크기를 결정합니다. 큰 파일을 읽을 때 기본값보다 큰 값으로 변경합니다. 64 * 1024 * 1024 바이트 64
_FACEBOOK_ADS_INSIGHTS_SLEEP Facebook Ads Insights 보고서를 가져올 때 재시도 간격(밀리초)입니다. 기본값은 0입니다. 0
_FB_ASYNC_REPORT_TIMEOUT Facebook Ads Insights 보고서의 비동기 요청에 대한 요청 시간 초과(시도당). 이 값을 초과하면 시도가 실패합니다(기본값 - 시간 초과 없음). -1
_HTTP_FOLLOW_REDIRECTS REST API 소스 또는 Curl 명령을 사용하는 Function이 리디렉션된 상태 코드를 따르지 않도록 하려면 false로 설정합니다. True
_HTTP_REQUEST_MAX_RETRIES 예외 오류가 발생하기 전에 HTTP 응답 코드 429 또는 5xx를 수신할 때 시도되는 REST API 소스 또는 *Curl* 함수의 재시도 횟수. 8
_SYNC_WAIT_TIME Amazon Redshift를 Destination으로 사용하는 데이터를 준비한 후 Redshift 클러스터에서 COPY를 실행하기 전에 대기하는 시간(초) 1
_XPATH_IGNORE_ERRORS XML의 Xpath 오류 무시할지 여부. 기본값은 무시하지 않습니다. False
_FS_IGNORE_MISSING_INPUT_EXCEPTIONS 소스 경로(파일 스토리지 소스 구성요소 포함)에서 입력 파일을 찾을 수 없는 경우 패키지를 성공적으로 완료하려면 true로 설정하십시오. False
_ADWORDS_API_SKIP_BAD_ACCOUNTS 애드워즈 계정 ID에 액세스할 수 없는 항목이 포함된 경우 패키지를 성공적으로 완료하려면 true로 설정합니다(Google 애드워즈 소스 구성요소 사용).
False

Mapper 및 Reducer 재시도 횟수 제어 정보

_MAP_MAX_ATTEMPTS:

데이터 소스에서 데이터를 검색할 때 재시도 횟수를 정의하는 _MAP_MAX_ATTEMPTS 의 제어 대상에는 제한이 있습니다. 아래 사항은 영향을 받지않으므로 주의하시길 바랍니다.

  • JDBC (데이터베이스)의 재시도 횟수는 _JDBC_SPLIT_QUERY_RETRIES로 지정할 수 있습니다.
    • 기본 재실행 횟수는 3회
  • SFTP의 재시도 횟수는 _FS_SFTP_MAX_RETRIES에서 지정할 수 있습니다. 
    • 기본 재실행 횟수는 5회

_REDUCE_MAX_ATTEMPTS:

  • _REDUCE_MAX_ATTEMPTS로 재시도 횟수를 제어할 수 있는 것은 Curl 함수를 사용한 요청 등 HTTP 리퀘스트(POST)로 데이터를 업데이트하는 경우입니다.