전체 글 197

다시 풀어볼 문제들

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net https:..

Algorithm 2023.05.18

빅데이터를 지탱하는 기술 CHAPTER 6 : 빅데이터 분석 기반의 구축 (6-5)

6장에서는 몇 가지 오픈 소스 소프트웨어를 사용하여 실제로 데이터를 처리하는 예제 코드를 실행한다. 6장 요약 6장에서는 빅데이터 기술을 이용하여 '데이터 파이프라인'을 구축하는 예로서 오픈 소스 소프트웨어에 의한 데이터 처리 절차에 관해 설명하였다. 걱 소프트웨어의 구체적인 동작에 대해 정확하게 알아야 한다. '애드 혹 분석 환경'의 예로 '주피터'와 'Spark'를 조합하여 '대화식 데이터 처리'를 실시하였다. '노트북'이나 '스크립트 언어'를 사용한 데이터 처리는 알아두어야 할 것이 많아 초기 학습 비용이 들지만, 자주 데이터를 분석하는 사람에게는 효과적이다. '장기적인 운용을 전제로 하는 배치 처리'에서는 대화식 실행보다도 '유지&보수'의 장점을 염두에 두고, '벌크 형 전송 도구' 및 'SQL에..

빅데이터를 지탱하는 기술 CHAPTER 6 : 빅데이터 분석 기반의 구축 (6-4)

6장에서는 몇 가지 오픈 소스 소프트웨어를 사용하여 실제로 데이터를 처리하는 예제 코드를 실행한다. 6.4절에서는 클라우드 서비스를 이용한 빅데이터의 파이프라인에 관해 설명한다. 구체적으로는 '아마존 웹 서비스(Amazon Web Service)', 구글 클라우드 플랫폼(Google Cloud Platform)', '트레주어 데이터(Treasure Data)', 이 세 가지 클라우드 서비스의 특징과 이 책에서 다룬 각종 기술관의 관계에 대해서 설명한다. 클라우드 서비에 의한 데이터 파이프라인 빅데이터를 위한 분산 시스템은 자신이 직접 구축, 유지 보수하는 것이 아니라 클라우드 서비스를 사용하는 경우가 많아지고 있다. 6.4절에서는 몇 가지 클라우드 서비스의 특징과 그 차임저에 대해서 예를 들어 설명한다...

빅데이터를 지탱하는 기술 CHAPTER 6 : 빅데이터 분석 기반의 구축 (6-3)

6장에서는 몇 가지 오픈 소스 소프트웨어를 사용하여 실제로 데이터를 처리하는 예제 코드를 실행한다. 6.3절에서는 6.2절에서 작성한 태스크를 워크플로의 일부로 실행할 수 있도록 한다. 워크플로 관리 도구의 예로 'Airflow'의 사용법에 관해 설명한다. 워크플로 관리 도구에 의한 자동화 데이터 파이프라인을 자동화하려면, 오류 발생 시의 복구를 염두에 두고 워크플로를 설계한다. 6.3절에서는 Airflow를 사용한 정기적인 배치 처리의 실행에 관해서 설명한다. Airflow - 스크립트 형의 워크플로 관리 워크플로 관리 도구의 예로 여기서는 오픈 소스인 'Apache Airflow'에 대해서 설명한다. Airflow는 파이썬으로 워크플로를 기술하는 스크립트 형의 도구이며, 유사한 소프타웨어 중에서는 비..

빅데이터를 지탱하는 기술 CHAPTER 6 : 빅데이터 분석 기반의 구축 (6-2)

