이번에는 시스템 변수 (System Variables)에 대해 소개하려고 합니다.
시스템 변수를 변경하는 이점
시스템 변수를 사용하면 재시도 횟수와 동시 실행 횟수 등 미리 정해진 상한선을 작업의 특성에 맞게 변경할 수 있습니다.
시스템 변수는 어디에서 설정합니까?
변수 화면의 왼쪽에서 "User"에서 "System"으로 전환하여 설정 화면을 전환할 수 있습니다.
시스템 변수 목록
참고 다음 표와 설명은 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)로 데이터를 업데이트하는 경우입니다.