Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Contour 자주 묻는 질문

새 분석은 어디서 시작하나요?

작업 공간 탐색 막대의 Files에서 Your files로 이동하고 +New > Analysis를 선택합니다. 분석이 만들어지면 +Create a new path를 선택하고 사용할 데이터셋을 고릅니다. 경로 만들기에서는 다른 경로의 결과를 재사용하는 방법도 설명합니다.

관련 데이터를 어떻게 찾나요?

데이터셋 이름을 알고 있으면 작업 공간 왼쪽의 전체 검색을 사용합니다. 검색은 데이터셋뿐 아니라 스프레드시트, Contour 분석과 Code Workbook 등 플랫폼 리소스를 대상으로 합니다.

어떤 데이터가 있는지 둘러보려면 Data Catalog에서 정리하고 큐레이션한 데이터셋을 찾습니다. 작업 공간의 Home에서 홈 화면으로 돌아가 Data Catalog에 접근할 수 있습니다.

동료와 분석을 공유하려면 무엇이 필요한가요?

Share에서 URL을 만들거나 사용자를 직접 추가하여 알릴 수 있습니다. 상대방에게 분석이 있는 프로젝트뿐 아니라 입력 및 조인 데이터셋의 접근 권한도 필요합니다. Permission denied가 나타나면 누락된 리소스의 권한을 요청합니다. 편집 역할과 읽기 시점 보안의 범위는 공유와 공동 편집을 확인합니다.

분석할 행만 어떻게 남기나요?

Histogram으로 열의 범주를 보고 선택하거나 Filter 보드에 조건을 입력합니다. Keep은 일치한 행을 남기고 Remove는 일치한 행을 제외합니다. AND MATCHING은 한 행의 모든 조건, OR MATCHING은 하나 이상의 조건이 일치하는지 판단합니다.

예를 들어 carrier_code가 DL인 분석을 UA로 바꾸어 재사용하거나 해당 조건을 제거할 수 있습니다. Contour 연산은 기본적으로 열 전체에 적용하므로 일부 행만 계산하려면 먼저 필터링합니다. 필터 사용법에 비교 연산과 와일드카드 조건이 나와 있습니다.

열 표시와 분석 화면을 어떻게 바꾸나요?

열을 오름차순이나 내림차순으로 정렬하고, 순서를 바꾸거나 제거할 수 있습니다. 다른 데이터셋의 열은 Join 보드로 추가합니다. Table 보드의 표시 형식 변경과 이후 경로에 전달할 실제 열 변경은 보드 참조에서 구분합니다.

갱신되는 분석 결과를 정기 문서에 넣으려면 Notepad에 보드를 복사하여 실시간 내용으로 사용할 수 있습니다. 결과 공유 방식을 참고합니다.

셀 수식과 열 계산은 어떻게 다른가요?

Expression 보드의 Add new column에서 새 열의 식을 작성합니다. Excel의 A1 * B1을 C1에 넣는 방식 대신, 두 열의 같은 행 값을 곱하여 결과 열을 만듭니다.

"column1" * "column2"

실제 입력 열 이름으로 바꾸어 사용합니다.

Excel 함수는 무엇으로 바꾸나요?

IF

조건 분기는 CASE로 작성합니다. 다음은 origin이 JFK이면 yes, 아니면 no를 반환하는 예시입니다.

CASE
    WHEN "origin" = 'JFK' THEN 'yes'
    ELSE 'no'
END

CONCAT

열들을 문자열로 연결합니다.

CONCAT("timestamp", "order_ID_number")

연결한 값을 식별자로 사용하려면 입력 조합과 문자열 표현이 충돌하지 않는지 확인합니다. 단순 연결만으로 고유성이 자동으로 보장되지는 않습니다.

VALUE와 형변환

문자열 cost를 숫자로 계산하려면 DOUBLE로 변환합니다.

CAST("cost" AS DOUBLE)

대상 유형에는 STRING, INTEGER, BOOLEAN, DATE, TIMESTAMP와 LONG 등도 사용할 수 있습니다.

LEFT와 부분 문자열

SUBSTRING은 시작 위치와 길이를 지정합니다. 위치는 1부터 셉니다.

SUBSTRING("airport_display_name", 2, 3)
airport_display_name 예시결과
[ALB] Albany International + Albany, NYALB
[AZA] Phoenix - Mesa Gateway + Phoenix, AZAZA
[CLT] Charlotte Douglas International + Charlotte, NCCLT

