메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

파이썬과 대스크를 활용한 고성능 데이터 분석

대규모 데이터셋 분석, 시각화, 모델링부터 분산 앱 패키징과 배포까지

한빛미디어

번역서

판매중

  • 저자 : 제시 대니얼
  • 번역 : 이준용
  • 출간 : 2020-10-05
  • 페이지 : 360 쪽
  • ISBN : 9791162243305
  • 물류코드 :10330
  • 초급 초중급 중급 중고급 고급
4.8점 (11명)
좋아요 : 0

데이터 과학의 전체 워크플로를 단계별로 소개하는 종합 안내서

 

이 책은 대스크를 활용한 데이터 정리에서 배포에 이르기까지 데이터 과학의 일반적인 워크플로를 따라가는 여정으로 우리를 안내한다. 먼저 확장 가능한 컴퓨팅을 익히고 이를 대스크가 어떤 방식으로 활용하는지 살펴본다. 이어서 다양한 실제 데이터셋을 준비하고 분석, 시각화, 모델링하는 과정에서 대스크로 일반적인 데이터 과학 작업을 수행하는 방법을 실용 예제로 제공한다. 마지막으로 AWS에 자신만의 대스크 클러스터를 배포해 분석 코드를 확장하는 과정을 단계별로 소개한다.

 

주요 대상 독자는 초중급 데이터 과학자나 데이터 엔지니어다. 단일 머신의 한계를 벗어나는 크기의 데이터 작업을 아직 경험해보지 못했다면 특히 유용할 것이다. 파이스파크 등 다른 분산 프레임워크를 이전에 다뤄본 경험이 있다면 대스크만의 기능과 효율성을 비교해보는 것만으로도 도움이 될 것이다.

 

 

출판사 리뷰

 

파이썬 병렬 컴퓨팅을 실현하는 대스크로 더 쉽고 효율적인 데이터 분석하기

파이썬을 이용한 데이터 작업을 경험해본 사람이라면 한 번쯤 팬더스와 넘파이 패키지를 접해봤을 것이다. 하지만 대스크라는 패키지는 조금 낯설 수 있다. 대스크는 데이터 과학 분야에서 매우 유용하게 활용할 수 있는 도구다. 특히 이 책은 ‘대용량 데이터의 병렬 처리’라는 주제를 이해하기 쉬운 비유와 상세한 설명을 통해 쉽게 풀어놓았다. 기존에 팬더스와 넘파이를 이용하여 데이터를 처리한 경험이 있는 개발자라면 코드 예제를 따라 하기만 해도 대스크의 기본 원리와 새로운 기능을 금방 파악할 수 있을 것이다. 이 책이 대스크라는 새로운 ‘강력한 무기’를 하나 더 장착할 좋은 기회가 되기를 바란다.

 

 

주요 내용 

  • 대규모 정형/비정형 데이터 작업하기
  • 시본과 데이터 셰이더를 사용한 시각화
  • 필요한 알고리즘 직접 구현하기
  • Dask Distributed로 분산 앱 빌드
  • 대스크 앱 패키징과 배포
제시 대니얼 저자

제시 대니얼

경험이 풍부한 파이썬 개발자. 지난 3년간은 특별히 PyData 스택(팬더스, 넘파이, 사이파이, 사이킷런)과 함께 했다. 2016년 덴버 대학교의 비즈니스 정보 및 분석학과 부교수로 ‘데이터 과학을 위한 파이썬’ 과목을 개설하고 가르쳤다. 현재는 덴버 지역의 미디어 기술 관련 업체에서 데이터 과학팀을 이끌고 있다.

이준용 역자

이준용

인공지능과 빅데이터 기술에 관심이 많은 연구원. 한국과학기술원(KAIST)에서 전자공학 박사학위를 받고, 일본 ATR IRC 연구소에서 인간-로봇 상호작용에 대해 연구했으며, 미국 아이오와 주립대학교에서 대사회로 관련 데이터베이스를 구축했습니다. 2014년부터 2021년까지 미국 퍼시픽 노스웨스트 국립연구소에서 다양한 생명과학 연구에 참여했습니다. 현재는 한 바이오텍 기업에서 수석 데이터 과학자로 암 진단과 관련된 일을 하고 있습니다.

Part I 확장 가능한 컴퓨팅의 빌딩 블록


CHAPTER 1 왜 확장 가능한 컴퓨팅이 중요한가?

