ORCとは?
おーあーるしー
Hadoopエコシステム向けに設計された列指向の高効率バイナリファイルフォーマットで、大規模データの圧縮・分析処理を高速化します。
ORC(Optimized Row Columnar)は、Hadoop上での大規模データ処理を高速化するために設計された列指向(カラムナー)バイナリファイルフォーマットです。2013年にApache HiveプロジェクトでRCFileの後継として開発され、Apache Software Foundationのトップレベルプロジェクトとして管理されています。
ORCの名称が示すとおり、データを行単位ではなく列(カラム)単位で格納します。分析クエリでは多くの場合、全列ではなく特定の列だけを参照するため、列指向ストレージは不要な列の読み込みをスキップでき、I/Oコストを大幅に削減できます。
ORCの主な特長は以下のとおりです。
- ZLIB・Snappy・LZO・ZSTDなど複数の圧縮アルゴリズムに対応し、高い圧縮率を実現
- ストライプ(大きなデータブロック)ごとに統計情報(最大値・最小値・行数など)を保持し、述語プッシュダウンで不要なストライプの読み飛ばしが可能
- ACID(トランザクション)対応をApache Hiveと組み合わせて実現
- スキーマ(型情報)を埋め込むためスキーマ進化にも対応
Apache Hive・Spark・Prestoなどとの相性が良く、データレイクやデータウェアハウスの基盤フォーマットとして広く採用されています。同じく列指向のApache Parquetと並んで、ビッグデータ処理の現場で二大フォーマットのひとつに数えられます。
使い方・例文
Hiveでアクセスログを格納する際にORCフォーマットを指定することで、テキスト形式と比較してストレージ使用量を大幅に削減しつつ、特定列を集計するクエリを数倍高速に実行できます。
この用語をシェア
最終更新: