

# 借助 AWS Glue 将半结构化架构转换为关系架构
<a name="schema-relationalize"></a>

通常会想将半结构化数据转换为关系表。从概念上说，您是将分层架构展平成关系架构。AWS Glue 可以即时为您执行此转换。

半结构化数据通常包含标记以标识数据中的实体。它可以具有不带固定架构的嵌套数据结构。有关半结构化数据的更多信息，请参阅维基百科中的[半结构化数据](https://en.wikipedia.org/wiki/Semi-structured_data)。

关系数据由包含行和列的表表示。表之间的关系可以由主键 (PK) 与外键 (FK) 关系表示。有关更多信息，请参阅维基百科中的[关系数据库](https://en.wikipedia.org/wiki/Relational_database)。

AWS Glue 使用爬网程序来推断半结构化数据的架构。然后，它使用 ETL (提取、转换和加载) 作业将数据转换为关系架构。例如，您可能想要将 Amazon Simple Storage Service（Amazon S3）源文件中的 JSON 数据解析为 Amazon Relational Database Service（Amazon RDS）表。了解 AWS Glue 如何处理架构之间的差异可以帮助您了解转换过程。

此图显示了 AWS Glue 如何将半结构化架构转换为关系架构。

![\[显示从半结构化架构转换为关系架构的流。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/HowItWorks-schemaconversion.png)


下图说明了以下内容：
+ 单值 `A` 直接转换为关系列。
+ 值对 `B1` 和 `B2` 转换为两个关系列。
+ 结构 `C` 以及子结构 `X` 和 `Y` 转换为两个关系列。
+ 数组 `D[]` 转换为具有指向另一个关系表的外键 (FK) 的关系列。除了主键 (PK)，第二个关系表还具有包含数组中项的偏移和值的列。