Excel을 Parquet으로 변환하면 분석 속도가 빨라지는 이유
·
카테고리 없음
1️⃣ Partquet 이란?데이터를 열(column) 단위로 저장하는 고성능 파일 포멧즉, csv나 excel처럼 데이터를 행 단위로 쭉 저장하는게 아니라각 열별로 데이터를 묶어서 저장하는 구조2️⃣ 엑셀 데이터를 partquet 형태로 바꿔서 불러오는 이유엑셀형태에서는 데이터의 용량이 클 경우 로드하는데 오래 걸릴 수 있습니다. 그래서 속도,용량,처리 효율면에서 더 좋은 Parquet을 사용하는 겁니다.3️⃣ Parquet이 구조적으로 빠른 이유1. 열 기반(Columnar) 저장 구조데이터를 행(row)이 아니라 열(column)단위로 저장필요한 컬럼만 선택적으로 읽을 수 있어 불필요한 데이터 I/O를 최소화따라서 I/O 속도(파일을 읽고 쓰는 속도)가 빠름 2. 필요한 컬럼만 읽는 “Colu..
[Tableau Bootcamp] 4일차 : 테이블 계산식
·
데이터 분석/08. Tableau
1. 테이블 계산식테이블 계산식에서는 무조건 집계값을 이용해야 한다행데이터를 가지고 차원에 따라 집계한 후에 그 집계된 값을 가지고 분석을 진행한다하지만 분석 요건에 따라서 이 집계값을 이용해서 값을 재계산해야할 때 테블 계산식을 이용한다 알고자 하는 것1. 4개년의 평균 매출액과 각 분기별 차이 2. 해당 연도의 평균 매출액과 각 분기별 매출액의 차이위와 같이 분석의 평균라인을 활용하면 알 수 있습니다하 지 만! 이 평균라인은 시각화를 해줄뿐 실제 이 값 자체를 다시 계산을 하는데 사용할 수 없습니다 테이블 계산식을 이용해서 이 문제를 해결해보겠습니다계산된 필드 만들기 -> 테이블 계산 1) 4개년 평균 매출 필드 생성 2) 해당 연도 평균 매출 생성이때 4개년 평균 매출 필드와 동일한 수식으로 생..
[Tableau Bootcamp] 3일차 : 매개변수
·
데이터 분석/08. Tableau
1. 매개변수 생성 및 표시 매개변수란, 계산 필터 및 참조선에서 상수 값을 동적으로 바꿀 수 있는 변수매개변수 활용 순서 : 매개변수 생성 -> 계산식 생성 -> 분석에 활용 단계 크기 :최소값에서 최대값까지 선택할 때, 얼마만큼의 크기를 가지고 이 값을 증가시켜나갈지를 의미매개변수표시를 하면 설정한 단계 크기만큼 값을 선택할 수 있습니다 자 이제는 매개변수를 시각화에 접목할 수 있도록 계산식을 생성하겠습니다.전에 생성한 매출달성여부 필드에서 목표달성금액을 넣어 편집하겠습니다. 그럼 매개변수를 이동했을 때 그래프의 변동을 확인하실 수 있게됩니다2. 매개변수를 활용한 Top N 만들기제품명에 따른 매출 합계 상위 10개를 추출해보겠습니다행에 있는 제품명을 필터로 옮기면 필터에 상위 옵션이 보입니다필..
[Tableau Bootcamp] 2일차 : 행과 집계
·
데이터 분석/08. Tableau
1. 계산식의 행과 집계의 차이차원에 따라 측정값 또는 차원을 집계해서 볼 수 있다집계되어 시각화되는 이유는 분석-> 측정값 집계 옵션이 적용되어 있기 때문이다옵션을 풀면 실제로 그 집계값을 이루고 있는 각가의 행을 볼 수 있다.2. 행 수준 계산식 vs 집계 수준 계산식어떤 순서로 계산이 이루어지느냐가 포인트 1️⃣ 행 수준 계산식데이터의 각 행(줄)마다 계산하는 방식즉, 모든 데이터를 하나씩 계산한 다음 -> 그 결과를 모아서 보여주는 계산[수익률] = [수익] / [매출] 상품수익매출수익률A101000.1B20500.4이렇게 각 행마다 계산된 수익률 값이 만들어지죠.이 값들은 데이터 안에 진짜로 존재하는 새 컬럼처럼 사용됩니다.나중에 다시 활용할 수도 있죠 2️⃣ 집계 수준 계산식각 행을 따로..
[Tableau Bootcamp] 1일차 : 태블로 기초
·
데이터 분석/08. Tableau
1. 분석 데이터 연결현재 2017년부터 202년까지 주문 데이터가 있습니다이 테이블을 하나의 주문 데이터로 병합하려고 합니다2017년 주문 데이터 박스 위에 2018년 주문데이터를 올리면 유니온이라는 표시가 나타납니다유니온은 각각의 테이블을 행방향으로 병합한다는 의미입니다관리자 데이터와 반품 데이터의 경우는 열로 병합되어야하는 특성을 가지고 있기 때문에JOIN을 통해서 주문 데이터에 병합하겠습니다이 페이지에서는 데이터를 정리할 수 있습니다1. 데이터 유형 변경2. 원하는 데이터만 필터링3. 값 그룹화, 분할4. 새로운 필드 생성 등등 + 연결 옵션라이브 : 데이터 베이스를 기반으로 분석을 하는 경우, 태블로를 시각화할 때 필요한 SQL문들이 데이터 베이스쪽으로 전달되고, 데이터 베이스에서 처..
[solvesql_Lv3] 미세먼지 수치의 계절간 차이(중앙값구하기)
·
코딩 테스트/02. SQL
1. 문제 설명데이터를 활용해 봄, 여름, 가을, 겨울 계절 별로 미세먼지의 농도에 차이가 있는지 알아보고싶다 조건 1) 제시된 시기별로 계절의 명칭을 붙이기조건 2) 계절별 미세먼지 농도의 중앙값과 평균을 구하기조건 3) PM10 농도의 평균값은 소숫점 셋째 자리에서 반올림 해 소수점 둘째자리까지 표시2. 풀이WITH base AS ( SELECT pm10, CASE WHEN DATE(measured_at) BETWEEN '2022-03-01' AND '2022-05-31' THEN 'spring' WHEN DATE(measured_at) BETWEEN '2022-06-01' AND '2022-08-31' THEN 'summer' WHEN DATE(measu..
[solvesql_Lv3]멘토링 짝꿍 리스트(JOIN에서 ON의 특징)
·
코딩 테스트/02. SQL
1. 문제 설명멘토,멘티 정의멘티 : 3개월 이내 입사한 인원 전체멘토 : 재직한지 2년이상된 직원기준날짜 : 2021년 12월 31일 기준으로조건조건 1) 멘토와 멘티는 다른 부서여야한다.조건 2) 매칭 가능한 멘토가 없는 경우도 모두 포함조건 3) 멘티id기준 ASC, 멘티1명에 대해 배정 가능한 멘토다 여러명인 경우 멘토 id 기준 ASC2. 풀이WITH mentee AS (SELECT employee_id, name, departmentFROM employeesWHERE join_date BETWEEN DATE_SUB('2021-12-31', INTERVAL 3 MONTH) AND '2021-12-31'), mentor AS (SELECT employee_id, name, departmentFR..
[solvesql_Lv3] 작품이 없는 작가 찾기
·
코딩 테스트/02. SQL
1. 테이블 정보artists 테이블 : MoMA에 등록된 작가들의 정보artworks_artists 테이블 : 각 작품에 참여한 작가들의 정보(단, 한 작품에 여러명의 작가가 참여 가능) 2. 조건조건1) MoMA에 등록된 작가 > 현재살아있지 않은 작가 > 등록된 작품이 없는 작가조건2) artist_id, name 출력 3. 풀이SELECT a.artist_id, a.nameFROM artists a LEFT JOIN artworks_artists aa ON a.artist_id = aa.artist_idWHERE a.death_year IS NOT NULL AND aa.artist_id IS NULL;LEFT JOIN은 왼쪽 테이블(artists) 은 전부 가져오고,오른쪽 테이블(artwork..
[solvesql]MySQL_2(Lv2)
·
코딩 테스트/02. SQL
1. 언더 스코어(_)가 포함되지 않는 데이터 찾기SELECT DISTINCT page_locationFROM gaWHERE page_location NOT LIKE '%\_%'ORDER BY page_location POINT : 언더스코어(_) 앞에 역슬래시를 해야하는 이유LIKE 문법에서 언더스코어(_)가 가진 특수 의미언더스코어는 임의의 한 글자를 뜻하는 와일드 카드로 쓰입니다.그래서 언더스코어를 문자로 사용할 경우 와일드카드가 아닌 진짜 언더스코어라고 알려주는 것이 역슬래시(\)입니다.예시로 확인하기패턴의미일치하는 예시'a_c'a + (임의의 한 글자) + cabc, a9c, a-c ✅'a\_c'a + ‘_’ 문자 그대로 + ca_c ✅2. 게임을 10개 이상 발매한 게임 배급사 찾기조건: ..
[solvesql_Lv2] 제목이 모음으로 끝나지 않는 영화
·
코딩 테스트/02. SQL
1. 풀이SELECT titleFROM filmWHERE rating IN ('R', 'NC-17') AND UPPER(RIGHT(TRIM(title), 1)) NOT IN ('A', 'E', 'I', 'O', 'U');조건1 : 17세 미만 학생이 혼자와서 대여할 수 없는 영화조건2 : 제목이 모음으로 끝나지 않는 영화 1-1. TRIM( ) — “양쪽 끝 문자(공백 등)를 정리해주는 함수”문자열의 앞뒤에 있는 불필요한 공백이나 특정 문자를 제거합니다.(가운데에 있는 문자는 제거하지 않음!)2. 다른 풀이 : REGEXP 사용SELECT titleFROM filmWHERE rating IN ('R', 'NC-17') AND title NOT REGEXP '[AEIOUaeiou]$';2-1. REGE..