概要
本記事では、S3 Table Bucket の準備や名前空間の作成、Icebergテーブルの作成、操作について説明します。
- S3 Table Bucket を作成
- 名前空間と Iceberg テーブルを作成
- Lake Formation の設定
- INSERT クエリでデータを追加
- テストクエリ
- テーブルと S3 Table Bucket の削除
この基本的な使い方を順を追って解説します。
1. S3 Table Bucket を作成
Iceberg テーブルで使用する S3 Table Bucket は、S3 側で事前に作成する必要があります。
作成方法:
2. 名前空間を作成
3. Lake Formation の設定
Athena で Iceberg テーブルを操作するには、最初に Lake Formation 側で必要な権限を設定しておく必要があります。これを設定しないと、データベースやテーブルの作成・操作時にエラーが発生します。ここではルートユーザーで設定せずに、IAMユーザーとして設定しましょう。
手順:
Lake Formation コンソール > Databases >に移動します。
データベースを開き、「Grant」を選択します。
対象の IAM ユーザーまたはロールに任意の権限を付与します。
3. Iceberg テーブルを作成
CREATE TABLE `my_iceberg_table`.daily_sales (
sale_date date,
product_category string,
sales_amount double
)
PARTITIONED BY (month(sale_date))
TBLPROPERTIES ('table_type' = 'iceberg');
4. データの追加(INSERT)
INSERT INTO my_iceberg_table.daily_sales
VALUES
(DATE '2024-12-01', '家電', 1000.50),
(DATE '2024-12-02', '食料品', 300.00),
(DATE '2025-01-05', '衣料品', 250.25);
5. お試しクエリ
SELECT
DATE_TRUNC('month', sale_date) AS sale_month,
SUM(sales_amount) AS total_sales
FROM my_iceberg_table.daily_sales
GROUP BY 1
ORDER BY 1;
6. テーブルの削除
Iceberg テーブルの削除
--IAMロールで
DROP TABLE IF EXISTS my_iceberg_table.daily_sales;
おわりに
- Iceberg + Athena の基本的な流れを掴むには、まず S3 側の準備(S3 Table Bucket)と権限設定を理解することが重要
- 特に Lake Formation との連携は、想定外の権限制限によりエラーの原因となるため注意
- 小規模な検証から始めて、段階的に構築していくのがおすすめです!