데이터 조직에 대해
·
Database & Data/기초지식
데이터 조직의 비전- 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성할 수 있는지? 1) 하는 업무(결정 과학 - Decision Science)- 데이터를 기반으로 의사결정을 가능하게 한다.* 데이터 기반 결정(data drvien decisions) - 데이터로 어떤 것들을 최적화하고 싶다.* 데이터를 고려한 결정(data informed decisions) - 데이터로 어떤 비즈니스를 만든다.- 데이터 기반으로 지표를 정의, 대시보드와 리포트 생성 등을 수행할 수 있다.- 데이터를 기반으로 사용자 서비스 경험 개선 및 프로세스 최적화를 한다. 2) 간단한 업무 분배 정의- 데이터 엔지니어: 데이터 인프라 구축- 데이터 분석가: 데이터 분석 DB(데이터 웨어하우스)를 통한 지표 정의, 시각화- 데..
트랜잭션 소개 - 8
·
Database & Data/기초지식
트랜잭션이란?데이터베이스에서 한 번에 수행되어야 할 일련의 연산을 의미 1)  네 가지 특성(ACID 속성)- 원자성(Atomicity)트랜잭션에 포함된 연산들은 모두 성공하거나, 아니면 하나도 수행되지 않아야 한다.즉, 트랜잭션 내의 연산들은 분할될 수 없는 최소의 단위로 처리되어야 한다.- 일관성(Consistency)트랜잭션이 성공적으로 완료되면 데이터베이스는 일관성 있는 상태를 유지해야 한다.예를 들어, 무결성 제약 조건을 만족하는 등의 데이터베이스의 일관성이 보장되어야 한다.- 독립성(Isolation)한 트랜잭션이 수행되는 동안 다른 트랜잭션은 그 연산을 볼 수 없다.즉, 각 트랜잭션은 서로 독립적으로 수행되어야 한다.- 영속성(Durability)트랜잭션이 성공적으로 완료되면 그 결과는 영구..
고급 SQL 다루기
·
Database & Data/기초지식
UNION(합집합 - 중복제거)두 SELECT문의 결과를 결합하고 중복된 결과는 제거된다.SELECT column_name(s) FROM table1UNIONSELECT column_name(s) FROM table2; UNION ALL(합집합 - 중복제거X)UNION과 같지만 중복된 결과를 제거하지 않는다.SELECT column_name(s) FROM table1UNION ALLSELECT column_name(s) FROM table2; EXCEPT(차집합)첫 번째 SELECT 문의 결과에서 두 번째 SELECT 문의 결과를 제외한다.SELECT column_name(s) FROM table1EXCEPTSELECT column_name(s) FROM table2; INTERSECT(교집합)두 SEL..
Redshift(PostgreSQL) Session 생성해서 Select - 6
·
Database & Data/PostgreSQL
기본적인 사용법 1) Redshift에 연결하기 위한 정보conn_info = { "dbname": "your_database", "user":"your_username", "pwd":"your_password", "host":"your_host", "port":"your_port"} 2) 연결 정보를 바탕으로 Redshift에 연결import psycopg2try: conn = psycopg2.connect( dbname=conn_info['dbname'], user=conn_info['user'], password=conn_info['pwd'], host=conn_info['host'], port=conn_..
Join 소개
·
Database & Data/기초지식
Join두 개 이상의 테이블에서 관련 있는 데이터를 결합 1) Inner Join두 테이블의 교집합즉, 두 테이블의 Join 조건에 일치하는 행만 반환SELECT * FROM table1INNER JOIN table2ON table1.matching_column = table2.matching_column; 2) Left (Outer) Join첫 번째 테이블의 모든 행과 두 번째 테이블에서 일치하는 행을 반환일치하지 않는 경우, 두 번째 테이블의 값은 NULL로 반환SELECT * FROM table1LEFT JOIN table2ON table1.matching_column = table2.matching_column; 3) Right (Outer) Join두 번째 테이블의 모든 행과 첫 번째 테이블에서..
GROUP BY와 CTAS - 4
·
Database & Data/기초지식
Group by데이터의 특정 열(들)을 기준으로 그룹화하는 것을 의미예시 SQL문)SELECT product_idFROM salesGROUP BY product_id; Aggregate그룹화된 데이터에 대해 특정 연산을 수행하여 단일 값으로 요약하는 것을 의미예시 SQL문)SELECT product_id, SUM(quantity) as total_salesFROM salesGROUP BY product_id;SELECT product_id, COUNT(*) as sale_countFROM salesGROUP BY product_id;SELECT product_id, AVG(quantity) as average_salesFROM salesGROUP BY product_id; TO_CHAR 숫자나 날짜 데이..
RedShift 및 SQL 다루기
·
Database & Data/기초지식
클러스터여러 개의 노드로 구성된 하나의 분산 시스템을 의미하며, 각 노드에는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스가 있어 데이터 처리와 분석 작업을 병렬로 수행할 수 있다. 관계형 데이터베이스 사용자 / 세션1) 사용자 ID(User ID):- 사용자 ID는 데이터베이스에 저장된 각 사용자를 고유하게 식별하는 식별자(일반적으로 사용자 계정, 프로필, 인증 정보와 연관)- 사용자 ID는 데이터베이스의 다른 테이블에도 참조될 수 있으며, 이를 통해 사용자 관련 데이터를 연결하고 추적할 수 있다.2) 세션 ID(Session ID):- 세션 ID는 사용자가 웹 사이트나 애플리케이션을 사용하는 동안 지속되는 인터랙션을 식별하기 위한 고유한 식별자- 사용자가 로그인하거나 웹 사이트를 방문할 때, 서버는 ..
데이터 웨어하우스와 클라우드(Redshift) 소개
·
Database & Data/기초지식
데이터 웨어하우스란(Data Warehouse)?조직이나 기업에서 다양한 출처의 데이터를 통합, 저장하고 분석할 수 있도록 구성된 대규모 데이터 저장소이다.데이터 웨어하우스는 데이터 마이닝, 비즈니스 인텔리전스(BI), 리포팅, 분석 등의 목적으로 사용되며, 이를 통해 의사결정에 도움을 주는 인사이트를 얻을 수 있다. 1) 주요 특징- 데이터 통합: 다양한 출처의 데이터를 통합하여 일관성 있는 형태로 저장한다. 이를 위해 데이터 추출, 변환 및 적재(ETL) 과정을 거친다.- 대용량 데이터 저장: 거대한 양의 데이터를 저장하고 관리할 수 있는 구조를 갖추고 있다.- 시계열 데이터 관리: 시간에 따른 데이터 변화를 추적하고 저장할 수 있다.- 성능 최적화: 대규모 데이터를 효율적으로 조회하고 분석할 수 있..
관계형 데이터베이스와 SQL 소개
·
Database & Data/기초지식
관계형 데이터베이스(RDBMS)관계형 데이터베이스(Relational Database)는 데이터를 테이블 형태로 저장하고 관리하는 데이터베이스관계형 데이터베이스의 핵심 개념은 관계(Relation)로, 데이터를 행(Row)과 열(Column)로 구성된 2차원 테이블에 저장한다.이러한 테이블들은 서로 관계를 맺고, 이를 통해 다양한 데이터 조작과 쿼리를 수행할 수 있다. 대표적인 관계형 데이터베이스1) 프로덕션 데이터베이스: MySQL, PostgreSQL, Oracle 등등- OLTP(OnLine Transaction Processing)- 빠른 속도에 집중, 서비스에 필요한 정보 저장- 백엔드 및 프론트엔드 개발자, 데이터 업계 종사자들 사용 2) 데이터 웨어하우스: Redshift, Snowflake..
RDS(MySQL) - 서버 시간을 한국 시간으로 변경하기(권한 에러 추가)
·
Database & Data/MySQL
Date 필드의 기본값을 현재 시간으로 하려고 한다면 CURRENT_TIMESTAMP로 많이 쓰인다.다만 다른 설정을 해주지 않으면 한국시간보다 -9시간으로 글로벌 시간이 지정되어있다.참고 - https://shwjdqls.github.io/aws-mysql-timezone-encoding/ Time_zone 변경이 명령문을 Workbench나 터미널에서 MySQL Shell에 접속해서 치게 되면 현재 Time_zone 설정을 볼 수 있다.select @@global.time_zone, @@session.time_zone; UTC기준으로 Time_zone이 설정되어 있었고, 나는 Asia/Seoul로 변경하고 싶었다.SET time_zone='Asia/Seoul';SET GLOBAL time_zone='..