こんにちは。コネクトムの児島です。
弊社では広告配信のログなどの分析のために Apache Spark などのOSSのビッグデータ分析基盤 を活用しています。
実運用では使っていませんが、列指向フォーマットの CarbonData を調査したので紹介します。
CarbonData って何?
CarbonData はビッグデータ向けの列指向フォーマットです。
公式サイトはこちら
元は2013年から Huawei によって開発が開始されて、2015年にApacheに寄贈され、2017年4月に Apache のトップレベルプロジェクトに昇格しました。*1
他のオープンソースのファイルフォーマットよりも10倍速いと言ってます。
他のフォーマットとの違いは?
同じような列指向フォーマットといえば、同じApacheのプロジェクトだけでも
がありますが、CarbonDataは インデックスを持っているのが最大の特徴です。 インデックスを持っているので、ファイルの中の必要なデータだけにすばやくアクセスできます。
他のすごいところ
UPDATEとDELETEがサポートされてます。
UPDATEとDELETEの際は、既存のファイルを書き換えずに、新規の差分ファイルを作成することで実現しています。
差分のファイルを統合してキレイなファイルにする命令もあります。
(ALTER TABLE テーブル名 COMPACT 'MINOR/MAJOR/CUSTOM'
)
どうやったら使えるの?
現在(バージョン 1.4.0)のところ
- Spark
- Hive
- Presto
から利用できますが、デフォルトで組み込まれているわけではないので、自分でCarbonDataのJARを読み込んであげる必要があります。
CarbonDataが普及していくためには、これらのプロダクトにデフォルトで組み込まれる必要がありそうです。
次回は
実際に動作させてみて、どのようなファイルができるか見ていきたいと思います。