はじめに
以前はXplentyでのparquet形式は書き込みのみを支援しました。しかし、2024年の3月からparquet形式の読み込みの支援し始めました。 parquet形式は大量データの扱いに特化しています。前回の記事で書き出しておいたparquet形式のデータを読み込んで他に連携するパッケージを紹介します。XplentyでParquet形式への書き込み
1. parquet形式のデータの準備
parquet形式のデータを保存するFileStorage sourceで使えるSftpサーバやオブジェクトストレージ(S3, Google Cloud Storage, Azure Blob Storage)をご用意ください。大量データをparquet形式で保存しておいてください。2. parquet形式のデータの読み込み
パッケージ編集画面に入り、FileStorage sourceコンポーネントを選択してください。FileStorage sourceの詳細設定は以下の通りです:| 項目名 | 設定値 |
|---|---|
| Connector | S3 |
| Bucket | 該当コネクターのバケット名 |
| Path | /parquet-output/2020-citibike-tripdata.*.parquet ※個人の設定に合わせて変更 |
| Record delimiter | New Line |
| Record type | parquet |


3. 追加のフィールドを設定
Selectコンポーネントを選択して、以下のようなフィールドを追加してください。Auto-fillボタンでソースからフィールドをすべて追加しておき、最後のフィールドに行きます。| Expression | Alias |
|---|---|
ToString(CurrentTime(), 'yyyy-MM-dd HH:mm:ss') | imported_at_utc |
ToString(SwitchTimeZone(CurrentTime(), 'Asia/Seoul'), 'yyyy-MM-dd HH:mm:ss') | imported_at_kst |
ToString(SwitchTimeZone(CurrentTime(), 'Asia/Tokyo'), 'yyyy-MM-dd HH:mm:ss') | imported_at_jst |

4. データのJSON形式の書き出し
FileStorage destinationをパッケージに追加します。詳細設定は以下の通りです:| 項目名 | 設定値 |
|---|---|
| Connector | S3 |
| Target bucket | 該当コネクターのバケット名 |
| Target directory | json-output-test |
| Destination format | Line Delimited JSON |
| Destination action | Write all files directly and replace files in directory if they already exist |
| Merge output to single file | Checked |
| Target file names | Custom pattern |
| File name prefix | 2020-citibike-tripdata. |

Save and Validateボタンで保存し、クラスタで実行すると指定のファイル名でjson-output-testディレクトリにJSONファイルが保存されます。

※ 参考 - ファイルの読み込み時にtimeoutエラーになった場合の対応
FileStorage sourceでは、データの読み込み時にtimeoutエラーになる場合があります。ParquetやExcel形式のファイルはスキーマ構造を理解するためにファイルの展開が必要になります。ファイルにあるデータが少ない場合は問題ありませんが、データが多いと展開に想定よりも時間が掛かります。
02 Source propertiesにそのまま行ってPathを本番用のデータが多いファイル名に設定してからそのままSaveボタンをクリックして保存します。
注意点は、03 Select input fieldsには行かないことです。誤っていった場合はそのままCancelボタンで保存せずに設定画面から出て、再びFileStorage sourceを開き、02 Source propertiesでPathのファイル名を変更してください。