

# AWS Glue を使用して半構造化されたスキーマをリレーショナルスキーマに変換する
<a name="schema-relationalize"></a>

半構造化データをリレーショナルテーブルに変換することが一般的です。概念的には、階層的なスキーマをリレーショナルスキーマに平坦化します。AWS Glue は、この変換を臨機応変に実行できます。

通常、半構造化されたデータには、データ内のエンティティを識別するためのマークアップが含まれています。固定されたスキーマのない、ネスト化されたデータ構造を持つことができます。半構造化データの詳細については、Wikipedia の [半構造化データ](https://en.wikipedia.org/wiki/Semi-structured_data) を参照してください。

リレーショナルデータは、行と列で構成されるテーブルで表されます。テーブル間の関係は、プライマリキー (PK) と外部キー (FK) の関係によって表すことができます。詳細については、Wikipedia の [リレーショナルデータベース](https://en.wikipedia.org/wiki/Relational_database) を参照してください。

AWS Glue は、クローラを使用して半構造化データのスキーマを推測します。次に、ETL (抽出、変換、ロード) ジョブを使用してデータをリレーショナルスキーマに変換します。例えば、JSON データを解析して、Amazon Simple Storage Service (Amazon S3) ソースファイルから Amazon Relational Database Service (Amazon RDS) テーブルに変換したい場合があります。AWS Glue がスキーマの違いを処理する方法を理解すると、変換プロセスを理解するうえで役立ちます。

この図は、AWS Glue が半構造化スキーマをリレーショナルスキーマに変換する方法を示しています。

![\[半構造化からリレーショナルスキーマへの変換を示した図。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/HowItWorks-schemaconversion.png)


この図表は、以下を示すものです:
+ 単一の値 `A` は、直接リレーショナル列に変換されます。
+ 値のペアである `B1` および `B2` は、2 つのリレーショナル列に変換されます。
+ 子の `X` と `Y` を持つ `C` 構造は、2 つのリレーショナル列に変換されます。
+ 配列 `D[]` は、別のリレーショナルテーブルを指す外部キー (FK) 列のリレーショナル列に変換されます。2 番目のリレーショナルテーブルには、プライマリキー (PK) に加えて、オフセットと配列の項目の値を含む列があります。