はじめに
FileStorageソースとデスティネーションは、Xplentyでよく使われているコンポーネントです。特に多彩なレコード形式を支援しており、異なるシステム間のデータ連携には欠かせない存在でもあります。 2024年の初めからParquet形式の書き込みのみんらず、読み込みも出来るようになりました。今回の記事では、XplentyでParquetによる読み書きの設定をどう行うかを紹介したいと思います。Parquet形式の長所と短所
既に多くのお客様はご存知だと思いますが、ここでParquet形式について少しおさらいしましょう。Parquet形式の正式名称はApache Parquetと言い、大量のデータを効率よく保存しつつ、比較的に読み取り性能を提供する目的で開発されたデータ保存形式です。 主な長所は下記の通りですが、要するに大量データを扱いやすいので分析業務に向いていることとディスク容量を減らす圧縮仕様にも関わらず読み込みの速さが取り上げられます。
しかし、世の中の全てには長所と短所があるように、Parquet形式は下記の短所もあります。
このようにParquet形式で保存されたデータは、大規模データの効率的なクエリ処理や圧縮に非常に適しており、特にビッグデータや分析用途で高い性能を発揮します。この点でParquet形式は大量データの転送を専門にするXplentyとも相性が良い形式だと言えます。
XplentyでParquet形式への書き込み
Parquet形式への書き込み機能は以前から提供しており、後に説明するデモ用のパッケージは大量のCSVファイルをXplentyにてParquet形式に書き込んでみます。1. 大量CSVデータの準備
Parquet形式を試すためには大量のデータが必要です。今回はアメリカのcitibike社の運行データを使います。1年間の運行データだと圧縮しても簡単に1ギガを超えていますので、parquet形式のテストには適しており、誰もが使えるように公開されています。 その中に選んだのは2020年度のcitibike-運行データで、zipで固めた容量が751.2メガの1本の圧縮ファイルです。一見、少なめの容量に見えますが解凍するとなんと合計3.61ギガの27本の巨大CSVファイル群になります。zipの圧縮率を換算するとおよそ21%の圧縮率です。この書き込みデモではParquet形式の書き込みは、プレーンテキストのCSVに対しどれぐらいの圧縮効率を見せるかを見てみましょう。 まず、冒頭に紹介したリンクから運行データをダウンロードし、ローカルで解凍します。解凍したcsvファイル群を図のようにS3やFTPサーバにおいておきます。
2. CSVファイルの読み込み
Xplentyのパッケージ編集画面でFileStorage sourceを置き、詳細設定を下記のとおりにし、すべてのフィールドを選択すると下記の図のようにData Previewでデータの読み込みが確認出来ます。
3. 三つの取り込み日時の追加
既存のデータに追加で3つのタイムゾーン(UTC,JST,KST)のデータ取り込み日時のフィールドを追加します。まず、パッケージ編集画面上でSelectコンポーネントを追加してAuto-fillボタンでソースからフィールドをすべて追加しておきます。 次に、一番最後のフィールドに行き、右側の+をクリックすると新規フィールドが追加されますので、下記の表に基づいてAliasとExpressionをそのまま記入してください。確認のため、下記の図のようにPreviewボタンにてデータを確認します。

4. Parquet形式で書き込み
取り込み日時のフィールドを追加した後、ソートコンポーネントにてstarted_atフィールドの昇順にソートします。最後にFileStorage destinationをつなぎ、詳細設定を下記の通りにするとパッケージは完了です。
5. パッケージの実行と結果確認
パッケージを実行するとソートが掛けられた場合は18分弱で、ソート無しの場合は、7分になります。下記の図はソートを行った場合の結果を見せています。