__1.1 왜 대스크인가?

__1.2 DAG 요리하기

__1.3 확장성, 동시성과 복구

__1.4 예제 데이터셋 소개

__1.5 마치며

 

CHAPTER 2 대스크 시작하기

__2.1 데이터 프레임 API와의 첫 만남

__2.2 DAG 시각화하기

__2.3 작업 스케줄링 

__2.4 마치며

 

Part II 대스크 데이터 프레임을 이용해 정형 데이터 작업하기


CHAPTER 3 대스크 데이터 프레임 소개하기

__3.1 왜 데이터 프레임을 사용하는가?

__3.2 대스크와 팬더스

__3.3 대스크 데이터 프레임의 한계 

__3.4 마치며

 

CHAPTER 4 대스크 데이터 프레임으로 데이터 불러오기

__4.1 텍스트 파일에서 데이터 읽기 

__4.2 관계형 데이터베이스에서 데이터 읽어오기 

__4.3 HDFS와 S3에서 데이터 읽어오기

__4.4 파케이 형식으로 데이터 읽어오기 

__4.5 마치며 

 

CHAPTER 5 데이터 프레임의 정리와 변환

__5.1 인덱스 및 축 작업하기

__5.2 결측값 다루기 

__5.3 데이터 기록하기

__5.4 요소별 연산 

__5.5 데이터 프레임의 필터링과 재색인 

__5.6 데이터 프레임들을 조인하고 연결하기 

__5.7 텍스트 파일과 파케이 파일에 데이터 쓰기 

__5.8 마치며 

 

CHAPTER 6 데이터 프레임 요약과 분석

__6.1 기술 통계 

__6.2 내장된 집계 함수

__6.3 사용자 정의 집계 함수 

__6.4 롤링(윈도우) 함수 

__6.5 마치며 

 

CHAPTER 7 시본 라이브러리로 데이터 프레임 시각화하기

__7.1 준비-리듀스-수집-플롯 패턴

__7.2 scatterplot 함수와 regplot 함수로 연속형 관계 시각화하기 

__7.3 바이올린 플롯으로 범주형 관계 시각화하기

__7.4 히트맵으로 두 가지 범주형 관계 시각화하기

__7.5 마치며

 

CHAPTER 8 데이터 셰이더로 위치 데이터 시각화하기

__8.1 데이터 셰이더란 무엇이며 어떤 원리로 동작하는가?

__8.2 대화식 히트맵으로 위치 데이터 플로팅하기 

__8.3 마치며

 

Part III 대스크의 확장과 배포


CHAPTER 9 백(Bags)과 배열 활용하기

__9.1 Bags으로 비정형 데이터 읽고 파싱하기 

__9.2 요소 변형, 요소 필터링, 그리고 요소 폴딩하기

__9.3 Bags으로부터 배열 및 데이터 프레임 만들기 

__9.4 자연어 툴킷으로 병렬 텍스트 분석을 위해 Bags 사용하기 

__9.5 마치며 

 

CHAPTER 10 대스크 ML을 이용한 머신러닝

__10.1 대스크 ML로 선형 모델 만들기

__10.2 대스크 ML 모델 평가 및 튜닝 

__10.3 대스크 ML 모델 저장하기 

__10.4 마치며 

 

CHAPTER 11 대스크 확장 및 배포

__11.1 도커로 아마존 AWS에서 대스크 클러스터 빌드하기

__11.2 클러스터에서 대스크 작업 실행하고 모니터링하기 

__11.3 AWS에서 대스크 클러스터 정리하기

__11.4 마치며

 

APPENDIX A 소프트웨어 설치

__A.1 아나콘다로 추가 패키지 설치하기 

__A.2 아나콘다 없이 패키지 설치하기 

__A.3 주피터 노트북 서버 시작하기 

__A.4 NLTK 구성하기

요즘 서점에 가보면 IT분야는 머신러닝, 딥러닝 책들이 주를 이룬다.

이러한 흐름에 더불어 Data Science(어색하긴 하지만 이하 데이터 과학)라 일컫는 데이터를 분석하는 영역에 대한 책들도 꽤 눈에 띈다.

어떻게 생각해보면 머신러닝이니 딥러닝이니 하는 것들도 다 데이터를 분석하고 이용하기 위한 방법이나 수단의 한 방편에 불과하고 크게 보면 데이터 과학의 관점에서 거시적에서 미시적으로 접근하는게 올바른 접근법이 아닌가 싶기도 하다.


