LoginSignup
0
0

More than 1 year has passed since last update.

Glue StudioでTPC-DSデータセットをインポートする

Posted at

はじめに

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 connectionsGo to AWS Marketplaceを選択します。

スクリーンショット 2023-04-19 11.12.34.png

次に検索窓に tpc-ds と入力するとTPC-DSコネクタが表示されるので、それを選択します。その後は画面に従って進むことでTPC-DSコネクタのインストールができます。

スクリーンショット 2023-04-19 11.12.51.png

Glue Studioでのジョブ作成

インストールしたTPC-DSコネクタはGlue StudioのVisual画面等から利用可能になります。ここではGlue StudioでTPC-DSコネクタから取得したデータセットをS3に出力するジョブを作成します。

  • まずは、Glue StudioのVisual画面で DataTPC-DS connectorを選択します。

スクリーンショット 2023-04-19 11.15.24.png

  • TPC-DS connectorの Data source properties - ConnectorConnection optionsには以下の項目を設定します。
Key Value 内容
scale 1以上の数値 作成するデータの規模。詳細は参考に記載のTPC-DSの仕様についてを参照ください。
table TPC-DSのテーブル名 インポートするTPC-DSで定義されているテーブル名を指定。テーブルの詳細は参考に記載のTPC-DSの仕様についてを参照ください。
numPartitions 1以上の数値 Sparkのパーティション数。

スクリーンショット 2023-04-19 11.34.29.png

  • TPC-DS connectorの設定が終わったら、TargetとしてAmazon S3を選択して、データの出力パス等の設定をします。
  • Job detailsの設定をした後、ジョブを実行すると以下のようにS3にデータが出力されます。TPC-DS connectorで設定した numPartitionsはSparkのパーティション数で内部の並列処理の単位になりますが、特にデータ加工等せずTPC-DS connectorで取得したデータをそのままS3に出力する場合は、numPartitionsで指定した数と同じオブジェクトがS3に出力されます。(下の画像だと numPartitions = 100で指定)

スクリーンショット 2023-04-21 8.04.33.png

まとめ

このように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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0