ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [data.world] 여러 데이터소스에서 데이터 가져오기
    데이터 분석/DB & SQL 2020. 4. 19. 20:28

    여러 데이터소스에 걸쳐서 데이터를 분석해야할 때가 있다. 어드민에서 다운로드 받거나, 외부 제휴사에서 메일로 전달해준 파일 등등. 출처가 다양한 데이터 들을 스프레드시트의 각 시트에 넣는다. 가끔 파일 한 개에 10만 row 만 들어가서 48만 row 의 파일이 5개의 파일로 쪼개져서 오면, 내 스프레드시트에는 다시 1개의 시트에 채워넣는 작업을 하게된다. 나의 엑셀 파일도 사실 100만 row 가 최대이다. 데이터소스가 많고, 데이터 규모가 커지면 엑셀의 신도 엑셀로 데이터 작업을 수행하기 힘들어진다. 

    특히 맥 환경에서 MS 엑셀은 심각하다. 맥에서 엑셀을 쓰면 몇 만 row 되지도 않는데도 하단에 로딩중 프로그레스 바를 볼 수 있다. 더 심해지면 프로그레스 바가 멈추고 한참 후에 엑셀에게 시킨 작업이 취소되거나 소프트웨어가 강제종료는 현상을 볼 수 있다.  구글 스프레드 시트는 엑셀의 고급 기능들을 모두 사용할 수는 없다. (또는 내가 다시 배워야한다.)

    이런저런 이유로 나는 DB 와 SQL 에 관심을 갖게 되었다.

    이번 글에서는 data.world 의 여러 데이터소스에서 데이터를 불러오는 기능을 정리해보았다.


    data.world 에서는 데이터를 다양한 곳에서 불러올 수 있다. 내가 작업하기 위한 프로젝트 폴더를 하나 생성했다고 생각하면 된다. 이런 팝업창이 뜬다. 한개씩 살펴보자. 아. 들어가기에 앞서, data.world 는 무료버전에서 한 프로젝트에서 Upload 파일과 Sync 파일 합쳐 100MB 까지 지원한다. 대용량이라고 하기는 어렵지만 데이터 다루는 연습을 하는 데에는 충분할 것으로 보인다. ;)

    - 경로: Project Directory 에서 [Add > Project File]

     

     

     

     

    1. upload from computer

    내 컴퓨터에서 파일을 업로드 한다. 일반적으로 .xlsx 나 .csv 를 업로드 한다. 파일 업로드 대화창이 나오고 파일을 선택해서 업로드 하면 다음과 같이 보인다.

    a. Project Directory 의 project files 하위에 업로드한 파일을 확인할 수 있다.
    b. 조회창에서 업로드한 파일을 미리보기할 수 있다.
    c. 파일의 정보와 data schema description 을 확인 및 수정할 수 있다.

    만약 이 프로젝트가 공유가 필요한 프로젝트라면 파일 정보와 스키마 설명을 적어주는 것이 좋다. 이 데이터의 소유자인 나는 데이터에 대한 이해도가 높겠지만, 이 데이터를 처음 보는 누군가는 이해도가 낮을 수 있기 때문이다. 

     

    2. link data.world dataset

    외부 데이터소스에서 데이터를 연결해서 가져올 수도 있다. 엑셀에서도 연결된 콘텐츠 사용 이라는 팝업을 본적이 있을 것이다. 그거랑 원리가 똑같다. 외부 프로젝트 또는 디렉토리에서 데이터를 참조해온다. 물리적으로는 외부 서버에 데이터가 있지만, 이 데이터를 내 프로젝트에서 원활히 활용할 수 있도록 연결하고 내 프로젝트 창에서 보여주고 있다.

    data.world 에 공유된 외부 데이터셋을 조회해서 가져오자. 

    공유된 dataset 연결하기

     

    결과는 다음과 같이 보인다.

    프로젝트에는 .csv 와 .docs 뿐 아니라 .ppt, .json 등 프로젝트 데이터 이해를 돕기위한 다양한 자료를 업로드할 수 있다. 또한 데이터 뿐 아니라 쿼리 파일도 함께 확인할 수 있다.

    나는 지금 내 프로젝트에서 이 프로젝트를 연결만 했기 때문에 파일을 조회만 가능할 뿐, 수정하거나 추가할 수는 없다. 만약 이 프로젝트에 직접 기여를 하고 싶을 경우 이 프로젝트를 소유하거나 추가/수정 권한이 있어야 한다. 이 프로젝트에서 파일이 변경되면 이 프로젝트를 불러온 내 프로젝트의 결과에도 영향을 끼친다. 

     

    3. sync from url

    Http 나 Ftp 등 URL (Uniform Resource Locator) 를 통해 파일을 연결한다. 마치 웹에서 호출하듯이 Authentication Heards/POST body 등을 추가로 입력할 수 있다. Public 리소스가 아닐 경우 Authentication 이 필수인데, 이런 부분도 GUI 로 구현되어 있다. 

    URL 입력

    네트워크를 건너온 파일이라 대부분 번들링 및 압축되어 있을 것이다. Extract 추출 (압축해제) 해준다. 압축해제 하는 시점에 데이터를 Sync 동기화할 수 있다. 수동 Sync 인 것을 보아 압축해제 시점 기준의 스냅샷 값을 가져오며, 이후에 원 프로젝트 파일에 추가/수정되어도 이것이 자동으로 반영되지는 않는다.

    zip 파일 연결, 압축해제 필요

    [Extract] 클릭 하면 URL 을 통해 파일이 연결되었다.

    URL 파일 연결

     


    이번 글에서는 다양한 경로를 통해서 데이터 소스를 가져와 보았다.

    파이썬에서 pandas 로 데이터를 가져오든 웹에서 불러오든 원리는 동일하다. data.world 가 GUI 환경을 잘 만들어줘서 내 프로젝트에 여러 데이터소스를 연결하는 과정을 찬찬히 살펴볼 수 있었다. 

     

     

    댓글

Designed by Tistory.