본문 바로가기

반응형

분류 전체보기

(121)
[DB] Query Plan Query Planner 쿼리 플랜(Query Plan) 위키백과 쿼리 플랜(query plan) 또는 쿼리 실행 계획(query execution plan)은 SQL 관계형 데이터베이스 관리 시스템의 데이터 접근에 사용되는 순서가 있는 단계별 집합이다. SQL이 선언형이기 때문에 주어진 쿼리를 실행하기 위해 수많은 방법이 존재한는 것이 일반적이며 이에 따라 다양한 성능 차이를 보인다. 쿼리가 데이터베이스에 제출되면 쿼리 옵티마이저는 쿼리 실행을 위한 각기 다른 가능성이 있는 올바른 플랜 중 일부를 평가한 다음 최적의 옵션을 고려할 때 반환한다. 쿼리 옵티마이저가 불완전하기 때문에 데이터베이스 사용자와 관리자들은 더 나은 성능을 얻기 위해 옵티마이저가 만들어내느 플랜을 수동으로 검사하고 튜닝하는 경우가 ..
[SQL] JOIN문 JOIN문? 여러 테이블에 흩어져 있는 데이터를 연관짓기 위해 사용한다. 각 테이블에는 매칭할 수 있는 'key column'이 있어야 한다. 즉 여러 개의 테이블을 연관지어 데이터를 조합하고 하나의 테이블로 표현하기 위한 수단이다. JOIN문의 default 값 JOIN 키워드만 사용하는 구문에 해당하는 JOIN은 'INNER JOIN'이다. JOIN문 예시 테이블 TABLE1 ID FOOD 1 돈까스 2 곱창 3 삼겹살 4 치킨 TABLE2 ID FOOD 1 마라탕 2 돈까스 3 햄버거 4 곱창 JOIN문 종류 1. INNER JOIN 결과는 두 테이블 A, B의 A ∩ B 와 같다. 두 테이블 간의 교집합(key column)이 존재하는 경우에만 사용 가능하다. 조인하려는 두 테이블명을 JOIN을 ..
[SQL] 집계함수(Aggregate function) 집계함수(Aggregation Function) 1. 집계함수란? 테이블의 전체 레코드를 대상으로 특정 컬럼을 적용해서 한 개의 값을 리턴하는 함수이다. 2. 집계함수 종류 집계함수에는 대표적으로 COUNT(), SUM(), AVG(), MIN(), MAX() 등이 있다. COUNT() : 지정된 기준과 일치하는 레코드 개수를 반환한다. COUNT_BIG() : COUNT()함수는 INT형식을 반환하므로, 만약 2^31-1을 넘는 데이터를 다룬다면 BIGINT를 반환하는 함수를 사용한다. SUM() : 컬럼값의 합을 반환한다. AVG() : 컬럼값의 평균을 반환한다. VARIANCE() : 컬럼값의 분산을 반환한다. STD() : 컬럼값의 표준편차를 반환한다. MIN() : 컬럼값의 최솟값을 반환한다. ..
[Google] BigQuery에 대하여 BigQuery란? 대용량 데이터 셋(최대 몇 십억 개의 행)을 대화식으로 분석할 수 있는 웹 서비스 대규모 데이터 저장 및 분석 플렛폼으로 일종의 데이터 웨어하우스 (Data Warehous) Data Warehous : 축적된 데이터를 모아서 관리하는 곳 BigQuery 구성 Project : 데이터를 담는 최상위 개념으로, 하나의 프로젝트에 여러 개의 데이터 셋이 포함된다. Dataset : RDB에서의 DataBase 개념으로, 하나의 데이터 셋에 여러 개의 테이블이 포함된다. 주어진 클라우드 프로젝트 내에서는 BigQuery 데이터 셋이 고유하다. Table : RDB에서 테이블과 동일한 개념이다. 지정된 데이터 셋 내에서 BigQuery 테이블은 고유하다. Job : BigQuery 상의 모든..
[BigQuery] NET.HOST() NET.HOST BigQuery > Net 함수 (공식 문서) URL을 STRING으로 취해 호스트를 STRING으로 반환한다. 최상의 결과를 위해서는 URL 값이 RFC 3986 에 정의된 형식을 준수해야 한다. 함수에서 입력을 파싱하지 못랄 경우에는 NULL을 반환한다. NET.HOST 사용 NET.HOST(url) # domina 값 리턴 이 함수는 정규화를 수행하지 않는다. 리턴 값의 데이터 유형은 string 이다. 리턴 값은 url의 domain이다.
[Python] Redis connection Redis 접속 후 리턴값 옵션 설정기본적으로 python에서 redis에서 정보를 get 해올 때, b''로 값이 출력된다.이때 b의 의미와 이걸 제거하고 값만 출력하도록 옵션 설정을 한다. def connect_redis(): redis_host = config['redis']['host'] redis_port = config['redis']['port'] redis_db = config['redis']['db'] rd = redis.Redis(host=redis_host, port=redis_port, db=redis_db, charset="utf-8", decode_responses=True) return rdReferencehttps://zedo.tistory.com/..
[Python] PID 의미 PID란?PID(ProcessID/Process IDentification number)는 운영체제에서 프로세스를 식별하기 위해 프로세스에 부여하는 번호를 의미한다.이때 Python으로 서비스 혹은 데몬을 구동할 때 구동되고 있는 PID값이 필요한 경우가 있다.해당 PID에 대한 메모리/CPU 사용량을 보거나 프로세스를 kill 할 수 있다.PPID란?PPID(Parent Process IDentification Number)는 Parent PID이다.PID, PPID 알아내기multiprocessing 방식으로 구동시 child process의 pid(process id)를 알아내기 위한 코드를 작성한다.# pid값 알아내기 (1)import multiprocessingprocess = multipro..
[DE] ETL과 ELT의 개념 (+ETLT) 1. ETL 1-1. 정의 ETL 프로세스란 여러 소스에서 데이터를 수집하고, 이를 표준화하여, 분석을 위한 데이터 웨어하우스 또는 저장을 위한 데이터베이스 또는 기타 유형의 데이터 소스에 적재하는 데이터 통합 프로세스이다. 1-2. 단계 E(Extract) : 추출 다양한 소스들(비즈니스 시스템, API, 센서 데이터, 데이터베이스 등)로부터 데이터를 추출(수집)한다. 변경 알림 기반 데이터 추출 증분 데이터 추출 전체 데이터 추출 T(Transform) : 변환 다양한 데이터를 표준화하기 위해 여러 기술(솔루션)을 적용한다. 표준화 정리 중복 제거 형식 수정 L(Load) : 적재 변환된 데이터를 저장한다. 전체 적재 증분 적재 1-3. 필요성 데이터는 조직의 가장 큰 자산 중 하나이다. 그러나 유용..

반응형