지원 함수와 인자 조건은 표현식 문법을 참고합니다.

VLOOKUP처럼 다른 표의 열을 가져오려면 어떻게 하나요?

정확히 일치하는 키로 다른 표의 열을 가져오는 용도에는 Join 보드를 사용합니다. 다음은 가상 flights 데이터입니다.

flight_iddateorigintail_num
9992018-04-01LASN227FR
9972018-07-27MIAN303FR

aircraft 데이터는 다음과 같습니다.

tail_numbermanufacturernumber_of_seats
N303FRAirbus186
N227FRAirbus180

flights.tail_num과 aircraft.tail_number를 키로 사용하여 manufacturer와 number_of_seats를 가져옵니다. 들어오는 열 이름이 겹치면 접두어를 지정합니다.

flight_iddateorigintail_nummanufacturernumber_of_seats
9992018-04-01LASN227FRAirbus180
9972018-07-27MIAN303FRAirbus186

Add columns는 left join, Intersection은 inner join, Switch to dataset은 right join이며 full join도 사용할 수 있습니다. 추가할 상대 열과 키를 선택하고 여러 조건에는 Match Any 또는 Match All을 지정합니다. 조인과 집합 연산에서 중복과 자료형 처리까지 확인합니다.

피벗 테이블은 어떻게 만드나요?

Pivot Table 보드에 행과 열의 그룹 기준 및 집계 지표를 지정합니다. 집계 결과 자체를 다음 보드에 전달하려면 Switch to pivoted data를 선택합니다. 설정과 합계의 의미는 보드 참조에 설명되어 있습니다.

열 전체의 합계나 평균은 어떻게 구하나요?

Expression 보드의 Aggregate 모드에서 그룹 열과 집계식을 지정합니다. 전체 열 중 일부 행만 집계하려면 먼저 필요한 행으로 필터링합니다.

Excel의 집계 함수는 무엇에 대응하나요?

함수Contour 예시
SUMcarrier_code별 sum("distance")를 total_distance_flown으로 계산
COUNTcarrier_code 또는 dest별 count("flight_id")로 항공편 수 계산
AVGcarrier_code별 avg("air_time")
MAXcarrier_code별 max("air_time")
MINcarrier_code별 min("air_time")

다음은 carrier_code별 이동 거리 합계입니다.

다음 화면은 dest별 flight_id 개수를 count_flights로 계산하는 예시입니다. 항공사별 집계가 필요하면 그룹 열을 carrier_code로 바꿉니다.

중간 결과를 어떻게 점검하나요?

Table 보드로 새 열과 처리 결과를 살펴보고 Histogram으로 범주 분포와 필터 결과를 확인합니다. 전체 행 수는 Summary 보드로 확인합니다. Table의 화면 미리보기와 전체 데이터 규모는 구분합니다.

결과 데이터셋 저장은 코드 기반 변환과 어떻게 다른가요?

Contour 로직도 Spark 변환으로 실행하고 분산 저장소의 데이터셋으로 저장합니다. Code Repositories나 Code Workbook으로 생성하는 데이터셋과 같은 배치 처리 원리를 사용합니다.

새 데이터셋으로 저장하는 작업에는 Contour 직접 반출의 행 수 제한을 적용하지 않습니다. 다만 데이터가 커질수록 계산 비용과 저장 시간이 증가합니다. 저장 조건의 제한 뷰, 프로젝트 범위와 최신 입력 버전 규칙을 확인합니다.

내보내기 100,000행 제한이 맞나요?

Contour 직접 내보내기의 일반적인 행 수 한도는 100,000행입니다. 더 많은 결과가 필요하면 경로의 저장 조건과 권한이 허용하는 경우 결과를 데이터셋으로 저장하고 Dataset Preview의 Actions에서 내려받을 수 있습니다.

Contour 반출과 데이터셋 다운로드의 한도는 Foundry 환경과 조직 요구에 따라 다를 수 있습니다. 데이터셋 저장이 반출 권한이나 다운로드 제한을 해제하는 것은 아닙니다.

분석을 자동으로 갱신할 수 있나요?

분석 데이터는 Update data로 갱신할 수 있습니다. 분석 설정의 Refresh analysis data on open을 켜면 열 때 최신 입력을 가져옵니다. 이는 분석을 백그라운드에서 일정에 따라 계속 갱신하는 작업과 구분합니다.

