こんにちは。CData Software Japan リードエンジニアの杉本です。
以前、CData Sync の Amazon S3 Destination 機能について紹介したのですが、
今回は新しく追加された機能、Parquetフォーマットのサポートを紹介したいと思います!
Apache Parquet とは
Apache Parquet は Hadoop などのビッグデータ処理エコシステムでよく用いられているオープンソースのファイルフォーマットです。
CSVが行指向なファイルフォーマットに対して、Parquetは列指向のデータストレージ形式、バイナリベースのものになっています。
これによりクエリの実行、集計処理などを行う際に、非関連データを迅速にスキップすることができるため、処理時間を圧縮することができます。
また、以下のBlogでも紹介されているように、CSVとは違いバイナリベースに圧縮されたファイルフォーマットであるため、レコード数ベースのファイルサイズの圧縮効果も高いのが特徴ですね。
Parquet フォーマットのサポート
そして今回、このParquet フォーマットによるデータの出力に、CData Sync のAmazon S3 Destinationが対応しました。
今まではCSVフォーマットによるデータ出力のみだったのですが、以下のようにparquetフォーマットで出力できるようになっています。
最近ではHadoop以外の分野においても、例えば Amazon Athena が取り込むファイルフォーマットとしてもサポートされていることがあり、この出力が効力を発揮するシチュエーションは多いのではないでしょうか。
特に今回のようにストレートにS3出力が可能である場合は対象のバケットを予めAthenaのテーブルとして定義しておくだけで、そのままシームレスにクエリすることができるようになります。
使い方
設定方法は簡単です。
まず以前の記事で紹介しているように、Amazon S3 Destination の接続を構成します。
その後、「Advanced」タブに移動してFile Formatから「PARQUET」を選択します。
これで出力フォーマットが「Parquet」形式になります。
あとは任意のデータソースのコネクションとジョブを作成して、処理を実行します。
これで指定したバケットにテーブル名のフォルダが作成され、その中にparquetファイルが生成されます。
このファイルはレプリケーションを実行する度に取得結果に応じて増えるので、必要に応じて差分のみ出力するなど、調整を行ってください。
ちなみに「Insert Mode」を「SingleFile」に設定すると
テーブル名でparquetファイルが生成されます。こちらのほうがマスタデータなどのレプリケーションであれば向いているかもしれないですね。
最終的にAthenaで対象のParquetファイルを元にテーブルを作成し、以下のようにクエリすることも可能です。
おわりに
このような形で今までのAmazon S3 Destination の機能から一つ設定を変えるだけで、Parquetフォーマットが利用できるようになります。
CData Sync は30日間のトライアルもあるので、是非ためしてみてください。
ちなみに、CData では 関連製品として CData Parquet Driver というのも提供しています。Amazon S3 の Parquet ファイルを直接クエリすることもできたりするので、Athena以外のツールで分析などをしたいといった場合はこちらも併せて試してみてください。