如何通过boto3获取AWS Glue Schema Registry的schema定义
解决方案
你调用的API不正确,get_schema 接口本身仅返回Schema的基础元数据(兼容性规则、版本号、状态等),不包含具体的Schema结构定义,要获取完整的AVSC定义内容需要调用get_schema_version接口。
实现代码示例
import boto3 import json glue_client = boto3.client('glue') # 拉取指定Schema的最新版本定义 resp = glue_client.get_schema_version( SchemaId={ 'SchemaArn': schema['SchemaArn'] }, # 若需要拉取指定版本,可替换为 SchemaVersionNumber=<版本号> LatestVersion=True ) # 解析获取完整的AVRO Schema结构 avro_schema = json.loads(resp['SchemaDefinition'])
返回结果中的SchemaDefinition字段即为你上传的.avsc文件的完整内容,解析后可直接用于CSV转AVRO的格式校验逻辑。
注意:如果调用接口返回权限拒绝错误,需要为执行代码的IAM身份添加
glue:GetSchemaVersion操作的允许权限。
流程正确性说明
你现有的实现思路没有问题:拉取S3的CSV文件、从Glue Schema Registry获取标准Schema、转换为AVRO格式并基于Schema校验,是AWS生态下处理结构化数据格式统一的常规实现方案。
内容的提问来源于stack exchange,提问作者gbeaven
相关产品推荐
相关产品推荐

