LoginSignup
0
0

More than 3 years have passed since last update.

AWS Glueを使った時にハマったこと

Last updated at Posted at 2021-04-05

はじめに

エキサイトの坂本です。
今回は初めてGlueを使うので、素直に初心者の感想を書きます。

Glueスクリプトなど保存S3バケット変更

Glueジョブ登録の際に自動でS3バケットが作成されます。1つはスクリプト保存バケットともう1つは一時的なデータ保存バケットが作成されます。これは事前にS3バケットを用意して、選択できます。

事前に作成バケット
 |- スクリプト保存フォルダ
 |- 一時的データ保存フォルダ

最後に以下のポリシー追加します

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "{Dev/Prod}ExciteHcAnalysis",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{dev/prodのaccount-id}:role/excite_glue_iam_role"
            },
            "Action": "*",
            "Resource": [
                "arn:aws:s3:::excite-{dev/prod}-analysis-glue",
                "arn:aws:s3:::excite-{dev/prod}-analysis-glue/*"
            ]
        }
    ]
}

データのサイズオーバー

事前にRedshift側にテーブル作成が前提です。
Glueジョブ実行したあと、Redshift側のデータを確認したら、なぜか既存カラムっぽいのカラムが増えていますね。これは従来のカラムにデータが入らないため、Glueが勝手に新しいカラムを追加しています。

Redshiftはsmallint型がありますが、Glueジョブの都合でINTになってしまうことで、Redshiftに書き込みの際にサイズオーバーになってしまいます。この場合はsmallintからintに変更すれば、解決です。

コード品質を保つ

Pythonで開発したら、フォーマットツールとして、isort、autopep8、autoflakeを導入したいですね。
これらを使ったら、Glueジョブの注釈ブロックには「##」(2個)から「#」(1個)に変換されます。ジョブ再登録の際にジョブ実行で特にエラーが発生しないが、ダイアグラムが生成されない。

以上です。

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