'파이썬과 대스크를 활용한 고성능 데이터 분석'이란 책은 후자에 가깝다.

소위 요즘 말하는 머신러닝, 딥러닝은 대량의 데이터와 이를 처리하는 컴퓨팅 파워가 필수적이다, 이를 위해 필여적으로 필요한 것이 메모리와 병렬처리라 할 수 있는데 이를 위해 이 책에서는 대스크(Dask)를 이용해서 이러한 것들을 효과적으로 수행하기 위한 방법을 소개하고 있다.


전반적인 책의 내용은 일반적인 데이터 과학 관련 작업을 수행할 때 대스크를 적용하여 처리하는 방법에 대한 내용을 담고 있다.

앞서 이야기 한대로 대용량 데이터를 처리할때 대용량의 메모리와 CPU(또는 GPU) 파워는 필연적이다. 흔히들 기본적으로 사용하는 넘파이(Numpy)나 판다스(Pandas)를 이용한 모델 학습 등을 할때 대용량 데이터를 통으로 돌리다 보면 메모리 문제로 죽는 경우를 왕왕 볼 수 있다. 

대스크는 아래 그림에서도 알수 있듯이 대용량 데이터를 여러개로 분할해서 하나씩 또는 병렬로 처리함으로써 상대적으로 적은 메모리상에서도 데이터 분석 모델을 돌리는 것이 가능하다.

몇년전서부터 데이터 사이언스 영역에서는 시각화 분석이 유행이다, 시각화 분석에 특화된 TIBCO Spotfire와 같은 사용 전문 툴에 비할바는 아니겠지만, 이 책은 분석을 시각화 하는 부분에 대해서도 언급하고 있다.


뿐만 아니라 ML모델을 구축하고 이를 빌드하고 패키징, 배포하는 것까지 두루두루 다루고 있다.


대스크를 이용해서 비정형 데이터를 처리하는 것도 가능하지만 대규모 정형데이터 처리에 효과적으로 적용해볼 수 있을것 같다.


이 책은 이러한 고민을 가지고 있는 사람들이 입문하기에 꽤 괜찮은 접근법을 제시하고 있다, 데이터 분석에 첫발을 내딛거나 대용량 데이터 처리가 필요한 분들에게 좋은 인사이트를 제공할꺼라 생각한다.


※ 본 리뷰는 IT 현업개발자로서 한빛미디어 리뷰어로 출판사로부터 제공받아 읽고 작성한 글입니다.

dask-small.jpeg

 

본 리뷰는 한빛미디어 주최의 나는 리뷰어다 이벤트의 진행 지원을 받아 작성합니다.

추천 독자: Python 객체, Numpy, Pandas, sklearn 라이브러리 등 을 통해 데이터 파이프라인을 구축했으나, 보다 대용량의 데이터셋을 운용하기위한 분산 시스템을 비교적 빠르게 구성하고싶은 독자분들.

 

제가 책에서 유추한 본 서적의 목표는 다음과 같습니다.

"Dask 라는 라이브러리를 중심으로 분산 환경의 데이터 파이프라인을 구축하자."

본문에는 Dask 라이브러리를 중심으로 놓고 데이터 전처리, 시각화, ML모델링, 클러스터 운영과 확장에 대해서

용례를 설명합니다.

데이터 수집과 보관에 관해선 크게 언급하지않습니다만, 파일 데이터에서 읽어오는 방식을 기반합니다.

DAG와 스케쥴러를 통해 분산환경에서 대규모 데이터셋의 전처리를 효율적으로 핸들링하고

Pandas 의 인터페이스와 거의 유사한 인터페이스로 설계함으로써 기존 Pandas 사용자들이

보다 쉽게 데이터 파이프라인을 확장할 수 있게 하였으며, 단일 머신의 기억장치(HDD, RAM) 용량의 한계를 넘어 분산 환경에서 용이하게 Scale in/out 을 가능케 합니다.

무조건 Dask의 장점 뿐 만이 아닌 3.3절에서 Dask DataFrame의 한계점과 주의사항을 짚어주면서

Dask의 도입 후에도 유의할 사항들을 알려줍니다.

Spark 와 같은 다른 오픈소스들이 존재하지만 학습비용을 줄이고 Python 중심의 기존 데이터 파이프라인에서 Python 객체들의 확장을 지원하는 Dask가 다른 경쟁자들에 비해 개인적으로 호감입니다.

 

