Transform table의 열, 행과 결합 연산
Transform table은 Quiver에서 작은 규모의 데이터를 직접 다루는 로컬 표입니다. 데이터형 변환, 객체 조인과 집계, 셀 편집, 파생 속성 계산 및 시계열 일괄 연산에 사용합니다. 표 생성부터 각 변환 단계까지 50,000행 한도를 고려합니다.
표로 받을 수 있는 데이터
Transform table 카드는 다음 입력을 받아 Transform table을 반환합니다.
- Object set, Transform table, Event set
- Dataset, Dataset SQL의 결과, Ontology SQL
- Categorical chart, Pivot table, Time series chart
- Number array, String array, Boolean array, Time array
Transform table 카드 자체는 표준 카드이며 표 안의 변환은 아닙니다. 입력별 생성 방식과 수동 표는 Transform table 사용법을 따릅니다.
열을 만들거나 편집하기
아래 연산은 표 안의 변환으로 지원하며 독립적인 표준 카드는 아닙니다. Row number를 제외하면 입력과 출력이 모두 Transform table입니다.
| 변환 | 동작 |
|---|---|
| Create values | 열의 자료형과 기본값을 정하여 새 열을 만듭니다. String, Number, Boolean, Date/time과 Time series를 지원합니다. |
| Edit values | 사용자가 편집할 수 있도록 허용할 열을 선택합니다. 해당 열의 셀을 선택하여 값을 바꿀 수 있습니다. |
| Rename columns | 하나 이상의 열 표시 이름을 바꿉니다. 기반 column ID는 바꾸지 않습니다. |
| Select columns | 유지할 열의 부분집합을 선택합니다. 열이 많은 표의 성능을 개선할 수 있습니다. |
| Row number | 각 행에 0부터 시작하는 행 번호를 계산합니다. 입력형은 Flow start, 출력형은 Number입니다. |
함수 결과로 새 열을 만들 때는 함수 기반 파생 열을 사용합니다.
조건으로 행 유지 또는 제거
Filter transform table은 열 값이나 분석의 다른 데이터를 조건으로 행을 유지하거나 제거합니다. 조건 중 하나라도 만족하는지 또는 모든 조건을 만족하는지 선택할 수 있습니다. + Add filter로 조건을 추가하고 시각적 편집기나 수식을 사용합니다.
시각적 편집기
열을 선택한 뒤 자료형에 맞는 비교 연산을 고릅니다.
| 열 자료형 | 연산 |
|---|---|
| String | Starts with, Ends with, Contains, Does not contain, Is, Is not, String to Boolean |
| Date | Before, On or before, After, On or after, Between (inclusive), On, Not on |
| Number | Greater than, Greater than or equal to, Less than, Less than or equal to, Equal to, Not equal to |
| Boolean | Is, Is not |
String to Boolean은 문자열 열에 true 또는 false 값이 있을 때 사용할 수 있습니다. 각 비교의 대소문자 처리나 경계 포함 여부는 비교 카드를 따릅니다.
아래 구성은 Ground Elevation 열의 값이 해당 열의 평균보다 큰 행을 고릅니다. 평균은 숫자 집계 카드로 계산한 값입니다.
Boolean 수식
수식이 true 또는 false를 반환하도록 작성합니다. 열은 @column 형태로 참조하고, 분석의 다른 카드 데이터는 $A와 같은 전역 식별자로 참조합니다.
@column > 0
@column > $A
두 줄은 각각의 조건 예시이며, column을 실제 열 참조로 지정합니다. 두 번째 예시의 $A는 숫자 매개변수입니다.
Ground Elevation의 열 식별자가 groundelev이고 평균 집계 카드의 전역 식별자가 $O인 예시는 다음과 같습니다.
@groundelev > $O
이 필터의 수식에서는 String 입력을 지원하지 않습니다. 문자열 열 조건에는 시각적 편집기를 사용합니다. Filter transform table의 입력과 출력은 Transform table이며 표 안의 변환으로만 지원합니다.
두 표를 조건으로 조인
Join to transform table은 하나 이상의 일치 조건으로 두 표를 조인합니다.
- Join type에서 LEFT, INNER 또는 FULL을 고릅니다.
- Join table에 결합할 표를 지정합니다.
- 현재 표와 조인한 표에서 남길 열을 선택합니다.
- 필요하면 조인 열의 접두어를 정하여 이름 충돌을 피하거나 출처를 표시합니다.
- Match Conditions에서 열 쌍을 추가합니다. Match style의 ALL 또는 ANY로 조건 결합 방식을 정합니다.
입력과 출력은 Transform table이며 표 안의 변환으로만 지원합니다.
연결 객체를 같은 행으로 조인
Join to linked objects는 온톨로지 링크 관계를 이용한 inner join입니다. 원래 객체와 연결 객체의 속성을 같은 행에서 계산하거나 시각화할 때 사용합니다. 연결 대상 객체만 반환하는 Switch to linked object set과 구분합니다.
입력과 출력은 Transform table이며 표 안의 변환으로만 지원합니다. 객체 집합이 50,000행을 넘어 표로 처리할 수 없으면 Join datasets를 사용합니다.
모든 행 조합 만들기
Cross join transform tables는 왼쪽 표의 각 행을 오른쪽 표의 모든 행과 결합합니다. 입력과 출력은 Transform table이며 표 안의 변환입니다. 양쪽 행 수가 각각 N과 M이면 결과 행 수는 N × M이므로 표의 행 수 한도를 고려합니다.
표를 위아래로 합치기
Union (transform table)은 다른 Transform table의 행을 합칩니다. 기본적으로 입력 열과 출력 열을 column ID로 자동 대응시킵니다.
수동 열 매핑을 사용하면 어느 입력 열과 출력 열을 짝지을지 지정할 수 있습니다. 입력 표 사이의 일부 자료형 호환 문제도 수동 매핑으로 해결할 수 있습니다. 표시 이름을 바꾸는 Rename columns는 column ID를 바꾸지 않으므로 기본 매핑 기준도 바뀌지 않습니다.
입력과 출력은 Transform table이며 표 안의 변환으로만 지원합니다.
표를 피벗하여 집계하기
Pivot transform table은 Transform table을 입력으로 받아 행 속성과 열 속성별로 데이터를 묶고 각 셀을 집계합니다.
| 설정 | 의미 |
|---|---|
| Row properties | 값이 피벗 표의 행 머리글이 됩니다. |
| Column properties | 값이 피벗 표의 열 머리글이 됩니다. |
| Aggregations | 행 및 열 속성으로 나눈 각 셀을 계산합니다. Count, 숫자 속성의 Sum/Min/Max, 속성의 Unique count 등을 제공합니다. |
도시별 일일 강수량을 분석하는 예시에서 city를 행 속성, year를 열 속성, 강수량 합계를 집계로 고릅니다. 행에는 New York, Chicago와 Los Angeles가, 열에는 2015, 2016과 2017이 나타나며 각 셀은 해당 도시의 해당 연도 총강수량입니다.
같은 그룹 속성을 행과 열 중 어디에 배치하는지는 표시 방향을 바꿉니다. A와 B를 모두 행에 두거나, A를 행에 B를 열에 두거나, 둘 다 열에 두어도 그룹별 데이터는 같습니다.
조건부 색상 등 고급 서식을 적용하거나 피벗 열을 더 계산하려면 결과를 다시 Transform table로 변환합니다. Pivot transform table의 출력형은 Pivot table 또는 Transform table이며, 표준 카드로 지원하고 표 안의 변환으로는 지원하지 않습니다.
객체 집합의 피벗과는 null 및 배열 차원 처리 방식이 다릅니다. 계산 방식 차이를 확인합니다.