【れつしこうでーたべーす】
列指向データベース とは?
💡 縦読みが得意な分析特化のデータベース
📌 このページのポイント
- データを列単位で格納するため、特定の列だけを高速に読み取れる
- SUM・AVG・COUNTなどの集計処理がリレーショナルDBより圧倒的に速い
- 同じ列のデータは似た値が多いため、高い圧縮率を実現できる
- Apache Cassandra、ClickHouse、Amazon Redshiftなどが代表的
列指向って、普通のデータベースは何指向なの?
普通のデータベースは「行指向」だよ。例えば社員データなら、田中さんの名前・年齢・部署をまとめて1行として保存する。列指向は逆で、全社員の「名前」をまとめて保存、全社員の「年齢」をまとめて保存、という具合に列ごとに固めるんだ
それって何がうれしいの?
「全社員の平均年齢を出して」と言われたとき、行指向だと全行を読まないといけない。でも列指向なら「年齢」の列だけ読めばいいから圧倒的に速いんだ。100万行あっても必要な列だけスキャンすればOKだよ
じゃあ普通の検索は遅くなるの?
圧縮率が高いって聞いたけどなぜ?
同じ列には似たようなデータが並ぶからだよ。例えば「部署」列には「営業」「開発」「人事」が繰り返し出てくるよね。これを圧縮すると元の10分の1以下になることもある。ClickHouseなんかは圧縮が特に得意で、ペタバイト級のデータもサクサク分析できるんだ
📖 おまけ:英語の意味
「Columnar Database」 = 列指向データベース
💬 Columnarは「列の」という意味で、データを列ごとにまとめて保存する方式を表しているよ