SQL 16
-
JOIN 두 개 이상의 테이블들을 공통 필드를 통해 merge 하는데 사용된다. 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합할 수 있다. Join의 문법 SELECT A.*, B.* FROM raw_data.table1 A ( ) JOIN raw_data.table2 B ON A.key1 = B.key1 and A.key2 = B.key2 WHERE A.ts >= '2019-01-01'; ( ) 괄호 안에는 JOIN의 종류에 따라 생략 될 수도 있고 INNER, LEFT, RIGHT, FULL, CROSS 가 들어갈 수 있다. JOIN 할 때 고려해야 하는 점 - 중복 레코드가 없어야 한다. - Primary Key의 유니크함이 보장되어야 한다. - JOIN 하는 테이블 간의 관계를 명확히..
-
adhoc 이라는 폴더는 DB 사용자가 실험을 하거나 새로운 테이블을 만들어 보거나 하는 폴더이다. temp 폴더와 쓰임새가 비슷하다. 이 adhoc이라는 폴더에 새로운 테이블을 만들어서 데이터 레코드를 카피해 보겠다. 만약 테이블이 이미 존재한다면 DROP 하는 명령어를 사용한다. 그리고 새롭게 테이블을 만든다. FROM은 이미 존재하는 테이블 뿐만 아니라 동적인 범위를 정할 수 있다. session_timestamp A, user_session_channel B를 조인한 테이블에서 B의 모든 내용과 A의 ts를 합쳐서 seoann_session_summary로 만들었다. adhoc.seoann_session_summary 에서 ts와 userid가 함께 존재하기 때문에 간단히 mau를 찾을 수 있다...
-
가장 많이 사용된 채널을 찾는다. raw_data 스키마에서 user_session_channel 테이블 안에 가장 많이 사용된 채널을 찾는다. 여기서 많이 사용되었다는 기준은 세션이 만들어진 수, 유저의 아이디 수 두가지로 찾을 수 있다. 모호한 기준이 주어지면 정확히 하기 위한 질문을 해야 한다. AS count라는 새로운 Column을 만들어낸다. 유저 아이디는 기본키가 아니기 때문에 여러개 있을 수 있다. 세션을 많이 만들었다면 수를 세었을 때 가장 많은 수의 Record가 있을 것이다. 월별 사용자 수를 위해 join을 사용하여 두개의 테이블을 inner join 한다. session_timestamp 는 A, user_session_channel은 B 세션 아이디를 기준으로 두 개의 테이블을 ..
-
-
관계형 데이터 베이스 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지 - 엑셀 스프레드 시트 테이블에는 Column 열, Record 행이 존재한다. Production Database OLTP Online Transaction Processing MySQL, PostgreSQL, Oracle 빠른 속도에 집중한다, 서비스에 필요한 정보를 저장한다 웹서비스나 앱에 바로 연결되어 사용된다. Data Warehouse OLAP Online Analytical Processing Redshift, Snowflake, BigQuery 처리 데이터 크기에 집중한다, 데이터 분석 혹은 모델 빌딩을 위해 데이터를 저장한다. 보통 프로덕션 데이터베이스를 복사하여 데이터 웨어하우스에 저장한다. 속도는 중요하..
-
Create(생성), Read(읽기), Update(갱신), Delete(삭제) Web Request를 실행해 볼 수 있는 사이트 https://www.postman.com/downloads/ Download Postman | Get Started for Free Try Postman for free! Join 17 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com Workspace REST API with Flask를 만들고 내 서버주소를 넣어준다. GET http://127.0.0.1:5000 GET http://127..