6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS(Amazon Web Services)Advent Calendar 2023

Day 11

Amazon S3 Express One ZoneのデータをAmazon Athenaで空間検索してQGISで可視化してみた

Last updated at Posted at 2023-12-10

img
img

この記事は、「AWS Advent Calendar 2023」の11日目の記事です。
昨日は@mirimiripcさんによるAWS タグエディタを使って使用中のすべてのリソースを発掘してみるでした。

Amazon S3 Express One ZoneのデータをAmazon Athenaで空間検索してQGISで可視化してみました :tada:

以前、S3 Standardで検証した記事を投稿しました。今回はre:Invent 2023で発表された新しいS3 Express One Zoneで検証しました。S3 Express One Zoneを利用した時のAthenaとの連携・Geospatialな空間検索・検索速度の向上などに焦点を当ててその結果を紹介します!

S3 Express One Zoneは、高パフォーマンスを重視したAmazon S3のストレージオプションです。このオプションは東京リージョンでも利用可能で、S3 Standardストレージクラスと比較して最大10倍の優れたパフォーマンスを提供する設計になっています。また、リクエスト料金はS3 Standardよりも50%削減されています。このサービスを利用するには、「ディレクトリバケット」と呼ばれる特定のバケットタイプを利用します。

事前準備

Amazon Athenaで利用するGISデータを準備します。今回は事前にQGISで4種類のサンプルデータを作成しました。

ポイント・ライン・ポリゴンのGISデータをそれぞれCSV(TSV形式)で準備しました。
img

追加で100万ポイントのGISデータをCSV(TSV形式)で準備しました。
img

今回のサンプルデータをGitHubに登録したのでぜひご利用ください。

バケット作成 & データ登録 (S3 Express One Zone)

Amazon S3 Express One Zoneでバケット作成とデータ登録します。

AWSマネジメントコンソール → S3をクリック。
img

「バケットを作成」をクリック。
img

リージョン・バケットタイプをディレクトリ・アベイラビリティーゾーン・ベース名を設定。
img

指定名称のバケットが作成されます。
img

対象のバケットを選択 → 「アップロード」をクリック。
img

登録したいファイルを選択 → 「アップロード」をクリック。
img

アップロードされたファイルを確認。
img

今回は4種類のCSV(TSV形式)を任意の名称でディレクトリバケットに保存しました。
img


これでS3 Express One Zoneのデータ登録は完了です!

クエリ保存先を設定

Amazon Athenaでクエリ保存先を設定します。

事前に任意の名称でクエリ保存先のS3バケットを準備します。
img

AWSマネジメントコンソール → Athenaをクリック。
img

「クエリエディタを詳しく確認する」をクリック。
img

「設定を表示」をクリック。
img

「管理」をクリック。
img

クエリ保存先のS3バケットを指定 → 「保存」をクリック。
img

クエリの保存先が設定される。
img


これでクエリ保存先の設定は完了です!

テーブル作成

Amazon Athenaでテーブルを作成します。

Athenaのエディタ → テーブルとビュー作成 → 「S3バケットデータ」をクリック。
img

テーブル名・データベース選択・対象のS3バケット指定・データ形式・カラム設定。プレビュー確認 → 「テーブルを作成」をクリック。

S3 Express One Zoneのバケットは、現状で一覧に表示されないので直接アドレスを入力する必要があります。アドレスの頭は「s3://」で指定します。
img

今回は4つの任意のテーブルを作成しました。対象のテーブル → 「テーブルをプレビュー」をクリック。
img

取得したレコードが表示されます。
img


これでテーブルの作成は完了です!S3 Express One Zoneでも問題なくAthenaで読み込めることが確認できました。

空間検索

最後に、Amazon AthenaでGeospatialな空間検索を実行します。

ポリゴンから重心のポイントを取得してみます。結果データをダウンロードします。

S3 Standard
キュー内の時間: 0.243秒、実行時間: 0.799秒、データ: 1.5KB

S3 Express One Zone
キュー内の時間: 0.120秒、実行時間: 0.899秒、データ: 1.5KB

SELECT "geospatial_database"."polygon_table"."name", ST_Centroid(ST_GeometryFromText("geospatial_database"."polygon_table"."wkt")) FROM "geospatial_database"."polygon_table";

img

ダウンロードしたデータをQGISで可視化すると処理結果データを表示確認できます。
img


ラインから始点のポイントを取得してみます。結果データをダウンロードします。

S3 Standard
キュー内の時間: 0.175秒、実行時間: 0.601秒、データ: 1.05KB

S3 Express One Zone
キュー内の時間: 0.119秒、実行時間: 0.948秒、データ: 1.05KB

SELECT "geospatial_database"."line_table"."name", ST_StartPoint(ST_GeometryFromText("geospatial_database"."line_table"."wkt")) FROM "geospatial_database"."line_table";

img

ダウンロードしたデータをQGISで可視化すると処理結果データを表示確認できます。
img


ポリゴン内に含まれるポイントのみを取得してみます。結果データをダウンロードします。

S3 Standard
キュー内の時間: 0.313秒、実行時間: 1.230秒、データ: 2.01KB

S3 Express One Zone
キュー内の時間: 0.073秒、実行時間: 0.993秒、データ: 2.01KB

SELECT "geospatial_database"."point_table"."name", "geospatial_database"."point_table"."wkt" FROM "geospatial_database"."point_table", "geospatial_database"."polygon_table" WHERE ST_Within(ST_GeometryFromText("geospatial_database"."point_table"."wkt"), ST_GeometryFromText("geospatial_database"."polygon_table"."wkt"));

img

ダウンロードしたデータをQGISで可視化すると処理結果データを表示確認できます。
img


100万件のポリゴン内に含まれるポイントのみを取得してみます。大量GISデータの検索でも高速にレスポンスされました。結果データをダウンロードします。

S3 Standard
キュー内の時間: 0.220秒、実行時間: 2.832秒、データ: 46.41MB

S3 Express One Zone
キュー内の時間: 0.117秒、実行時間: 2.843秒、データ: 46.41MB

SELECT "geospatial_database"."randompoint_table"."name", "geospatial_database"."randompoint_table"."wkt" FROM "geospatial_database"."randompoint_table", "geospatial_database"."polygon_table" WHERE ST_Within(ST_GeometryFromText("geospatial_database"."randompoint_table"."wkt"), ST_GeometryFromText("geospatial_database"."polygon_table"."wkt"));

img

ダウンロードしたデータをQGISで可視化すると処理結果データを表示確認できます。
img
img


Amazon Athenaを利用することでS3に登録したデータを空間検索することが可能になります!


今回の検証で、S3 Express One Zoneを利用した場合でも、Athenaとの連携やGeospatialな空間検索が実現可能であることが確認できました。

空間検索については、一部の検索で120%以上のパフォーマンス向上がありましたが、全体としては大きな速度向上は確認できませんでした。これは、S3 Express One Zoneが小さいサイズの多数のファイル処理に特化しているため、今回の検証で利用した大規模な空間検索データには適していない可能性があります。

ただ、ストレージコストの削減という点ではS3 Express One Zoneを利用することに大きな利点があると思いました!



Amazon AthenaとAmazon S3とQGISについて、他にも記事を書いています。よろしければぜひ :bow:
tags - QGIS
tags - Amazon S3
tags - Amazon Athena

やってみたシリーズ :grinning:
tags - Try



book

6
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
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?