저 또한 단일 머신 환경에서 어떻게 성능을 확장해야하는가에 대해서 현업에서 쓰이는 HDFS, Zookeeper, Spark 스택을 학습할까 생각했습니다. 하지만, 학습비용의 장벽에 진도가 잘 나아가지는 않았습니다.

본 책 덕분에 Dask라는 하나의 시도해볼만한 도구가 생겨 기쁩니다.

 

파이썬은 데이터 작업을 하는데 많이 쓰입니다.


판다스와 넘파이 패키지는 파이썬을 배우면 많이 접합니다.


대스크 패키지는 좀 낯설 수 있습니다.


대스크 패키지를 알려주는 책을 소개하고자 합니다.


책 제목은 '파이썬과 대스크를 활용한 고성능 데이터 분석'입니다.


이 책은 누구를 대상으로 썼을까요?

초·중급 데이터 과학자, 데이터 엔지니어가 대상입니다.


프레임워크 사전 경험이 있는 경우 책이 더 유익할 겁니다.


파이썬과 대스크를 활용해 데이터 분석을 할 수 있습니다.


대스크는 대용량 데이터의 병렬 처리가 가능합니다.


병렬처리를 쉬운 설명으로 상세하게 알려주는 책입니다.


이 책을 통해 대스크에 대해 이해되는 시간이 되길 바랍니다.



02-.jpg

 


1. 대스크란

대스크는 데이터 과학에서 중요한 도구입니다.


유향 비순환 그래프(DAG)는 대스크 구조의 중심이라 할 수 있습니다.


DAG는 스케일링 컴퓨팅의 핵심 개념입니다.


스케일링 컴퓨팅의 핵심개념이기도 합니다.


작업은 대규모인 정형과 비정형 데이터로 하게 됩니다.


시본과 데이터 셰이더를 사용해 시각화도 신경 쓸 수 있습니다.


또한 CPU 코어와 물리적 작업을 분산시킬 때도 사용합니다.


대스크 앱과 패키징과 배포하는 것도 알려줍니다.



 

01-.jpg

 


2. 확장 가능한 컴퓨팅

확장 가능한 컴퓨팅은 왜 필요할까요?

대규모 데이터셋으로 작업할 경우 어려운 문제에 직면할 수 있습니다.


데이터가 크다 보니 잦은 증상이 발생합니다.


개발하다 보면 겪는 증상인데요.

단순한 연산도 끝나지 않는 경우가 있습니다.


실행 시간이 길고 코드가 불안정하기 때문입니다.


그 외에 정말 복잡하고 어려운 워크플로우의 경우에도 그런 증상이 나타납니다.


그리고 컴퓨터의 성능도 많이 탑니다.


RAM의 성능이 좋을수록 더 큰 용량의 파일을 돌리는데 수월합니다.



03-.jpg

 


Ps

데이터를 다루려면 데이터셋을 정제가 필요합니다.


정제만으로 결과물이 나오진 않습니다.


정제된 데이터로 데이터 정렬과 필터링, 결측치 처리 등의 조치를 해줘야 합니다.


이 책을 통해 대스크로 비정형 데이터를 파싱, 정제, 분석하는 법을 배울 수 있습니다.


대스크와 데이터 분석에 관심 있는 분들에게 이 책을 추천합니다.

 

장점

1.     책을전체적으로 보았을 때 문제정의-> 데이터 수집-> 데이터정리-> 탐색적 분석-> 가설 설정과 검정-> 모델 구축과 검정-> 모델 배포와 모니터링 과정을 장으로세분화하여 나누어 부족한 부분에 대하여 복습하기에 좋음

 

2.     데이터분석을 위해 보통 파이썬에서 판다스를 사용하지만 iris같은 소규모 데이터에 적합하며 규모가 큰 데이터셋일 경우 판다스의 경우 비효율적이므로 이를 해결하기 위해 대스크를 통하여 큰 데이터셋을 분할하여 병렬로 처리하는 법을 예시와 함께 과정을 설명을해주어 이걸 왜 이렇게 하는지에 초점을 맞춰주어 이해가 잘됨

 

후기

