본문 바로가기

분류 전체보기83

[CS]정규화란? 더보기 정규화(Normalization)란? 정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이다. 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하고, 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 정규화의 장점 데이터베이스 변경 시 이상 현상(Anomaly)을 제거할 수 있다. DB수정 및 관리 용이 : 정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다. 정규화의 단점 릴레이션의 분해로 인해 릴레이션 간의 JOIN연산이 많아진다. 질의에 대한 응답 시간이 느려질 .. 2022. 12. 30.
파티션 더보기 파티션은 데이터를 디렉토리로 분리하여 저장하는 것을 말한다. 하이브 같은 파일 기반 테이블은 기본적으로 테이블의 모든 roww 정보를 읽기 때문에 데이터가 많아지면 속도가 느려진다. 파티션 칼럼은 where 조건에서 컬럼 처럼 이용할 수 있기 때문에 처음에 읽어 들이는 데이터를 줄여서 처리 속도를 향상 시켜 준다. 파티션 종류 고정 파티션(static) 고정 파티션은 테이블에 데이터를 입력하는 시점에 파티션 정보를 전달하기 때문에 입력되는 파티션을 알 수 있다. 동적 파티션(dynamic) 동적 파티션은 칼럼의 정보를 이용하여 동적으로 파티션이 생성되기 때문에 쿼리 시점에는 파티션을 알 수 없다. 데이터를 입력할 때 고정 파티션, 동적 파티션을 단독으로 이용할 수도 있고, 고정과 동적 파티션을 혼.. 2022. 12. 30.
하이브란? 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱하는 경우 가장 많이 사용하는 데이터 웨어하우징용 솔루션이다. 하이브의 특징 RDB의 데이터베이스, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공. 데이터를 대상으로 SQL과 유사한 HiveQL 쿼리를 이용하여 데이터를 조회하는 방법을 제공 mapreduce 처리 가능 → 대용량 분석에 용이, 추가적인 설정 & 기능 필요 없음 데이터 처리 정리 인메모리 기반 데이터 처리 Spark, Presto- 메모리 관리 이슈가 중요하다. 여러 번 이용하는 데이터는 캐시에 올리거나 디스크에 스왑해 메모리 해제하는 등의 제어가 필요하다. 디스크 기반 데이터 처리 MapReduce, Hive(내부에서 MapReduce 동작하므로) Hive .. 2022. 12. 30.
[Python]lambda함수 람다함수(익명함수) 파이썬에서는 람다함수를 통해 이름이 없는 함수를 만들 수 있다. 람다함수의 장점은 코드의 간결함 메모리의 절약이라고 할 수 있다. lambda 매개변수 : 표현식 두 수를 더하는 함수) >>> def hap(x, y): ... return x + y ... >>> hap(10, 20) 30 위와 같은 함수를 람다 함수로 표현하면 아래와 같이 간결하게 작성할 수 있다. >>> (lambda x,y: x + y)(10, 20) 30 람다함수는 결과부분된 부분을 return키워드 없이 자동으로 return해 준다. 익명함수라는 이름처럼 lambda함수는 함수의 이름을 지정하지 않는다. >>> lambda x : x + 1 위와 같은 람다함수는 인자로 받은 숫자에 +1을 해주는 함수입니다. .. 2022. 12. 30.