본문 바로가기
728x90

SQL11

[SQL] 조인 시 선행 테이블은 어떤 테이블이어야 할까? 조인에 대해서 2개의 테이블이 있을 때 어떤 테이블이 left에 있는게 맞을까?흔하게 그리고 항상 사용하게 되는 join에 있어서 left에 위치하게 되는 혹은 먼저 나오게 되는 테이블에 대해서 정리해보겠습니다.즉, 마스터-디테일 구조에서의 driving table을 정하는 기준을 확인해보겠습니다.1. 마스터 테이블, 디테일 테이블이란?1) 원장성 테이블(master table)업무의 핵심 개체(entity)들로서 주로 업무성격의 주체(Subject, Source)에 대한 정보를 담고 있으며, 부속된 많은 자식 테이블(child table)들을 거느리고 있음주요 엔터티(Entity)를 관리하는 테이블로, 주로 고유 ID(primary key)와 메타데이터를 포함, 다른 테이블의 참조 대상Customer,.. 2025. 1. 27.
[Spark] 프로그래밍 언어 별 Spark 성능, 속도 차이 (UDF와 직렬화) Spark에서는 지원할 수 있는 언어가 5(7)가지가 있습니다.ScalaPythonJavaRSQLGO (4.x version 부터 지원)Rush(4.x version 부터 지원)관련하여 속도 차이는 어떤지 비교하고 왜 속도 차이가 나는지 정리해보겠습니다.1. Catalyst Optimizer와 Tungsten 엔진 사용Spark는 Catalyst Optimizer라는 내부 최적화 엔진을 사용하여, DataFrame, Dataset, 그리고 Spark SQL 쿼리를 모두 동일한 논리적 실행 계획(Logical Plan)으로 변환 Catalyst Optimizer는 쿼리 최적화, 필터 푸시다운, 프로젝트 제거, 조인 최적화 등을 수행최적화된 논리적 계획은물리적 실행 계획(Physical Plan)으로 변환되.. 2025. 1. 10.
[SQL] SQL 성능확인, Query Plan 보는 법 (Oracle, MySQL) 1. Query Plan이란? SQL 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터 접근에 사용되는 순서가 있는 단계별 집합 엑세스 플랜의 관계형 모델 개념의 특화된 경우 SQL이 선언형이기 때문에 주어진 쿼리를 실행하기 위해 수많은 방법이 존재하는 것이 일반적이며 이에 따라 다양한 성능 차이를 보임 Query Optimizer는 Query 실행을 위한 각기 다른 가능성 있는 올바른 플랜 중 일부를 평가한 다음 최적의 옵션을 고려할 때 반환 2. Query Plan 보는 법, 요소(Oracle) 1) Query Plan 보는 법 위에서 아래로 내려가면서 제일 먼저 읽을 위치 찾기 내려가는 과정에서 같은 들여쓰기가 있으면, 무조건 위에서 아래 순으로 읽기 같은 레벨에 들여쓰기된 하위 스텝이 존재하면.. 2023. 1. 31.
[Data Engineering] 데이터 엔지니어가 읽으면 좋을 책 추천 목록(+ 내가 읽은 순서, 읽을 순서) 이번 포스트에는 데이터엔지니어 오픈톡방 및 지인들에게 추천 받은 책 목록을 분야별로 분류하여 소개해 드리겠습니다. 또한 제가 책을 읽은 순서와 아직 읽지는 못한 책의 읽어야 할 순서도 정리해보겠습니다. 1. SQL 데이터 업계에 있어 가장 중요한 언어라고 생각되는 SQL, 예전에 저희 회사 이사님께서 말씀하시길 결국 하이브, 스파크도 사람들이 SQL사용하는게 편하기 때문에 그거에 맞게 생긴 프레임워크이거나, SQL을 사용할 수 있게 지원하는 방향으로 간다. SQL의 컨셉 for oracle 저자: 변동구 http://www.yes24.com/Product/Goods/6357997 SQL의 컨셉 for ORACLE - YES24 이 책은 SQL 초중급자를 대상으로 한다. SQL의 기본 개념과 문법을 알고,.. 2022. 9. 9.
[DataBase] (Oracle vs MySQL) CTAS(Create Table As Select), INSERT INTO SELECT, TEMP Table, View + with절,Inline view 이번 포스트에는 oracle과 MySQL에서 각각 CTAS, INSERT INTO SELECT가 어떻게 사용되는지, TEMP table과 View의 개념과 장단점 그리고 Oracle과 MySQL에서는 어떻게 다른지에 대해 포스팅 하겠습니다. 1. CTAS(Create Table As Select) CTAS의 기본 개념은 MySQL과 오라클 모두 같다. 1) 기본 문법 CREATE TABLE 'target' AS SELECT * FROM 'origin'; --AS 이후에는 기존의 조회쿼리처럼 원하는 컬럼만 지정하거나 조건절 및 정렬도 가능하다. 2) 데이터는 복사하지 않기 CREATE TABLE 'target' AS SELECT * FROM 'origin' WHERE 1=0; MySQL 기본 문법 데이터 .. 2022. 6. 15.
프로그래밍 언어별 '(홑 따옴표, single quotation) vs "(쌍 따옴표, double quotation) 이번 포스트에는 프로그래밍 언어별 single quotation, double quotation 사용되는 경우를 비교 해보겠습니다. SQL '(홑 따옴표, single quotation) "(쌍 따옴표, double quotation) string, 문자열을 표현 할 때 사용 식별자,객체이름을 표현할 때 사용됨(mysql 에서는 `와 "를 사용) 파이썬 '(홑 따옴표, single quotation) "(쌍 따옴표, double quotation) 의미 있는string, 문자열을 표현 할 때 사용 ex) 'python' 의미 없는 string 문자열을 표현 할 때 사용 ex )"python is fun" 자바 '(홑 따옴표, single quotation) "(쌍 따옴표, double quotation).. 2022. 6. 8.
[python] python으로 MYSQL 연결하기(windows) with odbc, mysql-connector-python 1. mysql-connector-python 1) mysql-connector-python library 설치 pip install mysql-connector-python 2) mysql 연결 미리 만들어 둔 mysql DB의 정보를 mysql connection 객체에 담는다 import mysql.connector mydb = mysql.connector.connect( host="ip주소", user="계정 아이디", passwd="계정 비밀번호", database="생성한 DB이름" ) 3) 데이터 조회해보기 def select_all(): #조회 함수생성 cur = mydb.cursor() #커서 객체생성 sql ='''SELECT * FROM DB.Table명''' #조회 SQL cur.e.. 2022. 1. 20.
[HIVE] (Hive 실습)Hadoop ETL with (HiveQL)HQL파일,HQL파일로 hadoop에 job제출하기 이번 포스트에는 standalone(pseudo distributed hadoop cluster)에 HQL파일을 생성하여 job을 제출하는 실습을 해보겠습니다. 하둡 및 하이브를 설치하지 못하신 분은 아래의 링크를 참조해주세요. 2021.04.26 - [BigData] - [Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 1.virtualbox에 ubuntu 설치하기 [Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 1.virtualbox에 ubuntu 설치하기 1.virtual box를 다운로드한다. www.virtualbox.org/wiki/Downloads Downloads – Oracle VM Virtua.. 2021. 11. 8.
[Hive] Hive란?(1) 개념, 구성요소, 등장배경, 버전 1. Hive란? -하이브는 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱하는 경우 가장 많이 사용하는 데이터 웨어하우징용 솔루션입니다. -RDB의 데이터베이스, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공하며, 이 데이터를 대상으로 SQL과 유사한 HiveQL 쿼리를 이용하여 데이터를 조회하는 방법을 제공합니다. *가장 큰 특징으로는 메타스토어라는 것이 존재하는데, 하이브는 기존의 RDB와는 다르게 미리 스키마를 정의하고 그 틀에 맞게 데이터를 입력하는 것이 아닌, 데이터를 저장하고 거기에 스키마를 입히는(메타스토어에 입력하는) 것이 가장 큰 특징입니다. 2. Hive 구성요소 UI 사용자가 쿼리 및 기타 작업을 시스템에 제출하는 사용자 인터페이스 CLI, Beel.. 2021. 7. 12.
728x90