일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mac hive 3
- 자소서 너무 오래 걸림
- Safe mode is ON
- Resources are low on NN
- 도커 교과서
- Failed to connect to localhost:10000
- 카카오 2020 코딩테스트
- 이더리움 #ethereum
- hive beeline 에러
- hive beeline 실행
- mac hadoop 3
- mac hadoop 설정
- code=0)
- hive beeline 설정
- 카카오 자물쇠와 열쇠
- mac hadoop
- 자소서 빨리
- mac hadoop 설치
- 기업 조사 빨리 하는 법
- 카카오 2020 코테
- is not allowed to impersonate hive (state=08S01
- hadoop safe mode
- 자소서 시간 줄이기
- 이더리움
- hive beeline
- 자소서 빨리 쓰는 법
- mac hive
- hadoop safe mode leave
- 백준 18428
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- Today
- Total
A seeker after truth
231128 화 - ETL ELT Redshift SQL BI (2) 본문
1. 특징
최소 기준 용량인 160기가 이상은 무조건 써야함
레드시프트를 포함한 DW들이 갖는 특징인데, 일반 RDBMS에서 했던 것처럼 레코드 단위로 insert into 해서 삽입하는 게 아니라 파일 write한걸 copy로 삽입 = 이게 bulk update.
primary key uniqueness를 보장하지 않음: 다른 데이터 웨어하우스들도 이렇고, 내가 어떤 컬럼을 PK로 설정한다 한들 그게 유니크하단 걸 보장해주지 않는단 뜻
3가지의 고정 비용 옵션. 첫째는 스토리지(즉 컴퓨터 크기)쪽에 포커싱한 옵션, 두번째는 컴퓨팅 파워(즉 처리 속도)
라지->8xlarge 로 가는 이런게 스케일업.
스케일 아웃은 용량 부족해졌을 때 새로운 노드를 추가하는 것. 오토 스케일링 온 옵션 통해 첨부터 이를 가능하게 만들 수 있.
2. 최적화
고정 비용 옵션일 때, 예를 들어 노드가 3개 레코드가 5개면 이걸 어떻게 저장할지 개발자가 지정해줘야함 (라운드 로빈 등등 지정 옵션 뭐 많지 않나..?) 아하 역시나. diststyle 방식 중 even 옵션이 라운드로빈이었군
빅쿼리, 스노우플레이크 등의 장점은 내가 그 최적화 옵션이니 방식이니 어떻게 분배하고 순서 뭐하고 알고리즘 뭐하고 코어 스레드 등등 생각 하나도 안해도 알아서 해준다는 거임. 물론 항상 잘한다는 건 아니고.
diststyle 방식 쓸떄가 젤 핵심인데, 어떤 컬럼 선택할 때 skew 생기는지를 꼭 체크.
CREATE TABLE my_table (
column1 INT,
column2 VARCHAR(50),
column3 TIMESTAMP,
column4 DECIMAL(18,2)
) DISTSTYLE KEY DISTKEY(column1) SORTKEY(column3);
컬럼1 기준으로 분배되고, 컬럼3 기준으로 한 노드 내 데이터 정렬 방식 지정. 정렬키는 타임스탬프 쓰는게 일반적
스큐된 키면 even 옵션 쓰는게 더 좋을 수 ㅇ. 단 그룹바이나 조인이 되면 같은 키 갖는 애들이 같은 노드로 이동해야 하기 때문에 셔플링 발생하게 되고, 시간이 더 걸리다 보니...
3. 벌크 업뎃 방식
이건 다른 애들도 다 비슷. 애초에 걍 이게 DW의 보편적인 레코드 적재 방식
4-1. 기본 데이터 타입
가장 다른 건 캐릭터 타입. 포스트그레스의 캐릭터는 기본 UTF8 기준 캐릭터기 때문에 영문이든 한문이든 한 글자는 한 캐릭터. 근데 레드시프트는 char varchar text 다 바이트 단위라 한국, 중국어, 일본어 같은 경우는 UTF8 기준 3바이트.
영어는 한 바이트가 한 캐릭터지만 CJK는 3바이트가 1캐릭터
글고 포스트그레스의 text는 거의 2기가? 까지 허용할 정도로 매우 긴 캐릭터 타입인데, 레드시프트는 걍 256바이트. 맥스 지정 값은 65535 바이트
4-2. 고급 데이터 타입
여기 나오는 super는 씨플플에서 쓰는 유니온 타입이랑 비슷, 동일한 것
글고 포스트그라스에는 제이슨 타입 있잖아? 그래서 nested된 structure를 처리하기가 쉽
rest는 네이티브한 타입으로 지원 안해준다. 그래서 json으로 된 포스트그라스 필드를 레드시프트에서 처리하고 싶다? 기본적으로 캐릭터 타입으로 받아온 다음 제이쓴 함수로 파싱하는 형태
'Data > 데엔 데브코스 TIL' 카테고리의 다른 글
부동산 BI 구축 (1) (0) | 2023.12.04 |
---|---|
2차 플젝 - DW 구축 (0) | 2023.12.03 |
231120~24 7주차 AWS - 이론 (0) | 2023.11.27 |
231113~17 6주차 DW, SQL, DA - 실습 (0) | 2023.11.24 |
231113~17 6주차 DW, SQL, DA - 이론 (0) | 2023.11.23 |