web-dev-qa-db-ja.com

AWS Glueクローラーがテーブルを作成しない

AWS Glueで作成したクローラーがありますが、正常に完了した後、データカタログにテーブルを作成しません。

クローラーの実行には約20秒かかり、ログには正常に完了したことが示されます。 CloudWatchログには以下が表示されます。

  • ベンチマーク:クローラーのクロール開始
  • ベンチマーク:分類完了、DBへの結果の書き込み
  • ベンチマーク:カタログへの書き込みが終了しました
  • ベンチマーク:クローラーは実行を終了し、準備完了状態です

データカタログ内のテーブルが作成されない理由がわかりません。 AWS Docsはデバッグにあまり役立ちません。

16
Vince

クローラーに関連付けられているIAMロールを確認してください。ほとんどの場合、正しい許可がありません。

クローラーを作成するときに、IAMロール(デフォルト設定)を作成することを選択した場合、指定したS3オブジェクトのみのポリシーが作成されます。後でクローラーを編集して、S3パスのみを変更する場合。クローラーに関連付けられたロールには、新しいS3パスへのアクセス許可がありません。

13
Ray

ターゲットデータベースに既存のテーブルがある場合、クローラーは、新しいファイルを作成するのではなく、既存のテーブルに新しいファイルを関連付けることがあります。

これは、Glueがパーティション化と解釈するデータまたはフォルダー構造に類似性がある場合に発生します。

また、時々、データベースのテーブルリストを更新して、新しいデータベースを表示する必要がありました。

1
Kris Bravo

S3バケットの一部のファイルを除外してみてください。除外されたファイルはログに表示されます。クローラーで何が起こっているかをデバッグするのに役立ちます。

0
rileyss

接着剤がs3にアクセスし、テーブルを作成できるようにする私のサンプルロールJSONです。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "ec2:DeleteTags",
            "ec2:CreateTags"
        ],
        "Resource": [
            "arn:aws:ec2:*:*:instance/*",
            "arn:aws:ec2:*:*:security-group/*",
            "arn:aws:ec2:*:*:network-interface/*"
        ],
        "Condition": {
            "ForAllValues:StringEquals": {
                "aws:TagKeys": "aws-glue-service-resource"
            }
        }
    },
    {
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": [
            "iam:GetRole",
            "cloudwatch:PutMetricData",
            "ec2:DeleteNetworkInterface",
            "s3:ListBucket",
            "s3:GetBucketAcl",
            "logs:PutLogEvents",
            "ec2:DescribeVpcAttribute",
            "glue:*",
            "ec2:DescribeSecurityGroups",
            "ec2:CreateNetworkInterface",
            "s3:GetObject",
            "s3:PutObject",
            "logs:CreateLogStream",
            "s3:ListAllMyBuckets",
            "ec2:DescribeNetworkInterfaces",
            "logs:AssociateKmsKey",
            "ec2:DescribeVpcEndpoints",
            "iam:ListRolePolicies",
            "s3:DeleteObject",
            "ec2:DescribeSubnets",
            "iam:GetRolePolicy",
            "s3:GetBucketLocation",
            "ec2:DescribeRouteTables"
        ],
        "Resource": "*"
    },
    {
        "Sid": "VisualEditor2",
        "Effect": "Allow",
        "Action": "s3:CreateBucket",
        "Resource": "arn:aws:s3:::aws-glue-*"
    },
    {
        "Sid": "VisualEditor3",
        "Effect": "Allow",
        "Action": "logs:CreateLogGroup",
        "Resource": "*"
    }
]

}

0
Dheeraj