-
[ ClickHouse ] arrayFlatten Function 알아보기Database/Clickhouse 2023. 1. 23. 21:03728x90반응형
- 목차
키워드.
- - Flatten
함께 보면 좋은 글.
https://westlife0615.tistory.com/694
https://westlife0615.tistory.com/241
arrayFlatten 사용해보기.
arrayFlatten 함수는 Nested Array 형태의 데이터를 Flat 한 Array 형태로 변형합니다.
즉, Depth 가 깊은 Nested Array 의 Depth 를 1로 만들어주는 역할을 수행합니다.
예시는 아래와 같습니다.
user_actions 이라는 테이블을 생성하고, action 칼럼은 Depth 가 2인 Array 타입으로 선언합니다.
create table default.user_actions ( user String, action Array(Array(String)), acted_at DateTime ) engine = MergeTree() order by acted_at partition by toYYYYMM(acted_at);
insert into default.user_actions (user, action, acted_at) values ('Aeron', [['Click', 'View', 'Remove'], ['Click'], ['View']], now())
위의 결과처럼 user_actions 테이블의 action 칼럼은 이중 배열의 형식으로 값들이 존재합니다.
arrayFlatten 함수를 사용하게 되면, 아래와 같이 깊이가 1 이상인 Array 타입의 값들이 Flat Array 형태를 취하게 됩니다.
select user, action, arrayFlatten(action) from default.user_actions
타입 또한 Array(Array(String)) 타입에서 Array(String) 으로 바뀌게 됩니다.
select user, toTypeName(action), toTypeName(arrayFlatten(action)) from default.user_actions
반응형'Database > Clickhouse' 카테고리의 다른 글
[ClickHouse] Compact Wide Parts 알아보기 ( part_type ) (0) 2024.01.16 [ClickHouse] Block 알아보기 (0) 2024.01.10 ClickHouse MergeTree 알아보기 (0) 2023.11.07 [ ClickHouse ] arrayMap Function 알아보기 (0) 2023.09.06 [ ClickHouse ] groupArray Function 알아보기 (0) 2023.09.06