1.     이책을 읽기 전에는 kaggle에서 csv나 스크래핑 하여정규화 하는 방식으로 데이터를 읽었었는데 책에서는 RDBS, HDFS, S3, 파케이 형식으로 다양하게읽는 법을 알려주며 대스크 프레임워크를 데이터를 다루는 법 시각화 하는 법 등 읽다 보면 내가 배웠던 것은 소규모의 데이터를 다루는 법에 대하여배웠구나 싶어 학구열을 더 높여 주는 책인 것 같다.

 

20201025_204521.jpg

 

20201025_190231.jpg

 
이번달에는 파이썬 데이터 분석책을 읽었습니다.
대규모 데이터 분석에 대한 책이라고 해서 기대를 많이 하였습니다.
대스크 이전의 대규모 데이터는 어떻게 분석했는지 몰라서, 대스크와 비교할 수는 없지만, 대스크를 보고 느낀 점은 뭐! 쉽네. ^^

 

대규모, 분산이 주는 느낌이 거대하고 복잡하다는 느낌이잖아요. 책을 읽기 전에는 좀 어려울 것이라는 생각이었는데, 대스크 라이브러리가 쉬운 것인지, 책을 쉽게 쓴 것인지 잘 모르겠네요.
 

20201025_190249.jpg

 

위 이미지처럼 이론적이 부분이 많아요. 그래서 데이터 전처리부터 머신러닝까지 데이터 분석의 처음부터 끝까지를 복습한 느낌입니다. 여기서 복습한 느낌이란 기존 판다스, 시본, 사이키런을 좀 사용해본 사용한 입장에서 말하는 것입니다. 
그래서 오늘 처음 대스크와 대규모 데이터 분석에 대해서 배우고자 이 책을 읽는다면 다소 어려울 수도 있습니다.

 

판다스의 개념이랑 간단한 사용법조차 안 나오니까요.  이 책을 읽기 전에 판다스와 사이키런 (머신러닝) 책을 먼저 읽어보시기를 추천드립니다. 다른 책 읽고 이 책 읽으면 복습 느낌이 확실이 납니다.
 

20201025_190308.jpg

 

그래서 전체적인 책 내용에 대해서는 별로 평할 것이 없어요. 저 개인적으로는 분산 처리에 대한 개념을 이번 기회에 좀 더 숙지했다는 정도입니다. 또한 이렇게 쉽게 이미지로 설명한 부분은 좋았어요.

 

20201025_190321.jpg

 

그리고 ~ 가 부정연산자이었네요. 전에 검색해보다가 지쳐서 포기했는데, ㅎㅎㅎ 이런 것이 여러 책을 읽는 묘미인 것 같아요. 내가 잘 모르는 부분을 언제 어느 책에서 읽을 줄 모르니까요.

 

 

20201025_190350.jpg

 

소스코드 설명도 한줄 한줄 간략하게 설명합니다. 아는 입장에서 쉽게 쉽게 넘어가지만, 모르는 분들은 따로 공부하셔야 해요.

 

대스크-주피터 2.png

 

마지막으로 제공한 소스코드 문제입니다. 이렇게 잘 나가다가, 5장 중간부터 소스코드가 에러납니다. 실습 코드가 연속적이라서 중간에 에러나면, 뒤쪽은 실행할 수가 없습니다. 그래서중간부터 실습없이 눈으로만 읽었어요.그래서 좀 짜증났습니다. 깃허브 코드 올린지 5개월이 지났던데, 그동안 무슨 변화가 있었는지.. 각 장별로 최소한 파케이 파일을 제공하였으면 좋겠다는 생각을 합니다.

 

그리고 책에서 소개한 라이브러리도 제 아나콘다에서는 설치가 안되네요. ㅠㅠ
 

20201025_190423.jpg

 

마지막으로, 누가 읽으면 좋을까요? 판단스, 사이키런 정도로 데이터 분석 좀 했는데, 데이터 규모가 갑자기 커질때, 분산을 쪼매 공부해서, 현업에 바로 사용하고 싶으면 분은 대스크 공부해보세요. 별로 공부할 것이 없어요.  그 느낌 그대로 대스크가 알아서 해줍니다. ^^

 

 


이 서평은 교재를 제공받아 작성되었으며, Yes24, 한빛 홈 사이트에도 같이 등록됩니다.

 

 

빅데이터’. 4차 산업혁명이라는 말과 함께 우리 사회를 관통하고 있는 키워드 중의 하나이다. 현대 사회는 이전에 비해 엄청난데이터가 시시각각 생성되고 있고, 이러한 데이터를 어떻게 다루느냐는 기업과 사회의 경쟁력이 되고 있다.

 

