본문 바로가기

Coursera 강의 정리/Modern Big Data Analysis with SQL

(18)
S2 Analyzing Big Data with SQL - W2 SQL SELECT Essentials Modern Big Data Analysis with SQL 특화 과정 중 두 번째 강의 Analyzing Big Data with SQL의 두 번째 주차 SQL SELECT Essentials 내용 정리입니다. SELECT는 SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT으로 구성한다 SELECT List는 SELECT에 의해서 선택된 값들이며, 상수, 테이블의 열, 연산, 내장 함수가 가능하다 연산을 위해서 Data Type이 필요할 수 있다. 테이블 헤더를 지정하기 위해서 AS를 사용한다. DISTINCT를 사용해서 고유한 행을 출력할 수 있다. FROM은 데이터를 가져올 테이블을 지정하며 Active Database에서 가져온다. 테이블이 속한 데..
S2 Analyzing Big Data with SQL - W1 Welcome to the Course Modern Big Data Analysis with SQL 특화 과정 중 두 번째 강의 Analyzing Big Data with SQL의 첫 번째 주차 Welcome to the Course 내용 정리입니다. 주요 SQL 명령: SHOW DATABASES, USE databasename, SHOW TABLES, DESCRIBE tablename, SELECT SELECT에서는 행의 순서는 랜덤이지만 열의 순서는 테이블 구조와 질의에 따라서 결정된다 다양한 SQL 인터페이스가 있지만 근본적으로 ODBC, JDBC를 사용해서 데이터베이스와 연결한다. Hive와 Impala는 자체 CLI 도구인 Beeline과 Impala Shell을 지원한다. SQL Utility 명령 데이터베이스와 테이블에 대한 정보..
Foundations for Big Data Analysis with SQL - 10 빅 데이터 환경과 SQL 상황에 맞는 빅 데이터 플랫폼을 활용한다. 일반적으로 Apache Hive나 Apache Impala의 SQL을 사용해서 복잡한 분석을 수행하고, NoSQL로 데이터를 수집 및 관리한다. SQL은 여전히 분석을 위한 쿼리로 사용하지만, SQL의 이론적 모태인 RDBMS의 개념은 빅 데이터 환경에서 많이 퇴색하였다. 다양한 데이터베이스와 빅 데이터 플랫폼 데이터베이스는 Operational Database와 Analytic Database로 구분한다. 각각의 데이터베이스 성격에 따라서 사용하는 빅 데이터 플랫폼을 상이하다. 1) Analytic Database에서는 Apache Hive, Apache Impala가 사용된다. Analytic Database는 복잡한 분석을 위한 쿼리를 효율적으로 지원하는 ..
Foundations for Big Data Analysis with SQL - 07 빅 데이터 저장 및 처리 (Volume) 빅 데이터의 3V+1V = Volume + Variety + Velocity + Value 빅 데이터를 저장하기 위해서 분산 저장 시스템이 사용되며 대표적으로 HDFS가 있다. 분산 저장된 데이터를 처리하기 위해서 MapReduce와 같은 분산 병렬 처리 기법이 활용된다. 빅 데이터의 성격 (3V = Volume, Variety, Velocity) 빅 데이터를 정의하는 기준으로 3V가 있다. 3V는 Volume, Variety, Velocity를 의미한다. Volume은 빅 데이터의 크기를 나타낸다. 엄격하게 정의하고 있지는 않지만 일반적으로 빅 데이터는 30TB 혹은 그 이상의 데이터를 의미한다. Variety는 빅 데이터의 다양성을 의미한다. Structured Data, Semi-Structured..
Foundations for Big Data Analysis with SQL - 06 트랜잭션과 트리거(Database Transaction) Transaction은 다수의 DML을 묶어서 한 번에 처리하며 ACID 원칙을 따른다. Trigger는 이벤트가 발생하면 자동적으로 실행되는 명령으로 이를 통해 데이터가 Business Rule을 따르도록 강제할 수 있다. Operational Database는 Business Rule을 따르도록 데이터를 관리한다(OLTP). 하지만 Analytic Database는 Business Rule에 대한 규제가 덜 엄격하고 대신 빠른 연산 처리가 중요하므로 Transaction이나 Trigger를 지원하지 않는 경우가 많다. Transaction과 ACID 트랜잭션은 일련의 DML을 하나의 원자적인 단위로 처리하는 것을 의미한다. 트랜잭션으로 묶인 DML이 모두 성공하였을 때 COMMIT이 되지만, 중간에 ..
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..