はじめに
TPCはデータベースの性能ベンチマークに使われるデータセットやクエリを定義しているものになります。特にTPC-DSはビッグデータ関連のベンチマークで使われることがあり、GlueやAthenaの性能を測定するのに有用です。
Glueにはコネクタと呼ばれる、外部のデータソースに接続する機能がありAWS Marketplaceで様々なコネクタが提供されています。
AWS MarketplaceにTPC-DSデータセットをインポートするためのコネクタも用意されており、こちらとGlue Studioを使用することでノンコーディングでAWS環境にTPC-DSデータセットを作成することができます。
使い方
TPC-DSコネクタのインストール
まずは、AWS MarketplaceからTPC-DSコネクタを取得する必要があります。
マネジメントコンソールでGlueの画面に遷移し、 Data connections
→ Go to AWS Marketplace
を選択します。
次に検索窓に tpc-ds
と入力するとTPC-DSコネクタが表示されるので、それを選択します。その後は画面に従って進むことでTPC-DSコネクタのインストールができます。
Glue Studioでのジョブ作成
インストールしたTPC-DSコネクタはGlue StudioのVisual画面等から利用可能になります。ここではGlue StudioでTPC-DSコネクタから取得したデータセットをS3に出力するジョブを作成します。
- まずは、Glue StudioのVisual画面で
Data
→TPC-DS connector
を選択します。
- TPC-DS connectorの
Data source properties - Connector
のConnection options
には以下の項目を設定します。
Key | Value | 内容 |
---|---|---|
scale | 1以上の数値 | 作成するデータの規模。詳細は参考に記載のTPC-DSの仕様についてを参照ください。 |
table | TPC-DSのテーブル名 | インポートするTPC-DSで定義されているテーブル名を指定。テーブルの詳細は参考に記載のTPC-DSの仕様についてを参照ください。 |
numPartitions | 1以上の数値 | Sparkのパーティション数。 |
- TPC-DS connectorの設定が終わったら、TargetとしてAmazon S3を選択して、データの出力パス等の設定をします。
-
Job details
の設定をした後、ジョブを実行すると以下のようにS3にデータが出力されます。TPC-DS connectorで設定したnumPartitions
はSparkのパーティション数で内部の並列処理の単位になりますが、特にデータ加工等せずTPC-DS connectorで取得したデータをそのままS3に出力する場合は、numPartitions
で指定した数と同じオブジェクトがS3に出力されます。(下の画像だとnumPartitions
= 100で指定)
まとめ
このようにTPC-DS connectorおよびGlue Studioを使用することでノンコーディングでS3にTPC-DSのデータセットをインポートすることができました。
また、AWS Marketplaceにはその他にも様々なコネクタが用意されているので、今回TPC-DSデータセットをインポートしたのと同じような手順で様々なデータをGlueに取り込むことができます。
参考
TPC-DSの仕様について: https://www.tpc.org/tpc_documents_current_versions/pdf/tpc-ds_v2.7.0.pdf