dask.png

(출처: dask.org)

대스크(Dask)는 이러한 대용량의 데이터를 효과적으로 처리할 수있도록 하는 파이썬 패키지이다. 대용량의 데이터를 처리하는 프레임워크나 방법은 매우 많지만, 대스크는 파이썬을 이용하여 데이터를 처리하던 사용자에게 거의 동일한 사용 경험을 제공한다. 대용량 데이터의 처리에 많이 쓰이는 아파치 스파크의 경우, 파이썬을위해 파이스파크라는 API를 제공하지만, JVM 기반에서동작하는 스파크를 최대로 활용하기 위해서는 스칼라나 자바로의 전환이 불가피한 경우도 존재한다. 대스크는팬더스(Pandas)와 넘파이(NumPy)에 이미 익숙한많은 함수와 속성, 그리고 메서드들이 구문적으로 동일하다. 이러한디자인은 팬더스, 넘파이, 사이킷런에 이미 익숙한 사용자들이작은 데이터셋 작업에서 더 큰 규모의 데이터셋으로 확장하는 작업을 용이하게 한다.

 

001.png

 


 ‘파이썬과대스크를 활용한 고성능 데이터 분석 (원제: Data Sciencewith Python and Dask)’는 이러한 대스크에 대한 상세한 소개를 담고 있다. 이책은 크게 3개의 파트로 구성되어 있다. 첫번째 파트는 확장가능한 컴퓨팅의 빌딩 블록에 대한 것으로, 스케일링 컴퓨팅의 기초 내용을 다루고 있다. 대스크가 왜 데이터 과학에서 중요한지, 그리고 스케일링 컴퓨팅의핵심 개념인 유향 비순환 그래프 (DAG: Directed Acyclic Graph)의 개념 및 이를확장한 사용법을 소개한다.

두번째 파트는 대스크 데이터 프레임을 이용하여 정형 데이터 작업 방법을 다룬다.대스크 데이터 프레임의 디자인 컨셉을 소개하고, 팬더스 데이터 프레임과의 관계 및 처리방법, 다양한 형식의 데이터 소스로부터 대스크 데이터 프레임을 생성하는 방법을 설명한다. 이어 데이터의 정렬, 필터링, 결측치처리, 데이터셋 조인 등 데이터셋을 정제하고 변형하는 방법과 함께 sum,mean 등 기본 내장 함수와 사용자 정의 함수를 만들고 사용하는 방법도 살펴보고 있다.

마지막 세번째 파트는 비정형 데이터, 머신러닝, 확장 가능한 워크로드 빌드하기 등 조금 더 높은 수준의 대스크 활용법을 소개한다. 대스크 Bag과 배열을 사용해서 비정형 데이터를 다루는 방법, 대스크 데이터 소스에서 머신러닝 모델을 구축하고 훈련된 모델의 활용법에 이어 도커를 사용해 AWS에서 대스크 클러스터를 설정하고 사용하는 방법을 설명한다.

이 책은 초중급의 데이터 과학자나 엔지니어, 분석가를 대상으로 하지만, 책에 소개된 친절한 예제는 아직 데이터 과학을 접해보지 못한 사람들에게도 데이터 과학으로의 좋은 입문서가 될것이다.

 

이 책을 보면서 느낀 점은 점점 분산형 아키텍처가 거의 베이스가 되어버린 느낌을 많이 받았다. 스파크, 하둡, PostgresQL등등 대다수의 프레임워크, 툴들이 분산 확장형의 컨셉을 지니는 것 같아 신기 했는데, 데이터 분석 처리 툴은 그런게 있나? 막연하게 생각 했는데, Dask라는 도구를 알게 되었다. 

 

 

데이터 엔지니어링을 하고 있지는 않아 실무에서는 어떤 프레임워크를 더 많이 쓰는지는 잘 모르겠다.
팀에서 쓰고 있는 파이스파크로 충분한 때가 있는 것 같기도 하고 Daks가 또 어느 지점에서는 유용하지 않을까? 생각 하게되었다.

물론, 스파크로도 충분히 많이 처리 하고는 있긴 하겠지만, Daks 어느 지점에서는 유용하지 않을까? 생각 했다. 

 

그런 점에서 데이터 사이즈가 급격하게 확장 될 요소가 있고, 빠르게 분석을 해야 한다면, 파이 스파크에서 Dask를 도입하는 것도 좋은 선택이 아닐까? 생각 한다. 

