スキーマの作成 - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

スキーマの作成

スキーマは、AWS Glue API または AWS Glue コンソールを使用して作成できます。

AWS Glue API

ここでの手順により、AWS Glue API を使用しながら対象のタスクを実行できます。

新しいスキーマを追加するには CreateSchema アクション (Python: create_schema) API を使用します。

RegistryId 構造体を使用して、スキーマのレジストリを指定します。または、RegistryId を省略すると、デフォルトのレジストリが使用されます。

文字、数字、ハイフン、アンダースコアを使用し、DataFormat として AVRO または JSON を設定しながら SchemaName を指定します。一度スキーマに設定された DataFormat は変更できません。

Compatibility モードを指定する。

  • Backward (推奨) – コンシューマは、現在のバージョンと 1 つ前のバージョンの両方を読み取ることができます。

  • Backward all – コンシューマは、現在のバージョンと過去のすべてのバージョンを読み取ることができます。

  • Forward – コンシューマは、現在のバージョンと次に続くバージョンの両方を読み取ることができます。

  • Forward all – コンシューマは、現在のバージョンと後続のすべてのバージョンの両方を読み取ることができます。

  • Full – Backward all と Forward all を組み合わせたモードです。

  • Full all – Backward all と Forward all を組み合わせたモードです。

  • None – 互換性チェックは実行されません。

  • Disabled – このスキーマのバージョニングを抑止します。

オプションで、スキーマに Tags を指定します。

SchemaDefinition を指定することで、スキーマのデータ形式を Avro、JSON、もしくは Protobuf として定義します。例を参照してください。

Avro データ形式の場合:

aws glue create-schema --registry-id RegistryName="registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"

JSON データ形式の場合:

aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"

Protobuf データ形式の場合:

aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
AWS Glue コンソール

AWS Glue コンソールを使用して新しいスキーマを追加するには

  1. AWS マネジメントコンソールにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

  2. ナビゲーションペインの [Data catalog] (データカタログ) で、[Schemas] (スキーマ) をクリックします。

  3. [Add schema] (スキーマを追加) をクリックします。

  4. [Schema name] (スキーマ名) に、文字、数字、ハイフン、アンダースコア、ドル記号、ハッシュマークで構成された名前を入力します。この名前は変更できません。

  5. [Registry] (レジストリ) ドロップダウンメニューから、スキーマの保存先となるレジストリを選択します。作成後は、親レジストリを変更することはできません。

  6. [Data format] (データ形式) は、「Apache Avro」または「JSON」のままにしておきます。この形式は、このスキーマのすべてのバージョンに適用されます。

  7. [Compatibility mode] (互換モード) をクリックします。

    • Backward (推奨) – レシーバーは、現在のバージョンと 1 つ前のバージョンの両方を読み取ることができます。

    • Backward All – レシーバーは、現在および過去のすべてのバージョンを読み取ることができます。

    • Forward – センダーは、現在のバージョンと 1 つ前のバージョンの両方に書き込むことができます。

    • Forward All – センダーは、現在のバージョンと過去のすべてのバージョンに書き込むことができます。

    • Full – Backward と Forward を組み合わせたモードです。

    • Full All – Backward All と Forward All を組み合わせたモードです。

    • None – 互換性チェックは実行されません。

    • Disabled – このスキーマのバージョニングを抑止します。

  8. [Description] (説明) に、レジストリのための説明 (オプション) を、最大 250 文字で入力します。

    スキーマの作成例。
  9. オプションで、1 つ以上のタグをスキーマに適用します。[Add new tag] (新しいタグを追加) を選択し、[Tag key] (タグキー) とオプションの [Tag value] (タグ値) を指定します。

  10. [First schema バージョニング] (最初のスキーマバージョン) ボックスに、初期スキーマを入力するか貼り付けます。

    Avro 形式については「Avro データ形式での作業」を参照

    JSON 形式については「JSON データ形式での操作」を参照

  11. 必要に応じて、[Add metadata] (メタデータを追加) をクリックして、スキーマバージョンの注釈付けや分類を行うためのバージョンメタデータを追加します。

  12. [Create schema and version] (スキーマとバージョンを作成する) をクリックします。

スキーマの作成例。

スキーマが作成され、[Schemas] (スキーマ) の下に一覧表示されます。

Avro データ形式での作業

Avro では、データのシリアル化とデータ交換サービスが利用できます。Avro は、可読性と解釈しやすさのために、データ定義が JSON 形式で格納されます。データ自体はバイナリ形式で保存されます。

Apache Avro スキーマの定義については、「Apache Avro specification」を参照してください。

JSON データ形式での操作

JSON 形式では、データをシリアル化できます。JSON スキーマ形式の標準は、「JSON Schema format」で定義されています。