일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- truncate
- ELT
- 데이터레이크
- redshift
- spark
- 컨테이너 삭제
- 데이터파이프라인
- dag 작성
- airflow.cfg
- Django
- docker hub
- Serializer
- 알고리즘
- Kafka
- yarn
- airflow
- AWS
- dag
- Django Rest Framework(DRF)
- 데이터마트
- 웹 스크래핑
- docker-compose
- docker
- 데이터 웨어하우스
- 웹 크롤링
- ETL
- selenium
- SQL
- snowflake
- Hive
- Today
- Total
목록빅데이터를 지탱하는 기술 (7)
개발 기록장
데이터 전송에는 벌크 형과 스트리밍 형 두 종류가 있다.객체 스토리지와 데이터 수집: 분산 스토리지에 데이터 읽어들이기빅데이터는 대부분 확장성이 높은 분산 스토리지(distributed storage)에 저장됨기본적으로 대랑으로 파일을 저장하기위한 객체 스토리지(object storage)가 많이 사용됨Hadoop이라면 HDFS, 클라우드 서비스라면 Amazon S3 등객체 스토리지의 내부 처리에는 다수의 물리적 서버와 하드디스크가 존재하므로 일부의 HW가 고장나더라도 데이터 손실X데이터의 읽기, 쓰기를 다수의 하드웨어에 분산 -> 데이터의 양이 늘어나도 성능 유지객체 스토리지 구조는 데이터 양이 많을 때는 우수하지만, 소량의 데이터를 처리할 때는 오버헤드가 너무 크므로 비효율적데이터 수집: 수집한 데이..
데이터 만드는 절차에서 필요한 각종 테이블 역할과 비정규화 테이블을 만들기까지의 흐름팩트 테이블: 시계열 데이터 축적팩트 테이블이 아주 작으면 메모리에 올릴 수도 있지만, 그렇지 않으면 열 지향 스토리지에서 데이터를 압축해야 빠른 집계가 가능함팩트 테이블 작성하는 2가지 방식추가(append): 새로 도착한 데이터 만을 추가치환(replace): 과거의 데이터를 포함해 테이블 전체를 치환(팩트 테이블 전체를 다시 만드는 것)테이블 파티셔닝: 물리적인 파티션으로 분할효율만을 생각하면 추가가 유리하지만 다음과 같은 잠재적 문제가 존재함추가에 실패한 것을 알아채지 못하면 팩트 테이블 일부에 결손이 발생함추가를 잘못해서 여러 번 실행하면 팩트 테이블 일부가 중복됨나중에 팩트 테이블을 다시 만들고 싶은 경우 관리..
자신의 상황과 맞는 프레임워크 선택하기MPP 데이터베이스: 완성한 비정규화 테이블의 고속 집계에 적합구조화 데이터를 SQL로 집계하는 것뿐이라면 기존의 데이터 웨어하우스 제품과 클라우드 서비스를 이용하는 것이 가장 좋음기능적성능적시스템 안정성 측면MPP 데이터베이스는 스토리지 및 계산 노드가 일체화 되어 있어 처음에 ETL 포르세스 등으로 데이터를 가져오는 절차만 완성하면 SQL만으로 데이터 집계 가능확장성 및 유연성 등의 측면에서는 분산 시스템이 유리하므로 MPP 데이터베이스에 분산 시스템 프레임워크 결합대량의 텍스트 처리데이터 처리를 프로그래밍 하고 싶은 경우NoSQL 데이터베이스에 저장된 데이터를 집계하고 싶은 경우시각화 측면에서도 데이터 마트로 생각하면 MPP 데이터베이스는 유력한 대안임Hive:..
SQL-On-Hadoop의 예시: 'Hive'에 의한 구조화 데이터의 생성과 'Presto'에 의한 대화식 쿼리데이터 마트 구축의 파이프라인분산 스토리지에 저장된 데이터를 구조화하고 열 지향 스토리지 형식으로 저장다수의 텍스트 파일을 읽어 가공하므로 부하가 큰 작업이므로 Hive 사용완성된 구조화된 데이터를 결합, 집계하고 비정규화 테이블로 데이터 마트에 내보냄열 지향 스토리지를 이용한 쿼리 실행에는 실행 시간 단축을 위해 Presto 사용Hive 메타 스토어(Hive Metastore)Hive에서 만든 각 테이블의 정보를 저장하는 특별한 데이터베이스Hive뿐만 아니라 다른 쿼리 엔진에서도 공통의 테이블 정보로 참고됨(SQL-on-Hadoop 상황)Hive에 의한 구조화 데이터 작성외부 테이블(exter..

Hadoop과 Spark를 중심으로 분산 시스템의 구조를 살펴본다.구조화 데이터와 비구조화 데이터구조화 데이터(structuerd data): 스키마(Schema)가 명확하게 정의된 데이터비구조화 데이터(unstructured data): 자연언어로 작성된 텍스트 데이터, 이미지, 동영상 등의 미디어 데이터 대표적인 비구조화 데이터로는 로그(log) 데이터가 있다.스키마리스 데이터(schemaless data): CSV, JSON, XML 등 데이터 서식은 정해져 잇지만, 칼럼 수나 데이터 형은 명확하지 않은 데이터데이터 구조화의 파이프라인: 테이블 형식으로 열 지향 스토리지에 장기 보존비구조화 데이터/스키마리스 데이터는 분산 스토리지에 보존됨 -> 그러나 명확한 스키마가 없는 데이터들은 SQL로 집계가..

대량의 데이터를 신속 집계하기 위해 집계 효율이 높은 데이터베이스의 구조를 알아본다MPP 기술: '압축'과 '분산'에 의해 지연 줄이기데이터를 가능한 작게 압축하고 이를 여러 디스크에 분산하여 데이터 로드에 따른 지연 감소MPP(massive parallel processing: 대규모 병렬 처리): 분산된 데이터를 읽어 들이기 위해 멀티 코어를 활용하면서 디스크의 I/O를 병렬 처리하는 아키텍처데이터의 집계에 최적화되어 있음클라우드 서비스의 도입으로 인해 널리 사용됨대량의 데이터를 분석하기 위해 데이터베이스에서 널리 사용되고 있는 기술대표적인 예시) Amazon Redshift 및 Google BigQuery행 지향(row-oriented) 데이터베이스각 행이 디스크 상에 일련의 데이터로 기록됨테이블의..
데이터 수집에서 워크플로 관리까지데이터 수집데이터 전송 방식에 의해 크게 두 가지로 구분벌크(bulk) 형: 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는데 사용스트리밍(streaming) 형: 차례대로 생성되는 데이터를 계속해서 보내는 방법모바일 애플리케이션과 임베디드 장비 등에서 널리 데이터를 수집하는 데 사용됨스트림 처리와 배치 처리데이터 처리 방식스트림 처리(stream processing): 데이터를 실시간으로 처리하는 방식스트리밍(streaming) 형으로 받은 데이터는 대부분 실시간으로 처리함모바일 애플리케이션 등이 증가함에 따라 스트림 처리 방식 널리 사용됨시계열 데이터 베이스와 같은 실시간 처리를 지향한 데이터 베이스가 자..