AWS Athena连接DynamoDB:如何自动仅爬取DbProd后缀生产表
仅爬取以DbProd为后缀的DynamoDB表的实现方案
方案一:修改Lambda连接器的过滤逻辑
AWS默认的Lambda连接器会拉取所有DynamoDB表,你可以直接修改连接器代码,添加表名过滤逻辑:
- 找到连接器里调用
list_tablesAPI获取表列表的代码段 - 在拿到表名列表后,添加过滤规则,只保留以
DbProd结尾的表,示例代码如下:
import boto3 dynamodb = boto3.client('dynamodb') all_tables = dynamodb.list_tables()['TableNames'] # 过滤出后缀为DbProd的表 target_tables = [table for table in all_tables if table.endswith('DbProd')]
- 修改完成后重新部署Lambda函数,之后Athena通过这个连接器就只会看到符合条件的生产表。
方案二:用Glue爬虫的通配符自动匹配表
Glue爬虫支持通配符匹配表名,完全不需要手动逐个添加:
- 打开Glue控制台,新建或编辑爬虫
- 数据源选择DynamoDB,在「包含表」的设置里填入
*DbProd - 启动爬虫后,它会自动扫描所有以
DbProd结尾的DynamoDB表,同步到Glue数据目录,Athena直接就能查询这些表。
方案三:自定义Glue分类器(进阶)
如果后续需要扩展更复杂的筛选规则,可以用自定义分类器:
- 创建一个自定义分类器,设置规则仅识别以
DbProd结尾的表 - 将这个分类器关联到爬虫配置中,爬虫就只会同步符合规则的表
- 这种方式灵活性更高,适合后续需要调整筛选规则的场景。
内容的提问来源于stack exchange,提问作者Sebastian Chavarry Gutierrez
相关产品推荐
相关产品推荐