6장에서는 몇 가지 오픈 소스 소프트웨어를 사용하여 실제로 데이터를 처리하는 예제 코드를 실행한다. 6.2절에서는 6.1절과 같은 것을 'Hive'와 'Presto'를 사용하여 재구축한다. 하나하나의 데이터 처리를 멱등한 태스크로 구현함으로써 나중에 워크플로에 포함할 수 있도록 한다. Hadoop에 의한 데이터 파이프라인 ETL 프로세스로부터 데이터 마트의 작성에 이르는 '데이터 파이프라인'은 매일매일의 데이터 처리의 중심이 되는 프로세스다. 이 절에서는 Hive와 Presto를 사용한 배치형의 데이터 처리에 관해서 설명한다. 6.2절에서는 다음의 소프트웨어에 대해 설명한다. 벌크 형 데이터 전송 - Embulk 0.8.17 분산 시스템 - Hadoop 2.8.0 데이터 구조화 - Hive 2.1.1 쿼..

빅데이터를 지탱하는 기술 CHAPTER 6 : 빅데이터 분석 기반의 구축 (6-1)

6장에서는 몇 가지 오픈 소스 소프트웨어를 사용하여 실제로 데이터를 처리하는 예제 코드를 실행한다. 6.1절에서는 '주피터'와 'Spark'에 의한 대화식 애드 혹 분석의 예를 다룬다. 분산 스토리지로 'MongoDB'를 이용하고, JSON 데이터를 가공, 집계, 시각화하는 흐름을 살펴본다. 스키마리스 데이터의 애드 혹 분석 애드 혹 데이터 분석에는 데이터 처리를 조금씩 대화식으로 실행할 수 있는 소프트웨어를 선호한다. 6.1절에서는 그 예로 JSON에 의한 스키마리스 데이터를 집계하는 절차에 관해서 설명한다. 6.1절에서는 다음과 같은 소프트웨어에 관해서 설명한다. 데이터 소스 - Twitter 스트리밍 API 분산 스토리지 - MongoDB 3.4.6 분산 데이터 처리 - Apache Spark 2...

빅데이터를 지탱하는 기술 CHAPTER 5 : 빅데이터의 파이프라인 (5-4)

5장에서는 빅데이터 파이프라인을 자동화하기 위한 구조에 대해 살펴보자. 5장 요약 이 장에서는 '빅데이터의 데이터 파이프라인'을 구축할 때의 기술로 '워크플로'와 '데이터 플로우'의 개념에 관해서 설명했다. '워크플로 관리 도구'는 여러 시스템에 명령하기 위한 '사령탑' 같은 역할이며, '각종 태스크의 스케줄 실행' 및 '오류로부터의 복구'를 돕는다. 빅데이터의 '집계'는 '장애'가 발생할 수도 있다. 만일에 경우에 곤란해지지 않도록 가능한 한 '멱등한 태스크'를 구현하는 등 평소 '복구 가능한 워크플로'를 작성하는 것이 중요하다. 그렇지 않으면 트러블 때마다 시간을 빼앗겨 생산적이 활동을 할 수 없다. 워크플로 관리 도구는 '외부 시스템에 영향을 미치는 부하를 조정하는 역할'도 담당한다. '태스크의 크..

빅데이터를 지탱하는 기술 CHAPTER 5 : 빅데이터의 파이프라인 (5-3)

5장에서는 빅데이터 파이프라인을 자동화하기 위한 구조에 대해 살펴보자. 5.3절에서는 데이터 플로우를 사용한 '스트림 처리'에 대해서 설명한다. 스트림 처리의 결과를 나중에 배치 처리에 의해 치환하는 '람다 아키텍처'의 개념도 설명한다. 스트리밍 형의 데이터 플로우 데이터의 실시간 처리를 높이려면, 배치 처리와는 전혀 다른 데이터 파이프랑니이 필요하다. 이 절에서는 DAG를 사용한 스트림 처리 구조에 관해서 설명한다. 배치 처리와 스트림 처리로 경로 나누기 배처 처리를 중심으로 하는 데이터 파이프라인의 결점은 데이터가 분석할 수 있게 될 때까지 시간이 걸린다는 것이다. 집계 효율을 높이기 위해 열 지향 스토리지를 만들려고 하면, 데이터를 모아서 변환하는 데 아무래도 일정 시간이 필요하다. 보다 실시간에 ..