You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS Glue中通过CloudFormation建表时理解SerDe相关内容

关于AWS CloudFormation中Glue表SerDe配置的清晰说明

核心概念

SerDe是Serializer/Deserializer的缩写,是Glue用来实现「数据格式与表结构映射」的核心组件——写入数据时把表结构序列化成存储格式,读取数据时把存储格式反序列化成表结构。

CloudFormation中Glue表的SerDe关键配置

在AWS::Glue::Table资源的StorageDescriptor节点下,SerDe相关配置分为以下核心部分:

  • SerdeInfo:SerDe的核心配置块,包含三个关键属性:

    • Name:自定义的SerDe标识名(可选,仅用于识别)
    • SerializationLibrary:必须指定的SerDe库,常见选项:
      • org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe:处理CSV、TSV等分隔符类文本格式
      • org.openx.data.jsonserde.JsonSerDe:处理JSON格式
      • com.amazonaws.glue.serde.GlueParquetSerDe:处理Parquet列式存储格式
    • Parameters:针对不同SerDe的自定义参数,比如分隔符格式需指定field.delim(字段分隔符),JSON格式可指定ignore.malformed.json忽略非法JSON行
  • InputFormat/OutputFormat:与SerDe配套的输入输出格式类,需和SerDe库对应:

    • 用LazySimpleSerDe处理CSV时,对应org.apache.hadoop.mapred.TextInputFormat(输入)、org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat(输出)
    • 用GlueParquetSerDe时,对应org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat(输入)、org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat(输出)

实际配置示例(CSV格式)

Resources:
  MyGlueCsvTable:
    Type: AWS::Glue::Table
    Properties:
      CatalogId: !Ref AWS::AccountId
      DatabaseName: my-glue-database
      TableInput:
        Name: user_data_table
        StorageDescriptor:
          Columns:
            - Name: user_id
              Type: int
            - Name: user_name
              Type: string
            - Name: register_time
              Type: timestamp
          Location: s3://my-data-bucket/user-csv-data/
          InputFormat: org.apache.hadoop.mapred.TextInputFormat
          OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
          SerdeInfo:
            Name: CsvUserSerDe
            SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
            Parameters:
              field.delim: ","
              serialization.format: ","

常见注意事项

  • SerdeInfo与InputFormat/OutputFormat必须匹配,比如用JSON SerDe时不能搭配仅支持文本行的输入格式,否则会出现解析异常
  • Parameters的参数需严格对应所选SerDe库的要求,比如LazySimpleSerDe还支持collection.delim(数组元素分隔符)、mapkey.delim(Map键值分隔符)等配置

内容的提问来源于stack exchange,提问作者trimbljk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:57:52