정기적인 결과 데이터셋 빌드가 필요하면 먼저 데이터셋으로 저장하고 Dataset Preview의 Actions > Manage schedules에서 일정을 구성합니다. Contour 로직을 바꾸었을 때는 Update로 로직 반영을 먼저 수행합니다.

변경을 취소할 수 있나요?

오른쪽 위의 Undo로 변경을 취소합니다.

분석 복제 시 진행 표시만 계속 보이면 어떻게 하나요?

경로가 너무 많을 때 발생할 수 있습니다. 불필요한 경로를 정리한 뒤 복제를 다시 시도합니다. 경로 분리와 중간 결과 구체화는 성능 개선을 참고합니다.

결과 데이터셋 빌드가 실패하면 무엇을 확인하나요?

Builds에서 실패한 실행의 Logs와 입력 트랜잭션을 확인합니다. 이전 성공 이후 로직, 스키마와 데이터 규모가 바뀌었는지 비교하고 자원 대기 및 권한 문제를 구분합니다. 구체적인 오류 문자열과 지원 요청 정보는 빌드와 검사 문제 해결에 나와 있습니다.

피벗 미리보기에서 데이터가 빠진 것처럼 보이는 이유는 무엇인가요?

표시되는 집계값은 전체 입력을 대상으로 계산하지만 미리보기에는 모든 결과가 나오지 않습니다. 대부분 환경에서 행 계산 한도는 1,000행이며, 큰 피벗에는 100열 또는 10,000값 범위의 미리보기 제한도 고려합니다. 반환된 행의 집계는 완전하지만 모든 결과 행이 반환된다는 의미는 아닙니다.

전체 결과를 다루려면 다음 순서로 진행합니다.

  1. Switch to pivoted data를 선택합니다.
  2. 다음 Table 보드에서 결과를 확인합니다. Pivot 보드의 미리보기 자체가 전체 표로 바뀌는 것은 아닙니다.
  3. 필요하면 피벗 앞에서 업무에 맞는 필터를 적용하여 결과 규모를 줄입니다.
  4. 전체 피벗 결과를 내보내려면 전환한 이후의 Export 보드 또는 경로 끝의 내보내기를 사용합니다. 반출 행 수 제한과 권한은 별도로 적용됩니다.

Table 보드 역시 미리보기 행 수 제한이 있으므로 화면에 보인 행만으로 전체 결과 행 수를 판단하지 않습니다.

피벗의 중복 열 오류는 어떻게 해결하나요?

열 그룹 기준으로 사용하는 값에 Test와 test처럼 대소문자만 다른 값이 있는지 확인합니다. 피벗 결과 열 이름의 중복 검사에서는 두 이름이 충돌할 수 있습니다. 해당 값을 같은 대소문자로 정규화한 뒤 피벗합니다. 표현식에서 열 이름을 대소문자에 맞게 참조하는 규칙과는 별개입니다.

분석이 전반적으로 느리면 무엇을 확인하나요?

  1. 입력이 분석에 적합하게 정리된 Parquet 또는 Avro 데이터셋인지 확인합니다. 원시 CSV 입력은 반복 분석에 비효율적일 수 있습니다.
  2. Dataset > Details > Files > Dataset Files에서 파일 크기와 개수를 확인합니다. 지나치게 작거나 큰 파일은 상위 변환에서 파티션을 조정합니다. 평균 128MB 이상을 목표로 하는 기준과 예시는 성능 개선에 설명되어 있습니다.
  3. 긴 경로의 복잡한 중간 결과를 데이터셋으로 구체화하고 새 경로가 그 결과에서 시작하도록 구성합니다.
  4. 경로가 많아 경로 개요 화면이 느리면 분석을 나눕니다.

윈도 함수에서 count_distinct가 실패하는 이유는 무엇인가요?

count_distinct는 Expression 보드의 Aggregate 모드에서 사용하며 윈도 함수 안에서는 지원하지 않습니다. Spark 관련 제약과 같은 범위입니다.

파티션별 고유 개수처럼 행 및 열 그룹 조합으로 표현할 수 있는 계산은 Pivot Table의 Unique Count로 구현할 수 있습니다. 이동 프레임처럼 순서와 범위가 있는 윈도 계산까지 같은 결과가 되는지는 별도로 판단해야 합니다.