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

【AWSプロフェッショナルへの道】現役エンジニアが贈るクラウド実践ガイド - 第27回 データレイク構築の第一歩!Lake FormationとAthenaでデータ活用基盤を作る

Posted at

データレイク構築の第一歩!Lake FormationとAthenaでデータ活用基盤を作る

こんにちは!現役クラウドエンジニアの[あなたの名前/ハンドルネーム]です。

【AWSプロフェッショナルへの道】現役クラウドエンジニアが贈る実践ガイド」の第27回をお届けします。前回は、X-RayとOpenTelemetryを使ってオブザーバビリティを実現し、分散システムのデバッグスキルを磨きました。これまでは、主にアプリケーションの構築と運用を中心に学んできましたが、今回はそのアプリケーションが生み出す大量のデータをいかに活用するか、というテーマに焦点を当てます。

今回解説するのは、データレイクの構築と、そのデータ活用を支えるサービスであるAWS Lake FormationAmazon Athenaです。

「データレイクって何?」「S3にデータをただ置くだけじゃダメなの?」「SQLで簡単に分析したいけど、どうすればいいの?」といった疑問を持つかもしれません。データレイクは、様々な形式のデータを一元的に保存し、必要に応じて分析するための基盤です。本記事では、データレイクの基本から、Lake Formationを使ったデータの準備とセキュリティ設定、そしてAthenaを使ったサーバーレスなデータ分析方法までを学び、データドリブンな意思決定を支援するスキルを身につけます。


1. データレイクとは?データウェアハウスとの違い

まず、データレイクの基本概念を理解しましょう。

  • データレイク (Data Lake):

    • 様々なソースから、構造化・非構造化を問わず、あらゆる形式のデータを元の形式のままで一元的に保存する中央リポジトリです。
    • AWSでは、Amazon S3がデータレイクのストレージ層として利用されます。
    • スキーマオンリード (Schema on Read): データを読み込む際に、その都度スキーマ(データの構造)を定義します。これにより、多種多様なデータを柔軟に保存できます。
  • データウェアハウス (Data Warehouse):

    • データの分析とレポート作成に特化した中央リポジトリです。
    • データを保存する前に、ETL(抽出、変換、ロード)プロセスを通じて構造化された形式に変換する必要があります。
    • スキーマオンライト (Schema on Write): データを書き込む前に、厳密なスキーマを定義します。

使い分け:

  • データレイク: 探索的分析、機械学習、データサイエンスなど、多様な用途でデータを柔軟に活用したい場合に適しています。
  • データウェアハウス: 定型的なレポートやBI(ビジネスインテリジェンス)など、構造化されたデータに基づいた分析が必要な場合に適しています。
    AWSでは、データレイクのデータを加工して、Amazon Redshiftのようなデータウェアハウスにロードするという流れが一般的です。

2. AWS Lake Formation: データレイクの準備とセキュリティ

AWS Lake Formationは、データレイクの構築、管理、セキュリティ設定を簡素化するフルマネージドサービスです。S3に保存された膨大なデータに対して、簡単に権限を付与したり、データのカタログを作成したりできます。

2.1. Lake Formationの主要な機能

  • データの取り込み: S3バケット内のデータをスキャンして自動的にカタログを作成し、分析可能な状態にします。
  • セキュリティとアクセス制御: データベース、テーブル、カラムレベルで、どのIAMユーザー/ロールがどのデータにアクセスできるかを厳密に制御できます。これにより、データの機密性を保ちます。
  • データの変換と準備: AWS Glueの機能を使って、生データをより分析しやすい形式(Parquetなど)に変換するETLジョブを簡単に構築できます。

2.2. 実践!Lake Formationでデータレイクを準備しよう

今回は、S3に保存されたCSVファイルを、Lake Formationを使ってAthenaで分析できる状態にしてみましょう。

  1. S3バケットの準備:
    • S3にデータレイク用のバケット(例: my-data-lake-bucket-12345)を作成し、その中にsales-data.csvといったCSVファイルをアップロードしておきます。
  2. Lake Formationのデータカタログ設定:
    • AWSマネジメントコンソールで「Lake Formation」サービスに移動します。
    • 左のナビゲーションペインから「データカタログ」→「データベース」を選択し、「データベースを作成」をクリックします。
    • データベース名: sales_db と入力します。
    • 「作成」をクリック。
  3. データソースの登録とクローラーの実行:
    • Lake Formationのコンソールで、左のナビゲーションペインから「登録済みロケーション」→「登録」を選択し、先ほど作成したS3バケットを登録します。
    • 左のナビゲーションペインから「クローラー」→「クローラーを作成」を選択します。
      • クローラー名: sales_data_crawler
      • データソース: 「データソースの追加」をクリックし、S3バケット内のsales-data.csvが置かれているパスを指定します。
      • IAMロール: AWSGlueServiceRoleというIAMロールを新規作成してアタッチします。
      • 出力: ターゲットデータベースとしてsales_dbを選択します。
    • クローラーを実行すると、S3のデータをスキャンし、テーブル定義を自動で作成してくれます。
  4. 権限の付与:
    • 左のナビゲーションペインから「テーブル」を選択し、作成されたsales-dataテーブルを確認します。
    • 「アクション」→「権限を付与」を選択し、Athenaを使いたいIAMユーザー/ロールにSELECT権限を付与します。

これで、S3に保存されたデータがLake Formationのデータカタログに登録され、適切な権限が付与された状態になりました。


3. Amazon Athena: サーバーレスなデータ分析

Amazon Athenaは、サーバーレスな対話型クエリサービスです。標準SQLを使って、S3に保存されたデータを直接分析できます。

3.1. Athenaの主要な特徴

  • サーバーレス: クラスターの管理やインフラのプロビジョニングは不要です。クエリを実行した分だけ料金が発生します。
  • 標準SQL: 使い慣れたSQLを使って簡単にデータを分析できます。
  • データカタログとの連携: Lake FormationやAWS Glueのデータカタログと連携し、S3上のデータに対してテーブルのようにクエリを実行できます。

3.2. 実践!Athenaでデータをクエリしてみよう

先ほどLake Formationで準備したデータを、Athenaを使って分析してみましょう。

  1. AWSマネジメントコンソールで「Amazon Athena」サービスに移動します。

  2. クエリエディタ」に移動します。

  3. 左のナビゲーションペインで、データベースとしてsales_dbが選択されていることを確認します。

  4. 以下のSQLクエリを実行してみましょう。

    -- テーブルのスキーマを確認
    DESCRIBE sales_data;
    
    -- 最初の10件のデータを取得
    SELECT * FROM "sales_db"."sales_data" limit 10;
    
    -- 合計売上を計算
    SELECT sum("sales") FROM "sales_db"."sales_data";
    
    • DESCRIBEでスキーマが正しく認識されているかを確認し、SELECT文でクエリを実行します。
    • Athenaは、Lake Formationのデータカタログを参照して、S3上のデータを直接スキャンし、クエリ結果を返してくれます。

4. まとめ

今回は、データ活用基盤の構築に不可欠なデータレイクと、それを支えるサービスであるAWS Lake FormationAmazon Athenaについて学びました。

  • データレイクは、様々な形式のデータをS3に保存する中央リポジトリであり、柔軟なデータ活用を可能にします。
  • AWS Lake Formationは、S3に保存されたデータを自動でカタログ化し、きめ細かなアクセス制御を設定できるサービスであることを理解しました。
  • Amazon Athenaは、Lake Formationで準備されたデータを、サーバーレスな環境で標準SQLを使って直接分析できる強力なツールであることを学びました。

これらのサービスを組み合わせることで、あなたは安価でスケーラブルなデータレイクを構築し、ビジネスの成長を加速させるためのデータ活用基盤を迅速に立ち上げることができます。これは、クラウドインフラエンジニアにとって、大きな強みとなるでしょう。


この記事が皆さんのAWS学習の一助となれば幸いです。

もしこの記事が役に立ったと感じたら、ぜひ「いいね」👍をお願いします!励みになります!


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?