ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 대학생이 들어본 SK 7월 Tech 세미나 후기
    TIL 2022. 8. 5. 02:02

     

     

     

    *해당 포스팅은 Tech 세미나를 듣고 개인적으로 자료를 찾고 정리한 포스팅입니다.

     

    이번 SK 데보션 대외활동을 하면서 처음으로 SK Tech 세미나에 참여했다! 약간 떨렸음 이유는 없다 ㅎ 7월 테크데이 발표 주제는 데이터 플랫폼 구현 사례 입니다~ 현재 sk 개발자분께서 본인의 팀이 하시고 있는 것에 대해서 소개해주시는 발표였고, 1부 2부로 나누어 진행됐다. 시작 전에 약간 수다 Time 있었는데 재미있었음 😉😉

     

    📝 목차

    1부

       - BIgQuery 기반의 데이터 웨어하우스

       - 데이터 분석 환경

       - 데이터 파이프라인 구현 사례

     2부

       - Tech 퀴즈

     

    BIGQUERY 기반의 데이터 웨어 하우스

    SK 모든 데이터가 흘러가는 전산 차원의 DATA Lake(사용자 정보 등)가 존재한다. 실제 강연자 분(Data Scientist)께서 DATA LAKE를 관리하고 있진 않고, DATA WAREHOUSE에 데이터로 작업을 수행하신다고 하셨다.

    Data LakeData Warehouse는 빅데이터를 위한 Data Storage Repository이다.

    2가지의 주요 차이점은

    • Data Warehouse는 설계된 구조화된 데이터 모델을 제공 (Refined, Smaller, Relational)
    • Data Lake는 현재 정의된 용도가 없는 비정형 원시 데이터를 저장 (Raw, Large, Undefined)

     

    사실 여기서부터 힘들었는데 그래도 지금은 좀 찾고 계속 보니까 이해가 된다.

     

    Bigquery와 athena 비교

    일단, BigQuery는 비즈니스 민첩성을 확보하도록 설계된 서버리스 멀티 클라우드 데이터 웨어하우스입니다.

    확장 가능한 분산형 분석 엔진을 통해 테라바이트 단위의 데이터를 초 단위로, 페타 바이트 단위의 데이터를 몇 분 만에 쿼리 할 수 있습니다. AWS Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스이다.

     

    BigQuery 장점

     

    1. Managed Service 중에서 매우 빠르다! But 비싸다
    2. Dremel (필요에 따라 쿼리에 슬롯을 동적으로 할당하여 여러 사용자의 동시 쿼리에 대한 공정성을 유지)
    3. ML을 활용한 ML 및 예측 모델링

    👇👇👇👇 더 많은 특징은 여기서 확인하세요 👇👇👇👇

     

    BigQuery: 클라우드 데이터 웨어하우스  |  Google Cloud

    BigQuery는 비용 효율성을 갖춘 서버리스 멀티 클라우드 데이터 웨어하우스로, 빅데이터에서 가치 있고 유용한 비즈니스 정보를 얻을 수 있도록 설계되었습니다. 무료로 시작해 보세요.

    cloud.google.com

     

    파이프라인과 스케줄링은 어떻게 구현하나요?🤷‍♀️

     

    Airflow 파이프라인 구현

    Airflow는 프로그래밍 방식으로 워크플로우를 작성, 예약 및 모니터링하는 오픈소스 플랫폼이다. 벌써 어지럽네

     

    Airflow의 장점

     

    1. Dynamic Data Pipeline
    2. Scalability
    3. Useful User Interface
    4. High Extensibility

    Airflow로 파이프라인을 구현하는 방법은 데이터가 센서-> 전송 -> 로드... 파이썬 코드로 작성하고 배포 확인되면 UI에서 진행상태 확인 가능합니다. 설명하신 부분이 아래 사이트에서 찾고.. 찾고 열심히 찾으면 다 나와있습니다^^

    이해하는데 도움이 되어서 첨부합니다.

    Airflow가 뭔지 몰라서 힘들었는데 뒤에 내용이 더 나오니까 여기부터 확실히 알고 가야 한다.

     

    Tutorial — Airflow Documentation

     

    airflow.apache.org

     

    Airflow2를 이용한 데이터 파이프라인 구성기

    모델 학습, 데이터 분석, 캠페인 집계, 제품 대시보드에 사용하는 데이터 수집을 위해 Airflow를 채택하고 사용하는 사례 공유

    medium.com

     

    Backfill 이 필요한 경우,

    1. Task가 실패할 때, 2. 과거 데이터 적재 요청이 있을 때

    Airflow를 사용하여 해결할 수 있지만, 어느 정도 한계가 있다고 한다.

    일반적이진 않지만 DAG를 동적으로 사용하는 방식이다. 왼쪽처럼 할 경우, 여러개가 생성되기때문에!  Backfill이 필요할 때는 오른쪽에 전역 Scope로 설정하고, dictionary를 사용해서 동적으로 DAG를 생성하면 된다.

    다른 방법은 크게 Checker Generator로 구성되어있다. Checker는 데이터 현황을 모니터링하면서 날짜를 찾고 상태 DB에 저장하고, Generaor는 상태 DB를 확인하고 Backfill DAG를 생성한다 생성된 Backfill DAG 작업이 완료되어도 삭제되지 않고, Checker가 주기적으로 Backfil DAG를 정리해준다.. 솔직히 이 부분 이해 안 돼서.. 찾아보는데 잘 못 찾겠다.

     

    데이터 분석 환경

    sk에서 제공하는 biquery data governance

     

    이 영상 진짜 완전 추천 세미나 내용 이해하는데 완전 도움이 됐습니다

     

    Jupyter는 현재 다양한 환경을 제공합니다. Jupyter Hub는 공식적으로 2가지 버전을 제공합니다.

    SK 내부에서는 컨테이너 기술을 기반으로 하는 Kubernetes 버전을 사용하고 있고, Cloud Directory를 동기화하고 SSO를 적용하여 GCP Console, JupyterHub 사용하도록 하고 있습니다.

     

    JupyterHUB에서 할 수 있는 것

     

    1. Python을 사용한 다양한 데이터 분석
    2. Hadoop Cluster와 연동
    3. HDFS, Hive, Spark 작업
    4. BigQuery 작업
    5. 머신러닝, 딥러닝(GPU)

     

    아래 사이트 들어가시면 SKT package를 제공해유. 사이트 들어가 보셔서 구경하세요 ㅎ

     

    skt

    SKT package

    pypi.org

    궁금해서 제가.. 한번 해봤는데요^^.. 얼마 전에 포맷을 해서 ^^구글 코랩으로 했는데..

    역시나! 안돼서..ㅋ 남자 친구꺼로ㅋ

     

     

    처음에 skt 설치하니까 중간에 튕겼어요....sasl 설치하는 도중에 에러 발생했고... 따로 설치해야지.. 했는데 계속 오류 나서 제 파이썬 버전이 3.9였는데 버전 오류인가 싶어서 인터넷 뒤지니까 버전별로 sasl.whl -> 파이썬 라이브러리 설치 파일?이라고 있어서 그걸 3.9 버전으로 설치하니까 sasl 설치되고, skt 설치됨... skt.lake는 import 도 안되어서 뭐지 했는데.. 서버 연결 안 된다 하는데 찾아보니까 당연히 안될만하다고 생각하기도 하고... 그냥 해봤어요 ㅎ 우당탕 해봤습니다 ㅋ 몰라요 그냥 했어요 ㅋ 궁금해서..

     

     

    데이터 파이프라인 구현 사례

    분석 환경에서 작업한 내용으로 파이프라인으로 만드는 방식에 대해 말하는 부분

     

    DAG를 코딩하고, 작성한 DAG를 Airflow에 배포하고... Airflow UI에서 테스트를 해서 확인하는데,,, 이게 또!!! 바로 결과가 나오는 게 아니라 스케줄링, 실행 기다리는 과정이 존재함...; 이런 기다림의 과정이 있는데! 버그가 발견되면!!!!!!!!!!

    다시 DAG 수정하고... 무한반복....

     

    그래서 번거롭고, 디버깅이 불편하고.. 생산성도 떨어지는 문제점이 발생한다~

    이런 문제점을 해결하는 게 바로

     NES 실행을 위한 준비 과정 

     

      1. 분석 환경에서 노트북 작성, 실행 , 테스트

      2. 외부에서 주입할 파라미터 정의(Notebook Tags 이용)

      3. 작업한 노트북을 Github에 Push 

      4. 실행할 노트북의 Github URL과 JSON 파라미터를 NES 전달

      5. NES는 사용자에게 결과를 확인할 수 있는 Output URL을 전달하면서

          동시에! Kubernetes에 노트북 실행 Pod 생성

      6. 노트북 실행 Pod에서 노트북을 실행하고 중간 결과를 Commuter 저장소에 업데이트 

      7. 사용자는 OutputURL에 접속해서 결과 확인! 

     

     

     

     

    🙋‍♂️ 2부 질문 🙋‍♂️

    클라우드를 사용하게 되면서, 비용에 대한 고민을 하게 됩니다. 데이터 플랫품 구현 시 비용 효율적인 부분에 대해서 어떤 부분을 고려하셨는지 궁금합니다. [daniel.lee.mr]

    : 유지해야하는 데이터 용량,데이터 전송하는데 비용이 얼마나 들어가는지등에 대한 고려가 필요한 것 같습니다.
    그리고 필요시 온프렘 환경과 퍼블릭 클라우드가 결합된 하이브리드 클라우드도 고려할 만한 대상인 것 같습니다.

     

    온프레미스 데이터를 BigQuery 기반의 데이터 웨어하우스로 이동하는 방법들 과 데이터 마이그래이션 진행방법은 어떻게 해야 하나요?[skyf2]

    : 여러가지 방법이 있겠으나 먼저 온프렘 데이터를 GCS로 전송한 후에 BigQuery로 로그하는 방법이 가장 효율적으로 보입니다.

     

    데이터 플랫폼을 구현하면서 기술적인 한계나, 법무 이슈등 여러가지 챌린지중 가장 까다롭다고 생각되는 점 한가지를 꼽아주신다면 어떤것이 있을까요?[matilda38]

    : 조직 간의 데이터 전송이 필요한 경우가 있는데요. 이 때 문제를 모니터링하고 문제 발생 시 커뮤니케이션/협업이 가장 어려운 것 같습니다. 문제의 원인이 내부가 아닌 외부에 있을 때 작업이 까다로워지는 것 같습니다.

     

    더 많은 질문은 데이터 플랫폼 구현 사례 (sk.com) 에서 확인하세요!

     

    후기

    정말 아는 내용이 !전! 혀!  없었다. 이걸 쓰면서도 이게 맞나? 🤔🤔 다른 분들 것도 보면서 찾고 찾고.. 찾고... 진짜 모르겠다. 마이크 음질이 좋지 않고 생소한 부분도 많아서 개인적으로 더 이해하기 어려웠다. 모르는 부분을 찾아가면서 이해하느라 좀 버거웠는데.. 😢 솔직히 생각해보면 이걸 처음 봤는데 바로 알면 공부를 왜 하고 왜 사냐 처음 봤는데 모르는 게 당연하지 이해하는데 오래 걸리는 게 당연하지..ㅋ  생각보다 많이 안 걸림...🙄ㅋ 이번 7월말고 다른 테크 세미나도 찾아봤는데 꼭 SK 개발자 분이 하시는 게 아니라 우아한 형제들, 작가님 등 다양한 분들과 다양한 개발 분야를 다루는 게 신기했다.. 이걸 쓰는 것도 오래 걸렸고 올릴까 말까 엄청 고민했다🤦‍♂️🤦‍♂️🤦‍♀️ 너무 싫어.. 아무것도 몰라서 얼레벌레 쓰는 내 포스팅이 너무 싫다고 ㅠ 대충 용어 보고 아 나 이거 알아 근데 설명은 못한다! 이건 아는 게 아니다 😫😒 이번에 확실히 느꼈다 ^^ 그리고 나같이 아무것도 모르는 사람은 1.0으로 들으면 안 된다 0.75로 들어야 한다. 틀렸으면 꼭 댓글로 알려주세요..완전 환영🎉🎉

     

     

    용어 정리

     

    EDA(Exploratory Data Analysis) : 탐색적 데이터 분석. 주어진 데이터에서 시각화 도구를 사용해 패턴을 발견하여 주어진 데이터에 대해 알아보는 것

    Data Wrangling(=Data Munging): raw data를 보다 쉽게 접근하고 분석할 수 있도록 데이터를 정리하고 통합하는 과정

    LDAP(Lightweight Directory Access Protocol) : 네트워크상에서 조직이나 개인, 파일, 디바이스 등을 찾아볼 수 있게 해주는 소프트웨어 프로토콜. OSI 계층 전체가 아닌 TCP/IP 위에서 운용되고 네트워크 부담을 줄이도록 설계됨.

    SSO(KEYCLOAK) : Single Sign-On. 여러 개의 사이트에서 한 번의 로그인으로 여러 가지 다른 사이트들을 자동적으로 접속하여 이용하는 방법.

    BackFill

     

     

    참고자료 & 출처

    PPT 자료
    데이터 레이크(Data Lake)란? 정의, 분석 및 솔루션 (redhat.com)

    꿈 많은 사람의 이야기 (tistory.com)

    Airflow란? (velog.io)

    알아두면 쓸데있는 LDAP (samsungsds.com)

     

     

    댓글

Designed by Tistory.