[MySQL] EXISTSEXISTSEXISTS는 MySQL에서 서브쿼리의 결과가 존재하는지 여부를 확인하는데 사용하는 조건문이다. 주로 특정 조건에 맞는 데이터가 존재하는지 여부를 확인할 때 사용하며, 참 또는 거짓의 값을 반환한다.EXISTS는 보통 SELECT문과 함께 사용되며, 데이터의 유무에 따라 로직을 결정하는 데 유용하다. 기본 구조SELECT 칼럼명FROM 테이블명WHERE EXISTS ( 서브쿼리);위 구조에서 EXISTS 안의 서브쿼리가 실행되며, 서브쿼리의 결과에 한 개 이상의 레코드가 존재하면 참을 반환하고, 그렇지 않으면 거짓을 반환한다. 작동 방식EXISTS는 서브쿼리가 반환하는 데이터를 확인하지 않는다. 대신, 서브쿼리가 최소한 한 개의 행이라도 반환하면 TRUE를 반환..
[MySQL] PERCENT_RANK() PERCENT_RANK()데이터 내에서 특정 값의 상대적인 순위를 백분률로 반환한다.0과 1사이의 값을 반환하며, 값이 0이면 가장 낮은 순위, 1이면 가장 높은 순위를 의미한다.PERCENT_RANK() OVER ([PARTITION BY partition_expression] ORDER BY order_expression) 동작 원리PERCENT_RANK()는 각 행의 순위를 기준으로 계산된다. 여기서 RANK는 해당 행의 순위이며, Total Rows는 전체 행의 수이다.ex) 데이터가 10개인 경우 PERCENT_RANK()는 각 행의 순위를 0부터 1까지 나눈 값을 반환한다...
SQL에서 조인은 데이터베이스에서 여러 테이블을 결합해 데이터를 조회할 때 매우 유용한 도구다.MySQL에서의 조인의 기본 개념과 사용법에 대해 알아보고자 한다. JOIN조인(Join)은 두 개 이상의 테이블을 결합해 하나의 결과 집합을 만드는 SQL 연산이다.조인은 주로 테이블 간의 관계를 정의하고, 그 관계에 기반해 데이터를 조회할 때 사용된다. MySQL에서 자주 사용되는 조인은 크게 네 가지로 나눌 수 있다.INNER JOIN일치하는 데이터만 필요할 때LEFT JOIN왼쪽 테이블의 모든 데이터를 포함할 때RIGHT JOIN오른쪽 테이블의 모든 데이터를 포함할 때FULL OUTER JOIN두 테이블의 모든 데이터를 포함할 때 INNER JOININNER JOIN은 두 테이블간의 교집합을 반환한다.즉..
[MySQL] SQL 변수 선언 및 사용MySQL에서 변수를 사용하는 것은 데이터베이스 내에서 반복 작업을 자동화하거나, 복잡한 쿼리를 간결하게 만드는 데 매우 유용하다. MySQL에는 주로 세 가지 종류의 변수가 있다. 1. 사용자 정의 변수 (User-Defined Variables)사용자 정의 변수는 세션 내에서만 존재하며, 주로 SELECT, INSERT, UPDATE 쿼리 내에서 사용된다.`@`를 붙여야 한다. 선언 및 사용법사용자 정의 변수는 별도의 선언 없이 바로 값을 할당하여 사용할 수 있다.-- 변수 @myVar에 100을 할당SET @myVar = 100;-- 변수 @myVar의 값을 출력SELECT @myVar;아래 예제는 'employees' 테이블에서 가장 높은 급여를 가진 직원의..
[Excel] VLOOKUP VLOOKUP함수는 엑셀에서 특정 값을 검색하고, 같은 행에 있는 다른 값을 반환하는 데 사용된다.데이터베이스와 같은 큰 데이터 세트에서 특정 항목을 빠르게 찾고 관련된 정보를 얻는 데 매우 유용하다. VLOOKUP 함수의 기본 구조VLOOKUP 함수의 기본 구문은 다음과 같다.=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])lookup_value검색할 값table_array검색 할 데이터 범위col_index_num검색된 값이 있는 행에서 반환할 열 번호range_lookup일치 유형을 지정 (TRUE-근사값 일치, FALSE-정확한 일치) 예를 들어 다음과 같은 제품 목록이 있다고 가정해보자. ABC1제..
[Airflow] Flower worker auto scale Flower는 Celery 클러스터를 모니터링하고 관리하기 위한 웹 기반 도구다. Flower는 Celery 이벤트를 이용하여 작업 진행 상황 및 내역등을 실시간으로 모니터링 할 수 있으며,웹을 통해 작업자 인스턴스 종료 및 다시 시작 등의 remote 컨트롤이 가능하다. Worker auto scale플라워에서 다음과 같은 설정을 조정할 수 있는 칸을 확인할 수 있다.Airflow 공식 문서에서의 work_autoscale에 대한 설명은 다음과 같다. work_autoscale부하에 따라 풀 크기를 동적으로 조정하는 데 사용되는 최대 및 최소 풀 프로세스 수이다.항상 최소 프로세스를 유지하지만, 필요한 경우 최대로 늘린다.max_concu..
[MySQL] DB 테이블 row 수 확인 전체 테이블 별 row count를 구하기 위해선 다음과 같은 Query를 사용할 수 있다.SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = 'DBNAME' ORDER BY table_name;
[Airflow] Docker compose Airflow에서 Cli 사용하기 docker compose는 컨테이너 환경에 Airflow를 띄우기 때문에 컨테이너 내부에 cli 명령어를 사용해야한다. 명령어를 사용하는 방법은 다음과 같다. docker compose run airflow-cli 명령어가 길기때문에 다음과 같이 alias로 등록해두고 사용하면 편하다. alias airflow='docker compose run airflow-cli' >> ~/.bashrc source ~/.bashrc
[etc] MapReduce 맵리듀스(MapReduce)는 대규모 데이터 집합을 처리하는 데 사용되는 프로그래밍 모델이다. 대규모 컴퓨팅 클러스터에서 병렬 처리를 수행하여, 데이터를 처리하고 분석하는 데 유용하다. 맵 리듀스는 일반적으로 맵, 리듀스 두 단계로 구성된다. 맵(Map) 단계 입력 데이터를 가져와서 여러 작은 부분으로 나눈 후에, 각 부분에 대해 지정된 함수(맵 함수)를 적용하여 중간 결과를 생성한다. 이 단계에서 입력 데이터를 키-값 쌍 형식으로 매핑한다. 예를 들어 아래와 같은 입력 데이터가 있다고 가정해보자. Hello world Hello there Hello world 위의 입력 데이터에서는 다음과 같은 키-값 쌍이 생성된다. ("Hello", 1),("World", 1) ("Hel..
[SQL] USING USING 두 개의 테이블이 내부 조인으로 조인 될 때 조인하고자 하는 두 테이블의 컬럼명이 같을 경우 조인 조건을 길게 적지 않고 간단하게 적을 수 있다. 일반적인 JOIN 조건이 다음과 같을 때, SELECT * FROM dept d JOIN employees e ON d.dept_num = e.dept_num; USING을 사용하면 다음과 같이 표현 할 수 있다. SELECT * FROM dept d JOIN employees e USING(dept_num); 추가로 ON을 사용하면 컬럼명이 다르더라도 JOIN 조건을 사용할 수 있다.
[MySQL] With 문SQL을 사용하여 대량의 데이터를 다루는 경우, 임의의 결과를 정의하고 사용하는 경우임시 테이블을 만들어 해당 테이블에 값을 저장할 수 있다. WITHwith절은 동일한 SQL이 반복되어서 사용될 때 성능을 높이기 위해 사용된다.실제로는 temp라는 임시테이블에 저장되는 가상의 테이블이다.with as ( )with절은 임시테이블을 사용하여 저장해놓은 데이터를 액세스하기 때문에, 메모리를 차지한다.여러 개의 with절을 동시에 돌리면 임시테이블에 부하가 발생해 다같이 느려진다. with절은 다음과 같은 두가지 방식이 이용된다. 1) materialize기본 with절 사용 시 적용되는 것으로 temp를 사용한다. 2) inlinetemp 테이블을 생성하지 않고 inli..
[MySQL] ROUND(), TRUNCATE() 숫자 데이터를 다룰 때, 소수점 자리를 처리해야하는 경우가 있다. MySQL에서 반올림과 버림 기능을 사용하기 위해 각각 ROUND()와 TRUNCATE() 함수를 사용할 수 있다. 반올림 ROUND ROUND() 함수를 사용하면 반올림을 사용할 수 있다. ROUND(소수, 나타내고 싶은 자리 수) 만약 소수점 3번째 자리에서 반올림을 하고싶다하면 다음과 같이 나타낼 수 있다. SELECT ROUND(123.4567, 2) -- 123.46 음수도 사용이 가능하다. SELECT ROUND(123.456, -1) -- 120 버림 TRUNCATE TRUNCATE() 함수를 이용하면 특정 자리 수 이하를 버릴 수 있다. TRUNCATE(숫자, 나타내고 싶은 ..