Tableau PrepからAmazon S3に対してデータをParquet形式で出力してみた
カスタマーサクセスマネージャー見習いの玉井です。
TableauのVer2024.2がリリースされておりますが、このバージョンの新機能に「Amazon S3への出力」というものがあります。
機能自体は読んで字の如く、Tableau Prepのフローの出力先にS3が追加されましたよ、というめちゃくちゃシンプルなものです。
ただ、クラウド上にデータ分析基盤を構築するのが当たり前なこのご時世、S3のようなクラウドストレージを活用するのはもはや避けられないところまで来ており、そこにTableau Prepで処理したデータを直接配置できるようになったのは、ものすごく大きいです。
そして、この機能のもう一つの特徴が、出力時のファイル形式としてParquet形式を選べる(もう一つはcsv)という点です。Tableauユーザーの方では馴染みのない方もいらっしゃるかもしれませんが、Parquetはオープンソースのデータファイル形式で、列志向・高圧縮・大容量でも高速…という特徴があり、データ分析には持ってこいな形式なのです。
Tableau Prepで処理したデータを、Parquet形式でS3に配置できるというのは、データ分析基盤全体にとって、大きなメリットをもたらすと思います。
そんなわけで、この記事では、Tableau Prep 2024.2で実際にS3にParquet形式でデータを出力してみようと思います。
Parquet形式の詳細について以下をどうぞ。
やってみた
とりあえず出力してみる
このためだけにイチからフローを作るのはめんどいので、サンプルで付与されているフローを使用します。
大体のフローは一番右に出力する部分があると思いますので、そこを選択し、「出力の保存先」を「データベースとクラウドストレージ」にします。
出力先の設定画面が出てきますので、「接続の追加」から「Amazon S3(出力のみ)」を選びます。
すると、S3側(AWS側)のアクセス情報を求められるので、入力します。ちなみに、出力先のバケットは予め用意しておく必要があります(出力時についてにバケット新規作成…みたいなことはできない)。
この時点でほとんどの必要項目は揃いましたが、最後に「S3 URI」を入れる必要があります。
ファイル名まで入力することになりますが、ここで一気に拡張子まで入力する必要があります。そう、ここの拡張子入力をもって、csvかParquetかを選ぶことになります。ファイル形式を別途設定する項目は無いのでご注意ください。
上記設定完了後、実際にフローを実行してみたところ、以下の通り正常にファイルがParquet形式で出力されていました。
S3に出力したParquetファイルをSnowflakeで活用する
S3にファイル出力して終わりだと、いくらなんでもさすがに味気無い…。せっかくなので、S3に出力したParquetファイルを、Snowflakeから参照してみたいと思います。
Snowflakeは、外部ステージと言う機能を利用することで、S3内に存在するファイルに対して、Snowflakeから直接読み書きする(クエリを実行する)ことができます(ちなみに、直接参照ではなく、Snowflake内部にロードすることもできます)。
もちろんParquet形式のファイルも対象なので、(外部ステージの設定が済んでいたら)Tableau PrepからS3に直接ファイルを出力→即時にSnowflakeで分析することができます。
手順詳細は上記ドキュメントにありますが、以下のようにちゃんと設定が済んでいると…
SnowflakeからS3内のParquetファイルに直接クエリすることができます。
おわりに
今回はSnowflakeを利用例に挙げましたが、データ分析という領域において、S3に配置したファイルの活用方法は多岐にわたります。
最近でいえばApache IcebergなどのOpen Table Formatも話題になってきており、Amazon Athena+S3の組み合わせで、Apache Icebergを用いた簡易的なレイクハウスアーキテクチャで運用をされているところもあるかと思います。
Athenaは以前からTableauは対応していますし、S3に対してもTableau Prepでファイルを出力できるようになったので、こういった最新のアーキテクチャにもTableauを組み込むことができるようになったという意味で、今回の新機能「S3への出力」は、とても存在の大きい機能ではないかと思っています。
Discussion