분류 전체보기 131

Linux - grep

grep [OPTIONS] PATTERN [FILE...] -i대소문자 구분하지 않음.-v제외 옵션-c일치하는 라인의 수-l일치하는 파일 이름 나열-n일치 라인과 함께 라인 번호를 표시-H일치하는 줄과 함께 파일 이름을 표시-r or -R디렉토리를 재귀적으로 검색-w단어와 일치하는 행만 출력-x라인 만 일치 하는 행만 출력-E확장 정규 표현식 (egrep와 동일)를 사용-F찾을 패턴을 문자열로 사용-o일치하는 부분만 출력--color=auto 강조 표시 ex)#error 대소문자 구분없이 조회grep -i "error" logfile.txt#디렉토리의 모든 파일에서 재귀 검색grep -r "TODO" /path/to/code/#파일에서 단어를 찾고 라인 수를 출력grep -c "failure" repor..

Linux 2025.03.02

Postgresql - Sharding

Postgresql의 샤드Sharding은 성능, 확장성 및 가용성을 향상시키기 위해 여러 서버 (또는 노드)에 데이터를 배포하는 데이터베이스 파티셔닝 기술모든 데이터를 단일 데이터베이스 인스턴스에 저장하는 대신 Sharding은 이를 더 작고 관리하기 쉬운 청크로 나s눈다.샤드의 주요 구성 요소샤드 key샤드 (예 : 사용자 ID, 지역 등)에 데이터를 배포하는 데 사용되는 열 (또는 열 세트).코디네이터 (라우터)샤드 키를 기반으로 쿼리를 올바른 샤드로 구동. (수동 / pgbouncer / citus 와 같은 관리 툴)샤드 노드각 노드 (데이터베이스 서버)는 데이터의 일부를 저장노드는 쿼리를 처리하기 위해 독립적으로 작동샤드 전략해시 기반 샤딩샤드 키 값은 해시되어 샤드 위치를 결정데이터 배포를 보..

DB/Postgresql 2025.02.23

DB - Hive (msck repair table)

1. MSCK REPAIR TABLE 기본 사용법MSCK REPAIR TABLE table_name; HDFS에는 존재하지만 Hive의 Metastore에 등록되지 않은 파티션을 인식하여 추가.외부에서 데이터를 직접 HDFS에 로드한 경우.ALTER TABLE 없이 수동으로 HDFS 경로에 파티션을 추가한 경우. 2. MSCK REPAIR TABLE 동작 과정Hive는 HDFS 경로를 스캔하여 테이블의 디렉터리를 확인한다.기존에 등록되지 않은 새로운 파티션을 감지합니다.발견된 파티션을 Hive Metastore에 추가합니다.이후 SHOW PARTITIONS로 추가된 파티션을 확인할 수 있다.✅ 예제: 파티션 추가 후 MSCK REPAIR TABLE 실행hdfs dfs -mkdir /user/hive/wa..

DB 2025.02.16

DB - partition 접근

