Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Data pipeline and data lake

Data Pipeline
Data Lake

  • Inicia sesión para ver los comentarios

Data pipeline and data lake

  1. 1. Data Engineering Data Pipeline Data Lake 강대명(charsyam@naver.com)
  2. 2. What is Data Engineering ● Data Engineer ○ 다른 사람들이 데이터를 사용하기 쉽도록 저장/수집하고 ETL 작업 등을 처리하는 직군, 로그 수집, 로그 정제 ● Data Scientist ○ 데이터를 이용하여, 분석을 하거나, 추천등의 로직을 작성하는 직군 . ● Data Engineering ○ Data Scientist 들이 관련 작업을 쉽게 할 수 있도록 데이터를 수집/ 정제하는 일련의 작업들
  3. 3. What is Data Pipeline? ● 우리는 단순히 몇가지 통계를 뽑지 않습니다. ○ UV, PV 등이면 충분해요. ○ 이러면 Data Pipeline 은 필요 없습니다. ● 또는 모든 데이터를 그냥 Raw Data에서 뽑아내요라고 하신다면 특별히 관리할 필요가 없습니다. ● 단순한 데이터 추출이 아니라, 여러 데이터들이 연관관계를 가지거나, 중간 중간 변환되어 추출되어야 하는 경우.
  4. 4. Pipeline 사전적 의미 : 배관
  5. 5. Data Pipeline ● 데이터 배관 ● 각각의 파이프는 자신만의 결과물을 가진다.
  6. 6. Data Pipeline
  7. 7. Data Pipeline 쉽게 말하면 ETL(extract -> transform -> load) 작업의 연 속
  8. 8. 추천 - Data Pipeline 의 예 우리는 얼굴 책이라는 SNS 서비스를 운영하고 있습니다. 그런데 사용자들의 좋아하는 성향에 따른 글들을 추천하 고 싶어요.
  9. 9. 추천 - Data Pipeline 의 예 ● Log 내용 ○ 66.249.65.159 - - [06/Nov/2014:19:10:38 +0600] "GET /news/53f8d72920ba2744fe873ebc.html HTTP/1.1" 404 177 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" ○ 66.249.65.3 - - [06/Nov/2014:19:11:24 +0600] "GET /?q=%E0%A6%AB%E0%A6%BE%E0%A7%9F%E0%A6%BE%E0%A6%B0 HTTP/1.1" 200 4223 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" ○ 66.249.65.62 - - [06/Nov/2014:19:12:14 +0600] "GET /?q=%E0%A6%A6%E0%A7%8B%E0%A7%9F%E0%A6%BE HTTP/1.1" 200 4356 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  10. 10. Log 수집 #1 web001 web002 web003 web004 Mysql Or MongoDB 통계작업
  11. 11. Log 수집 #2 web001 web002 web003 web004 redis Buffer 를 이용한 쓰기 효 율화(Write-Back) Mysql or Mongodb
  12. 12. Log 수집 #3 web001 web002 web003 web004 Collector hdfs or s3 scp syslogd or logstash 통계작업 By Spark, Hive, Presto, MR
  13. 13. 추천 - Data Pipeline 의 예 정의(Justice Definition)가 중요하다! 사용자의 성향은 사용자가 올리는 글의 내용, 사진의 종류 에 따라서 결정된다.(가정 -> 이 것은 실험을 통해서 증명 하세요.)
  14. 14. 추천 - Data Pipeline 의 예 ● 사용자의 취향을 (인물, 자연, 음식등으로 구분한다.) ○ 업로드한 텍스트로 취향을 분석 ○ 업로드한 사진으로 취향을 분석
  15. 15. 추천 - Data Pipeline 의 예 ● 추천한 글에 대한 반응을 업데이트 한다. ○ 추천한 글을 삭제하는가? ○ 추천한 글에 좋아요를 하는가?
  16. 16. 추천 - 파이프 1 ● 사용자가 어떤 작업을 했는지 모은다.(사용자마다) ○ 아기사진 글에 댓글 3회, 자연 글에 2회 좋아요. ○ 아기사진 업로드 2회, ● 모은 내용으로 어떤 점수와 성향을 만든다. Calculate Users Characters Log Aggreation Make Scores
  17. 17. 추천 - 파이프 2 ● 사용자의 추천된 글에 대한 반응을 분석한다. ○ 사용자에게 추천된 글중에서 반응이 좋은 글에 대 한 분석 ○ 사용자에게 추천된 글중에서 반응이 나쁜 글에 대 한 분석Analysis Users Feedbacks Analysis User Good/Bad FeedBacks
  18. 18. 추천 - 파이프 3 ● 새로 작성된 글이나 상품에 대한 정보를 평가한다. ○ 어느 성향의 유저들에게 인기가 좋았는지 또는 안 좋았는지 Analysis Item Character Analysis Items character
  19. 19. 추천 - 파이프 4 ● 유저에게 새로운 글이나 상품을 추천한다. Recommand Item Calculate item score for each users Get Top N
  20. 20. 파이프 관계도 Calculate Users Characters Analysis Users Feedbacks Analysis Item Character Recommand Item
  21. 21. Data Pipeline ● 뭔가 필요한 데이터들을 단계별로 만들고, 이용하기 위해서 만들어진 작업들을 관리하는 것. ● 머신 러닝등을 위해서 이런 작업들을 하는 걸 머신러 닝 파이프라인이라고 하기도 합니다.
  22. 22. 이게 하나의 파이프!!!
  23. 23. 이런게 수십개가 생깁니다.
  24. 24. Data Pipeline 의 관리 포인트 ● 파이프라인에서 에러가 발생하면? ○ 누가 재시작해야 할까요? ● 매일 실행되거나, 특정시간에 돌아야 하는것들이면? ● 그래서 데이터 워크플로우 관리툴을 씁니다. ● 작업 마다 필요한 컴퓨팅 파워(메모리/CPU)가 다르다 .
  25. 25. 데이터 워크플로우 관리툴 ● Pinball, Airflow, Luigi ○ 여기서는 각각의 특징이나 장단점을 비교하지 않 습니다. ■ 저도 모르기 때문이지요. ○ 특정 시간, 실패했을 때, 재 반복등을 대신해줍니다 .
  26. 26. Data Pipeline 의 관리의 어려움 ● 파이프라인이 계속 재시작 되어야 하면 전체 처리용 량이 부족할 수 있습니다. ● 재시작이 코드의 버그를 수정해 주지는 않습니다. ○ 내가 만든 코드가 아닌데, 개수가 10개를 넘어야 한다고 했는데 9개면... 이게 정상일까 실패일까?
  27. 27. Batch Data Pipeline, Realtime Data Pipeline ● Batch Data Pipeline 은 하루나 몇시간 단위의 데이터 단위로 처리 ● Realtime Data Pipeline 은 짧은 시간 단위로 처리되 는 작업들을 의미한다.
  28. 28. Realtime Data Pipeline web001 web002 web003 web004 kafka syslogd or logstash 통계작업 Spark Streaming
  29. 29. Lambda Architecture
  30. 30. Kappa Architecture
  31. 31. Data Lake ● 번역 : 호수 ○ 내 마음은 호수요. 그대 노 저어 오오!(내마음/김동 명)
  32. 32. Data 관리의 어려움 “엉망인 소스 데이터를 유용한 것으로 바꾸는 데 드는 시간이 데이터를 분석하는 나머지 시간을 합한 것보다 많다.” - Pete Warden, Google Data Engineer
  33. 33. 너무 많은 Data Source ● 파일, RDBMS, HDFS, S3 등등등, 여러 Data Source 에 데이터들이 저장되어 있어서 어디에 원하 는 데이터가 있는지 알기 어려움. ● Source of Truth, RDBMS 와 HDFS에 두군데에 데 이터가 있다면 어느 것이 원본인가?
  34. 34. Data Lake ● 여러 데이터 소스를 하나로 관리
  35. 35. Data Warehouse VS Data Lake Data Warehouse vs Data Lake structured, processed DATA structured semi-structured unstructured, raw schema-on-write PROCESSING schema-on-read expensive for large data volumes STORAGE designed for low cost storage less-agile, fixed configuration AGILITY highly agile, configure and reconfigure as needed mature SECURITY maturing business professionals USERS data scientists et.al
  36. 36. Schema on Read, Schema on Write
  37. 37. Data Lake 에서 고민할 점 #1 ● 여러 곳에 흩어져 있는 데이터를 모아서 한 곳에 처 리할 수 있도록 한다. ● 계속 계속 생성되는 새로운 테이블이나 데이터, 테이 블의 변경은 어떻게 관리할 수 있을까? ○ AWS Glue 서비스의 데이터 크롤링은 이런 변경 을 자동으로 찾아서 관리해주는 서비스
  38. 38. Data Lake 에서 고민할 점 #2 ● 쓰레기 데이터들이 계속해서 쌓일 수 있다.
  39. 39. Thank you!

×