Matrix는 테이블 형식의 데이터를 저장하는 효율적인 방법이다.
하지만 <예1>과 같은 sparse matrix를 N*N 테이블에 넣으면 메모리 손실이 너무 많다.
<예1> 대용량 sparse matrix
이를 관계형 데이터베이스로 구성하면
T_ROW
T_Column
이렇게 구성하면 되나 데이터가 너무 큰 경우 db table로는 관리하기 힘들다. (주로 외래키 관리가 어려움)
Bigtable과 같은 Key, value 쌍으로 표현하면
이렇게 표현하면 된다.
자 이걸 어떤 곳에 사용할지 고민해 보자.
하지만 <예1>과 같은 sparse matrix를 N*N 테이블에 넣으면 메모리 손실이 너무 많다.
n1 | n2 | n3 | ... | n100,000 | |
n1 | 1 | 1 | |||
n2 | |||||
n3 | 1 | 1 | |||
... | |||||
n100,000 | 1 |
이를 관계형 데이터베이스로 구성하면
T_ROW
n1 |
n2 |
n3 |
... |
n100,000 |
T_Column
n1 | n2 | 1 |
n1 | n1000,000 | 1 |
n3 | n1 | 1 |
n3 | n2 | 1 |
n1000,000 | n3 | 1 |
이렇게 구성하면 되나 데이터가 너무 큰 경우 db table로는 관리하기 힘들다. (주로 외래키 관리가 어려움)
Bigtable과 같은 Key, value 쌍으로 표현하면
n1 | n2:1 n100,000:1 |
n2 | |
n3 | n1:1 n2:1 |
... | |
n1000,000 | n3:1 |
이렇게 표현하면 된다.
자 이걸 어떤 곳에 사용할지 고민해 보자.