创建 glue database

建好的库

上传文件

#文件内容
1,lili,12
2,susam,31
3,david,28

手动建表 创建表 定义表元数据 通过 Athena 查询表数据

爬网程序建表 准备数据,到新目录 添加爬网程序 配置数据源 配置调度 审查配置 爬网程序创建成功 执行爬网程序

问题处理

但是我们用 Athena 并没有查询到相关表,通过 view run details,排查到相关权限不足

[b08f44f6-0ebb-45ad-a7b6-de40e0f5d0a4] ERROR : Not all read errors will be logged. com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ZNBVDKGA3RDD1BX8; S3 Extended Request ID: /D7xWVzGPZqFQtTxIimmWwJmlszKvUfNa0/IuV+DODaYy1ItbL/mk3HFmRFiQTKzcytI4B47dxlu7u+5DqQ+jA==; Proxy: null), S3 Extended Request ID: /D7xWVzGPZqFQtTxIimmWwJmlszKvUfNa0/IuV+DODaYy1ItbL/mk3HFmRFiQTKzcytI4B47dxlu7u+5DqQ+jA==

IAM 权限不够,创建新的 IAM 角色,参考连接

  1. 创建 s3 目录读写权限策略
  2. 添加 ListBucket,PutObject,GetObject,DeleteObject,并指定 arn 路径:arn:aws:s3:::gavin-data-demo/database/*
  3. 修改策略名,检查权限
  4. 创建角色,添加该策略
  5. 修改爬网程序,指定新建的角色

重新执行成功 Athena 查询成功

glue etl 把 csv 转为 json

  1. 创建 glue etl 作业,指定 source 为 glue data catalog,target 为 S3
  2. 配置 source
  3. 自动配置映射转换
  4. 配置 target
  5. 配置 Job Details
  6. 运行任务,查看详情
  7. 查看 S3 目录及下载后文件内容,同时设置了建表,所以也会新建 gavin_demo_json 这张表
  8. 通过 crawler 建表