결국 데이터 사이즈는 지속적으로 확장 될 수 밖에 없는 구조임을 기억해야 한다. 파이스파크로는 한계점이 분명히 있기 때문에, 성격은 다르지만, 범용 라이브러리를 확장 가능하게 사용할 수 있다는 점에서 좋다고 생각한다. 

 데이터 분석 강의를 수강할 때 하는 분석 과제의 수준과 현업에서의 분석 수준은 확연하게 다릅니다. 더 많은 Feature들이 존재하고, 결측치가 많고, (실무자가 아닌 경우에는) Feature가 의미하는 것이 무엇인지 정확하게 알지 못하는 등 교육용 데이터에는 존재하지 않는 많은 불확실성들이 분석 난이도를 높이게 됩니다. 결정적으로 데이터의 규모가 노트북 단위에서 처리하기 어려운 경우가 많습니다.

 

데이터셋 종류 크기 범위 RAM에 적당한가? 하드디스크에 적당한가?
작은 데이터셋 2GB-4GB
중간 데이터셋 2TB 이하 아니오
큰 데이터셋 2TB 이상 아니오 아니오

<표1 데이터 크기의 단계별 정의>

 

 위의 표는 리뷰한 책에서 데이터셋에 대해 정의한 내용을 발췌한 것입니다. 일반적으로 대학교 강의의 과제에서 활용되는 Boston Housing이나 Iris 데이터셋은 작은 데이터셋에 해당되고 캐글이나 데이콘 등의 머신러닝 경진대회에서 활용되는 데이터셋은 일반적으로 작은 데이터셋~중간 데이터셋에 해당됩니다. 요근래 출시되는 노트북들은 8GB이상의 RAM이 탑재되어 있으므로 작은 데이터셋은 처리가 가능하지만 그 이상의 크기에 대해서는 하드디스크(혹은 SSD)에 저장되어 실행되기 때문에 I/O병목으로 인해 실행 속도가 RAM만 이용할 때 보다 느려지게 됩니다.

 

 따라서 병렬 처리를 통해 대용량 데이터를 다루는 대스크(Dask) 라이브러리는 중간 데이터셋 이상을 다루는 프로젝트에서 매우 유용하게 사용됩니다. 저도 대스크라는 라이브러리를 처음 알게 된 것은 제조 데이터 분석 업무를 맡았을 때였습니다. 처음 업무를 인수인계 받아 수백GB의 데이터셋을 불러오는 레거시 코드를 실행시켰을 때 느꼈던 아찔함은 아직도 머리속에 생생합니다. 판다스의 read_csv 메소드를 통해 불러오고 전처리 코드를 실행하는데에 꽤 고성능의 PC임에도 불구하고 수십분이 소요되는 것을 보고 무언가 잘못되었다는 생각이 들었습니다. 그리고 나서 해결책을 찾기위해 스택오버플로우와 구글링을 했고, Dask라는 라이브러리가 있다는 것을 알게 되었습니다. 다른것보다 업무에 빠르게 적용해야 했기에 주요 원리는 알지 못한채 일단 API문서를 보고 적용하며 코드를 리팩토링했습니다. 판다스와 API가 비슷하여 빠르게 적용할 수 있었고, 결과적으로 I/O속도가 향상되어 시간을 절약할 수 있었습니다.

 

 이 책은 Dask를 활용해 보았지만 과거의 저처럼 공식 문서나 블로그 등을 대강 훑어보고 적용하며 느꼈던, Dask 라이브러리에 대한 원리에 대한 갈증을 느끼신 분들에게 추천드리고 싶습니다. 도입부에 Dask의 중심을 관통하는 방향성 비순환 그래프(Directed Acyclic Graph, DAG)를 쉬운 예시와 함께 설명해 주고 있으며, 아마 많은 분들이 Dask를 처음 사용할 때 불러온 데이터프레임에 아무런 값이 나오지 않아 당황하실텐데 그 이유와 실행 원리에 대해서도 자세하게 설명하고 있습니다. 또한 대스크의 API도 판다스와 많이 호환되기 때문에 판다스를 활용하여 데이터분석을 간단하게 해보셨던 분들도 코드를 보며 쉽게 이해할 수 있을 것이라고 생각됩니다. (pandas의 alias인 pd대신 dask의 alias인 dd를 사용하면 대부분 판다스와 유사하게 활용 가능합니다.)

 

 사실 제가 활용하는 데이터셋의 크기는 분산컴퓨팅을 활용할 정도는 아니기 때문에 책 후반부에서 다루는 확장이나 배포 등의 챕터는 가볍게 훑고 넘어갔지만, 저보다 큰 데이터를 활용하시는 분들은 좋은 Introduction이 될 것 같습니다.

 

