전체 글 (87) 썸네일형 리스트형 Foundations for Big Data Analysis with SQL - 05 관계형 데이터베이스 설계 (Relational Databases Design) Primary Key는 테이블의 데이터를 유일하게 식별하며, 다른 테이블의 Foreign Key와 연결되어서 테이블의 논리적인 관계를 나타낸다. 데이터베이스 설계 전략으로 Normalization과 Denormalization이 있다. Normalization은 Anomaly를 없애고 Business Rule를 강제하기 위해 사용하는 전략으로 3NF가 대표적이다. Denormalization은 Normalization의 장점을 일부 포기하는 대신 복잡한 연산을 빠르게 수행한다. Primary Key와 Foreign Key Primary Key는 테이블의 각 레코드를 유일하게 식별하는 열(column)이다. 따라서 Primary Key를 속성으로 가진다면 NOT NULL과 NO DUPLICATES 속성이 .. Foundations for Big Data Analysis with SQL - 04 테이블 구조 (Table and Column Design) 테이블 스키마는 설계된 테이블의 구조를 의미한다. 테이블 스키마 = Column Name + Data Type + Data Property BLOB, CLOB은 4GB의 큰 데이터를 관리하는 Data Type으로 일부 SQL에서는 데이터의 저장 및 추출을 지원한다. 테이블 스키마(schema) – 테이블 구조 설계 Relational Database는 데이터를 테이블 형태로 관리한다. 테이블 스키마는 정의된 테이블의 구조를 의미하며, 테이블의 열(column) 이름과 저장되는 데이터 타입을 결정한다. 또한 저장되는 데이터의 속성(Data Property)을 설정하는데, 대표적으로 NOT NULL, DEFAULT, PK, FK와 같은 키워드가 있다. 데이터 타입(Data Type)은 저장되는 데이터의 형식.. Foundations for Big Data Analysis with SQL - 03 Operational DB와 Analytic DB(Operational and Analytic Databases) Operational Database는 실시간을 데이터를 처리하는 환경에서 사용되고 Analytic Database는 방대한 과거의 정적인 데이터를 분석하기 위해서 사용한다. Operational Database는 1) 단순한 검색 질의 2) 빈번한 DML 3) 작은 규모의 특징을 가진다. Analytic Database는 1) 분석적 질의 처리 2) Bulk Load 3) 큰 규모의 특징을 가진다. Operational Database와 Analytic Database 데이터베이스는 데이터 처리 환경에 따라서 Operational Database와 Analytic Database로 구분한다. Operational Database는 현재 상태에 관심을 가지는 데이터베이스이다. Operational Dat.. Foundations for Big Data Analysis with SQL - 02 DBMS와 SQL(Working with Database Systems) DBMS는 데이터를 설계(Design), 갱신(Update), 선택(Select), 관리(Manage)하는 시스템이면 SQL 명령을 통해 이를 수행한다. SQL은 처리하는 작업의 성격에 따라서 DDL, DML, DQL, DCL로 구분한다. SQL과 RDBMS가 성공한 원인은 1) 테이블 방식의 데이터 처리 방식 2) 쉬운 SQL 언어 3) 내부 기술 구현과 독립적 4) 많은 시스템에서 지원하며 NoSQL에서도 지원 5) 많은 Programming Language와 연결할 수 있기 때문이다. DBMS가 하는 일 (feat. SQL) DBMS(Database Management System)는 데이터베이스를 관리하는 시스템이다. DBMS를 통해서 데이터베이스 설계(Design), 갱신(Update), 선택(.. Foundations for Big Data Analysis with SQL - 01 데이터 개요(Organizing Data) 객체 ≠ 데이터. 데이터는 객체가 가진 정보의 표현(Representation) 데이터는 디지털 데이터와 아날로그 데이터로 구분한다. 데이터를 조직화하는 이유는 데이터를 편리하게 사용하기 위해서이다. Data Store와 Database는 데이터를 저장하는 것. 다만, Database는 데이터를 조직화한다. Database System = DBMS + Database 데이터는 객체가 아니다. (Data is NOT a Thing) 데이터는 객체가 아니다. 다만, 객체는 데이터를 포함할 수 있다. 예를 들어 영화 포스터가 있다고 가정하자. 영화 포스터 자체는 객체이다. 하지만 영화 포스터(객체)는 영화에 출연하는 배우 및 상영 시간과 같은 데이터를 가지고 있다. 이러한 의미에서 데이터는 객체가 가진 정보의.. Deep Learning 기반의 추천 시스템 개요: Deep Learning Based Recommender System- A Survey and New Perspectives Deep Learning 기반의 추천 시스템 등장 추천 시스템은 정보가 범람하는 시대에 필수적이다. 수많은 정보 중에서 사용자가 필요한 정보를 제공하는 것이 추천 시스템의 핵심이다. 사용자는 모든 정보를 확인할 필요 없이 원하는 것을 얻음으로써 시간을 절약할 수 있다. 기업의 관점에서 정보 제공은 서비스이다. 미디어 콘텐츠를 다루는 기업이 성공하기 위해서는 사용자가 좋아하는 정보(콘텐츠)를 제공하는 것이 필수적이다. 전통적으로 추천 시스템은 Collaborative Filtering 방법과 Content Based 방법, 그리고 이 둘을 모두 사용하는 Hybrid 방법으로 구분한다. Collaborative Filtering은 사용자의 아이템 평가 정보를 활용하여서 추천을 하고, Content Based.. TIL: 200826 (추천 시스템, Elasticsearch) 추천 시스템 Item CF 계산하는 방법 (Coursera) 정규화(Normalization) 여부에 따라서 다름 정규화를 하지 않은 경우. 사용자 u가 아이템 i에 대해 내린 평가 r(u, i)에서 아이템 i의 평균 평가를 빼야 한다. Item CF는 사용자가 평가한 아이템들을 기준으로 아이템 간 유사도를 계산한다. 각 아이템 유사도 벡터는 사용자의 내린 아이템에 대한 평가를 가중치로 붙는다. 추천 시스템을 위한 데이터 파이프라인 Kafka(분산 메세징 시스템) -> Spark(분산 처리 엔진) -> Elasticsearch(검색 엔진이자 NoSQL 데이터베이스) Kafka에서 이벤트를 주기적으로 받아서 Spark로 전달한다. Spark는 데이터를 Elasticsearch에 저장한다. 나아가 Elast.. Map Reduce 분산 추천 시스템: 클러스터링 기반 협업 필터링 알고리즘을 사용한 분산 추천 시스템 대규모 추천 시스템에서 분산 시스템을 통한 효율적인 추천을 필요하다 Min Hash 기반의 분산 추천 시스템은 Map Reduce 구조를 통해서 사용자가 선호하는 아이템을 기반으로 그룹 아이디를 생성하고, 같은 그룹 아이디의 클러스터로 묶인 사용자에 대해서만 코사인 유사도를 계산한다. 모든 사용자를 Pairwise로 비교하지 않으므로 효율적이지만 정확성과 확장성에 대해서는 의문이 든다. 추천 시스템에서 분산 시스템 적용 협업 필터링(특히 사용자 기반의 협업 필터링)은 취향이 비슷한 사용자들을 찾고, 해당 사용자들이 선호하는 아이템을 기반으로 추천하는 방법이다. 하지만 모든 사용자에 대해서 사용자 간 유사도를 구하는 과정을 대규모의 데이터 환경에서 비효율적이다. 따라서 분산 시스템을 도입하여서 효과적으로 .. 이전 1 2 3 4 5 6 7 8 ··· 11 다음