서울대학교 데이터사이언스대학원 정형수 교수님의 "빅데이터 및 지식 관리 시스템 2" 강의를 필기한 내용입니다.

완성되지 않은 강의록

  • 사진이랑 보충 설명을 더 넣을 예정입니다.

Data Formats

  • 정형 데이터와 비정형 데이터 등 데이터의 포맷간 차이에 의해 처리하는 방법이 달라질 수 있고, 따라서 이런 차이를 줄일 수 있는 방법이 연구되고 있다.
  • OLAP 과 OLTP 의 접근 방법의 차이는:
    • OLAP query 를 처리할 때는 sequential scan 을 하면서, 원하는 column value 를 찾고 그 value 가 속한 row 의 다른 column value 를 stitch (materialize) 할 필요가 있다.
      • 한 column 만 보는 경우는 드물기 때문.
    • OLTP 는 index 를 사용하여 row 전체에 접근한다.
  • Format, encoding 의 최종 목적은 query processing 에 필요한 데이터만 빠르게 IO 하는 것이다
    • Compression: 필요한 데이터의 사이즈를 줄여 IO amount 를 줄임.
      • 요즘은 compression 을 활용해서 logical denormalization 하는 방법도 나온다고 한다.
        • 즉, denormalization 을 해서 big table 을 만들긴 하되, DICT 와 같은 encoding 으로 실제 사이즈는 작게 가져가는 것.
    • Data skipping: 안읽어도 되는건 읽지 말자.
    • Data parallelism / Vectorization: 읽은 것은 빠르게 처리하자.

Storage Models

  • N-ary Storage Model (NSM): row-oriented format
    • NSM 은 당연히 필요없는 column 까지 읽히기 때문에 OLAP 에서 read amp 가 안좋다.
  • Decomposition Storage Model (DSM): columnar format
    • DSM 에서는 각 column 당 하나의 file 을 사용한다.
    • 근데 그렇다고 하나의 file 에 다 넣으면 header 와 nullmap 이 아주 커지기 때문에 적정 크기를 configuration 으로 노출시킨다.
    • Column value 를 stitch 하기 위해서는 이 column value 가 어떤 row 에 속해있는지를 알아야 하고, 그 다음 해당 column 에 대한 file 을 읽어 stitch 를 해야 한다.
      • 어떤 row 에 속해있는지를 나타내기 위해 row 순서를 바꾸지 않거나, 아니면 row id 를 embedding 한다.
      • 당연히 row 순서를 바꾸지 않았을 때 point lookup 을 하기 위해서는 데이터 사이즈를 fixed-length 로 해야 된다.
  • Partition Attribute Across (PAX): row-column hybrid format
    • PAX 의 장점들은:
      • 일단 column stitch 할 때 같은 파일을 보면 되고
      • Row group 들로 구분이 되어 있기 때문에 OLTP 에 대해서도 그렇게 성능이 떨어지지는 않으며
      • Row group 안에서는 columnar 로 되어 있기 때문에 OLAP 에 대해서도 sequential read 를 할 수 있어 성능이 나쁘지 않다

Compression

옮겨짐:

Nested Schema

내용 옮겨짐: