7
8

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でデータ分析基盤構築をサクッと始めてみる(1.データカタログ作成編(行指向))

Last updated at Posted at 2023-08-10

はじめに

今回のシリーズはAWSの各種サービスを使ったデータ分析基盤構築です。
蓄積された膨大なデータをビジネスに利活用したいですよね?
例えば、データサイエンティストが分析・ML(機械学習)などで活用すると思います。
それには、分析パフォーマンスを上げるためにビッグデータを行指向(CSV、RDB)から列指向(DWH、データマート)にロードし直し、その前にデータを整えるETLというデータの抽出・加工・変換を行ったりと、分析しやすい形に整えておきます。
(これだけで気が遠くなりウンザリ → はい、挫折、、、)
今回はそんな貴方のために、サーバーレス(サーバー気にしなくていい)のAWS GlueというETLツールを使って、その手間を簡略化し、さらにS3に蓄積された膨大なデータを直接見れてしまうAmazon Athenaを使ってデータ分析基盤をサクッと作る方法がお伝えできればと思います。

今回のシリーズで利用する主なAWSサービスは、
S3、Glue、Athena、Lambda

そして、システム構成をイメージすると、こんな感じでしょうか
system-fig3.png

シリーズ目次

  1. AWSでデータ分析基盤構築をサクッと始めてみる(1.データカタログ作成編(行指向))
  2. AWSでデータ分析基盤構築をサクッと始めてみる(2.行指向から列指向に変換編)
  3. AWSでデータ分析基盤構築をサクッと始めてみる(3.データカタログ作成編(列指向))
  4. AWSでデータ分析基盤構築をサクッと始めてみる(4.Athenaでアドホック分析編)
  5. AWSでデータ分析基盤構築をサクッと始めてみる(5.Lambdaで分析自動化編)

1. データカタログ作成編(行指向)

本章では、S3に蓄積された行指向データ(CSV形式)ファイルから一旦データカタログを作成しようと思ってます。
それでは、Glueのcrawlerを使って、データカタログ作成にチャレンジしましょう!

(1)行指向(CSV)データの準備
  今回は下記のツールを使ってデータを作成
  https://tm-webtools.com/Tools/TestData
(2)S3に保管
  作成したCSVファイルをS3のバケットに保管
  保管方法はAWS CLIでもAWSコンソールからでも可
  ※容量がもったいないので、csvファイルを圧縮してcsv.gzファイルに変換
   7-Zipツール もしくはターミナルでgzipコマンドで作成
  ex.)
  ・バケット名:test_bucket
  ・フォルダ名:s3://test_bucket/input/
(3)データカタログの作成(行指向)
  ここでは、Glue crawlerを使ってCSV形式ファイルを取り込んだデータカタログを作成していきますので、まずはGlue画面を開いてください。
  ①まずはDatabaseを作成します
   左のメニューから"Database"をクリックしてください。
   Nameにデータベース名を入力します。
    ex.) データベース名:testdb
Glue_Crawler4.png
  ②次に、Crawlerを作成します
   左のメニューから"Crawlers"をクリックしてください。
Glue_Crawler3.png
  ③[Step1] データソース元を指定してください
   ”Add a data source”ボタンを押してデータソースを追加
   ”S3 path”に上記(2)で保管したcsv.gzファイルのフォルダ(S3 URL)を指定
Glue_Crawler1.png
  ④[Step2] 次に進んで、IAMロールを作成してください
   ”Create new IAM role”ボタンを押してIAMロールを追加。
  ⑤[Step3] 次に進んで、上記で作成したデータベースを指定し、テーブル名をつけてください
   ex.) テーブル名:input_table
   ・Crawler scheduleは”On demand”を選択
  ⑥[Step4] 次に進んで、最後に入力内容を確認し、Crawlerを完成させます
   ”Create crawler”ボタンを押す
   これで、クローラーの完成です!
  ⑦クローラーを実行します(ドキドキ)
   作成したクローラーを画面の”Run crawler”ボタンを押す
   ※ここで、クローラーによるデータカタログの作成が始まります
  ⑧データカタログの確認をします
   実行完了後、上記で作成したデータベースを開きデータカタログが作成されていることを確認
  ※ハマりポイント:
   恐らく「403 error」とかでデータカタログテーブルが作成されない、、、
   対策は以下:
   ・クローラー画面からアタッチしたIAMロールを選択し、ポリシーを編集
   ・ポリシーの"Resource"にデータソース元(csv.gzファイルが保管されているところ)のS3 URL(csvフォルダ)を追加

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::test_bucket/input/*",
                "arn:aws:s3:::test_bucket/output/*"
            ]
        }
    ]

これで、行指向のデータカタログの完成です!

本章はこれで終わりです。どうもお疲れ様でした。
引き続き、次の章にチャレンジしてください!

AWSでデータ分析基盤構築をサクッと始めてみる(2.行指向から列指向に変換編)

参考文献

7
8
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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?