* 산업공학 전공자로써 조금 불편했던 점은 책 초반에 운영 연구라는 표현이 나오는데, 이는 원서에서 Operations Reserch를 직역한 것으로 생각됩니다. 이는 역자가 산업공학 전공자가 아니기도 하고, 개인적으로는 운영 연구라는 표현이 Operations Research라는 연구분야를 의미하는 것이 아니라 일상적인 언어으로 느껴지는 감이 없지않아서 OR이나 경영과학, 운용과학 등으로 치환했으면 조금 더 편했을 것 같습니다.

 

본 책은 한빛미디어로부터 제공받았으며 책 이외의 요구사항이나 보수를 제공받지 않았습니다.

대스크라는 개념과 주피터 노트북을 활용한 데이터 정리 방법을 기술하고 있다.

분석, 시각화, 모델링 하는 과정을 예제로 제공하고 있어 실습하며 읽는다면 큰 도움이 될 것이다.

 

주요 대상 독자는 초중급 데이터 과학자나 데이터 엔지니어였다.

나는 pandas, numpy만 조금 다뤄봤던 터라 어렵게 느껴지긴 했었다...

하지만 이 정도의 개념만 알아도 책의 흐름정도는 이해할 수 있었다.

특히 알고리즘 예시와 계산 과정을 보여주는 부분이 좋았는데,

왜 이렇게 프로그래밍을 하는지, 어떠한 과정으로 데이터 분석이 이뤄지는지를

도식화시켜 보여주고 있었다. 덕분에 좀 더 이해하는데에 도움이 되지 않았나 싶다 :)

16G의 메모리가 있는 장비를 주로 사용하며 판다스로 10G정도의 파일을 불러온 사람들이면 판다스의 굼뜬 반응에 답답함을 느꼈을 사람들이 많을 것이다. 그나마 16G의 메모리를 사용하고 있어 10G정도까지라도 로드를 할 수 있지만 8G나 4G의 메모리를 사용하고 있다면 1G의 파일만 로드해도 작업을 할 수 없을 정도로 느려지는 것을 느낄 수 있었을 것이다.

최근 10G이상의 파일을 로드할 때 모든 데이터가 필요하지 않기 때문에 판다스로 필요한 데이터만 불러와서 파일사이즈를 최대한 줄여서 사용하는 방법으로 로컬장비를 활용해 왔다. 이렇게 큰 파일을 다룰 때마다 dask를 써야겠다고 마음만 먹고 실행해 옮기지 못 했는데 드디어 dask 책이 나와서 실행에 옮겨보기로 했다!

이 책에서는 4G정도의 데이터셋은 작은 데이터로 다루기는 하지만 이 또한 판다스로 작은 메모리를 사용해서 로드하기에는 부담이 된다. Dask는 CPU의 단일코어를 사용하는 문제를 모든 CPU코어를 사용하게 함으로써 병렬처리를 해준다.

그리고 dask 는 pandas 와 호환이 아주 잘 되는 인터페이스를 가지고 있으며 사용법도 판다스와 매우 유사하다. 그래서 pandas 에 익숙한 사람이라면 dask에 적응하는게 크게 어렵지 않을것이다.

서울지하철데이터를 통해 dask를 사용해 봤다. pandas 에서 사용했던 API가 대부분 그대로 동작하며 .compute()를 통해 연산이 가능함을 확인할 수 있었다.

dask를 소개하는 번역서가 있었으면 좋겠다고 생각했는데 내가 알기로는 국내 첫 번역서로 알고 있다. 앞으로 곁에 두고 dask에 익숙해 질때까지 닳도록 보려고 한다.

깃헙저장소는 여기에 있다. 이 책 덕분에 앞으로 판다스와 함께 자주 사용하게 될것 같다 :)

https://github.com/coldfire79/data-science-with-python-and-dask

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬과 대스크를 활용한 고성능 데이터 분석
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬과 대스크를 활용한 고성능 데이터 분석
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬과 대스크를 활용한 고성능 데이터 분석
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실