TIL - Day 49

김혁·2023년 12월 8일
0

IMDb Non-Commercial Datasets

https://developer.imdb.com/non-commercial-datasets/

title.akas.tsv.gz

제목의 동의어(As Known As) 정보가 담겨있는 파일

  • titleId (string) - 제목ID
  • ordering (integer) - 동일한 titleId내의 순서
  • title (string) - 로컬라이징된 타이틀
  • region (string) - 해당 지역
  • language (string) - 해당 언어
  • types (array) - 해당 제목의 속성. {‘alternative’, ‘dvd’, ‘festival’, ‘tv’, ‘video’, ‘working’, ‘original’, ‘imdbDisplay’} 의 Enum 셋으로 구성
  • isOriginalTitle (boolean)

title.basics.tsv.gz

타이틀의 기본적인 정보가 담겨있는 파일

  • tconst (string) - 제목ID
  • titleType (string) - 콘텐츠의 타입/형식 (e.g movie, short, tvseries, tvepisode, video …)
  • primaryTitle (string) - 원제 보다 유명하거나 / 개봉 당시 제작사들의 홍보 자료에 쓰인 제목
  • originalTitle (string) - 원래 제목
  • isAdult (boolean)
  • startYear (YYYY) - 개봉년도, tvseries의 경우 시리즈 시작 연도
  • endYear (YYYY) - tvseries 방영 종료 연도, 다른 type의 경우 null
  • runtimeMinutes (integer)- 상영시간
  • genres ([] string) - 최대 3개까지 장르를 포함

title.crew.tsv.gz

제작자(감독, 작가) 정보가 담겨있는 파일

  • tconst (string)
  • directors ([] string) - 해당하는 타이틀의 감독(들) ID(nconsts)
  • writers ([] string) - 해당하는 타이틀의 작가(들) ID

title.episode.tsv.gz

tvepisode - tvseries 간 매핑 정보가 담겨있는 파일

  • tconst (string)
  • parentTconst (string) - 부모에 해당하는 tvseries ID
  • seasonNumber (integer) - 에피소드가 포함된 시즌 넘버
  • episodeNumber (integer) - 시리즈 내에서 해당하는 에피소드 넘버

title.principals.tsv.gz

주요한 캐스팅, 롤(배우, 연출자 등) 관련 정보

  • tconst (string)
  • ordering (integer) - 해당 titleId 내의 순서
  • nconst (string) - 이름/인물의 ID
  • category (string) - job의 범주 (eg. editor)
  • job (string) - job 타이틀(eg. film editor, co-editor)
  • characters (string) - 연기한 배역의 이름

title.ratins.tsv.gz

평점 관련 정보

  • tconst (string)
  • averageRating (float) - 유저가 매긴 평점의 가중 평균
  • numVotes (integer) - 타이틀이 받은 vote의 수

name.basics.tsv.gz

인물 관련 기본 정보

  • nonst (string) - 이름/인물의 ID
  • primaryName (string) - 해당 인물이 주로 크레딧에 기록된 이름
  • birthYear - YYYY
  • deathYear - YYYY
  • primaryProfession ([] string) - 인물의 전문 분야, 최대 3개
  • knownForTitles ([] string) - 해당 인물이 유명세를 얻은 타이틀, tconst 배열

Source

Google Cloud Platform

  • 비용을 고려해서 GCP로 결정
    Google BigQueryAws Redshift
    무료 등급쿼리 1TB/월
    스토리지 10GB/월프리티어 x 무료 시험판 o
    초기 3개월 / 300$ 크레딧 제한

Google Cloud Storage

  • AWS S3와 유사한 오브젝트 스토리지
  • Multi-region 버켓 생성 가능(일부 region에 국한)
  • BigQuery에서 GCS와 직접적인 연동 가능
  • 스탠다드 스토리지 기준 5GB / 월 무료 제공

Google BigQuery

  • AWS Redshift와 유사한 데이터 웨어하우징 서비스
    • 용도, 확장성, SQL 인터페이스 등
    • 내부 아키텍처는 상이
  • 분석 비용과 스토리지 비용은 별도로 계산됨
  • 콘솔(웹), CLI(bq), 언어별 클라이언트 라이브러리 등 다양한 인터페이스 제공

    bq load vs External table

    • GCS위의 오브젝트를 가져와 직접 테이블을 만들거나 External 테이블을 만들어 사용 가능
    • External Table
      • 데이터는 GCS에만 남으며 쿼리시 접근
      • BigQuery Storage 용량을 차지하지 않는다는 장점이 있으나 파티션 등의 일부 기능을 사용하지 못 함
    • bq load(내부 테이블)
      • GCS, Google Drive, local 파일, S3등 GCP 내/외부의 데이터를 가져와 테이블 생성

      • Bigquery 스토리지 용량을 별도로 차지해 비용이 중복 발생 할 가능성이 있으나 쿼리 시 성능 최적화에 용이하고 파티셔닝 등 고유 기능을 사용 할 수 있음

      • 작업 예시(title.ratings.tsv.gz 파일을 읽어와서 title_ratings 테이블 생성)

        bq load --skip_leading_rows=1 --source_format=CSV --null_marker=\\N --field_delimiter=tab --quote="" imdb.title_ratings gs://imdb-visualization-gcs/title.ratings.tsv.gz 'tconst:STRING,averageRating:NUMERIC,numVotes:INTEGER'

Apache Superset

profile
군도리

0개의 댓글