업무 중 같은 쿼리라도 파티션 조건을 어떻게 하냐에 따라 쿼리 속도가 달라 접근법을 찾아 보았다. 1 . etl_ymd like '202301%'etl_ymd가 문자열로 분할되면 (예 :varchar 또는text ') 일반적으로 범위 또는 목록과 함께 작동하기 때문에 모든 파티션 풀스캔하여 속도가 느려질 수 있다.2 . etl _ymd between '20230101' and '20230131' etl_ymd가 이 조건은 파티션 가지 치기가 효율적으로 발생할 가능성이 높다. etl_ymd가 문자열로 저장되면, 명확한 범위를 정의하기 때문에 접근이 빠름. 하이브 파티셔닝을위한 모범 사례 고전성 열에서 분할 사용 (예 : '국가'대신 '날짜')✅ 너무 많은 파티션을 피한다. (작은 파티션 = 높은 메타 데이..

DB 2025.02.16

Hive - UDF

HIVE UDF (User Defined Function)란?Hive UDF(User Defined Function)는 사용자가 직접 정의하여 Hive에서 사용할 수 있는 함수. 기본적으로 Hive는 다양한 내장 함수(Built-in Functions)를 제공하지만, 특정한 데이터 변환이나 복잡한 로직이 필요할 때는 UDF를 직접 구현하여 사용할 수 있다.Hive UDF는 Java로 작성하며, 개발한 후 Hive에 등록하여 SQL 쿼리에서 사용할 수 있다.1. Hive UDF의 종류Hive에서 제공하는 사용자 정의 함수 3가지 유형.✅ 1) UDF (User Defined Function)단일 행 입력을 받아 하나의 값을 반환하는 함수예: 문자열 변환, 특정 조건 처리 등✅ 2) UDAF (User De..

DB 2025.02.02

Hive - HQL 함수

1. 집계 함수 (Aggregate Functions)함수설명AVG(col)주어진 컬럼의 평균을 계산COUNT(*)전체 행 개수를 반환COUNT(DISTINCT col)특정 컬럼에서 중복을 제거한 후 개수를 반환MAX(col)컬럼의 최대값 반환MIN(col)컬럼의 최소값 반환SUM(col)컬럼 값의 합을 반환COLLECT_SET(col)중복을 제거한 고유한 값들의 집합 반환COLLECT_LIST(col)모든 값의 리스트 반환2. 수학 함수 (Mathematical Functions)함수설명ABS(x)절댓값 반환CEIL(x)올림한 정수 반환FLOOR(x)내림한 정수 반환ROUND(x, d)반올림 (d는 소수점 자리수)EXP(x)e^x 값을 반환LN(x)자연로그 반환LOG10(x)밑이 10인 로그 반환LOG..

DB 2025.02.02

HDFS - Balance

HDFS를 운영하면서 데이터 불균형이 발생하여 밸런싱을 실행해야 하는 경우가 있다. 주의할 점은 밸런서는 랙 인식(Rack Awareness) 설정이 되어 있지 않으면 동작하지 않는다. 데이터 불균형이 발생하는 경우데이터 노드를 추가하는 경우하둡의 데이터 저장 공간이 부족하여 데이터노드를 추가하는 경우 다른 노드의 사용공간은 70~80% 정도인데 신규 데이터 노드는 사용공간이 0% 대량의 데이터를 삭제하는 경우 특정 데이터 노드에 블록이 많이 저장되어 데이터노드간 저장공간 차이가 20~30% 정도 발생하는 경우 대량의 데이터를 추가하는 경우특정 데이터 노드에 데이터가 적은 경우 네임노드는 데이터 저장공간이 작은 노드를 우선적으로 사용하는데 이 경우 특정 노드로 I/O가 집중 되게 됨 HDFS Balanc..

Hadoop 2025.01.26

HDFS - 사용량 제한 설정

HDFS 관리자는 디렉토리 별로 파일 개수와 파일 용량을 제한 할 수 있다. 각 설정은 개별 적으로 동작. 하나만 설정 하거나, 동시에 설정할 수 있다. 파일 개수 제한디렉토리별로 생성할 수 있는 파일 개수를 제한 할 수 있다. 할당량을 초과하면 파일, 디렉토리를 생성할 수 없다. 파일 용량 제한디렉토리별로 용량을 제한할 수 있다. 파일 용량만 포함되고, 디렉토리는 용량에 포함되지 않는다. 제한 설정 명령파일 개수 제한, 파일 용량 제한은 hdfs dfsadmin 명령을 이용하여 설정할 수 있다.# 파일 개수 제한. 최대 Long.MAX_VALUE 만큼 제한 가능 hdfs dfsadmin -setQuota ...# 파일 개수 제한 초기화hdfs dfsadmin -clrQuota ...# 파일 용량 제한..

Hadoop 2025.01.26

SQL - begin, index, anti-join

풀 스캔 방지를 위한 인덱스 강제지정SELECT * FROM table_name USE INDEX (index_name) WHERE column = 'value'; Anti-join (일치하지 않는 레코드 찾기)SELECT a.*FROM table_a aLEFT JOIN table_b b ON a.id = b.idWHERE b.id IS NULL; begin , delete 후 다른 유저가 해당 데이터를 update하면? (commit되지 않은 해당 행이 lock상태라 update불가)-- A터미널BEGIN TRANSACTION;DELETE FROM table_name WHERE id = 1;-- B터미널BEGIN TRANSACTION;DELETE FROM table_name WHERE id = 1;

DB 2025.01.19