{"id":69277,"date":"2024-02-19T00:00:00","date_gmt":"2024-02-18T15:00:00","guid":{"rendered":"https:\/\/www.creationline.com\/?p=69277"},"modified":"2024-02-19T17:58:29","modified_gmt":"2024-02-19T08:58:29","slug":"aws-glue%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6json%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e6%ad%a3%e7%a2%ba%e6%80%a7%e3%82%92%e4%bf%9d%e8%a8%bc%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277","title":{"rendered":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h1>\n\n\n\n<p>\u30c7\u30fc\u30bf\u99c6\u52d5\u578b\u306e\u30d3\u30b8\u30cd\u30b9\u74b0\u5883\u306b\u304a\u3044\u3066\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u306f\u30b7\u30b9\u30c6\u30e0\u306e\u4fe1\u983c\u6027\u3068\u52b9\u7387\u6027\u3092\u5de6\u53f3\u3059\u308b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u8aa4\u3063\u305f\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3084\u4e0d\u6b63\u78ba\u306a\u30c7\u30fc\u30bf\u304c\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u6d41\u901a\u3059\u308b\u3068\u3001\u30a8\u30e9\u30fc\u3084\u30c7\u30fc\u30bf\u306e\u4e0d\u6574\u5408\u304c\u751f\u3058\u3001\u7d50\u679c\u3068\u3057\u3066\u30d3\u30b8\u30cd\u30b9\u30d7\u30ed\u30bb\u30b9\u306b\u5927\u304d\u306a\u969c\u5bb3\u3092\u3082\u305f\u3089\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306a\u554f\u984c\u3092\u672a\u7136\u306b\u9632\u3050\u305f\u3081\u3001\u30c7\u30fc\u30bf\u306e\u5f62\u5f0f\u3084\u69cb\u9020\u3092\u5b9a\u7fa9\u3057\u3001\u9001\u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u304c\u3053\u308c\u3089\u306e\u5b9a\u7fa9\u306b\u9069\u5408\u3057\u3066\u3044\u308b\u304b\u3092\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u6975\u3081\u3066\u91cd\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u3053\u3067\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u306e\u5f79\u5272\u304c\u91cd\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u306f\u3001\u30c7\u30fc\u30bf\u306e\u30b9\u30ad\u30fc\u30de\uff08\u8a2d\u8a08\u56f3\uff09\u3092\u4e00\u5143\u7ba1\u7406\u3057\u3001\u30c7\u30fc\u30bf\u306e\u4ea4\u63db\u306b\u53c2\u52a0\u3059\u308b\u5168\u3066\u306e\u30b7\u30b9\u30c6\u30e0\u304c\u6b63\u78ba\u306a\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u901a\u4fe1\u3059\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3059\u308b\u305f\u3081\u306e\u4ed5\u7d44\u307f\u3067\u3059\u3002\u3057\u304b\u3057\u3001Amazon MSK\u306a\u3069\u306e\u4e00\u90e8\u306e\u30b5\u30fc\u30d3\u30b9\u3067\u306f\u3001\u76f4\u63a5\u7684\u306a\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u305b\u3093\u3002\u305d\u3053\u3067AWS Glue\u306e\u30c7\u30fc\u30bf\u30ab\u30bf\u30ed\u30b0\u6a5f\u80fd\u304c\u5f79\u7acb\u3061\u307e\u3059\u3002AWS Glue\u306f\u3001\u8907\u6570\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306b\u5bfe\u5fdc\u3057\u305f\u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u3092\u7ba1\u7406\u3057\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306e\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001AWS Glue\u3092\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u3068\u3057\u3066\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002AWS Glue\u306e\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001Amazon MSK\u3092\u542b\u3080AWS\u4e0a\u306e\u30b5\u30fc\u30d3\u30b9\u9593\u3067\u5b89\u5168\u304b\u3064\u52b9\u7387\u7684\u306b\u30c7\u30fc\u30bf\u3092\u4ea4\u63db\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u6982\u8981<\/h1>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Amazon MSK\u3092\u5229\u7528\u3059\u308b\u969b\u306b\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\uff08Producer\u304a\u3088\u3073Consumer\uff09\u304cJSON\u5f62\u5f0f\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u95a2\u3057\u3066\u30b9\u30ad\u30fc\u30de\u306e\u6574\u5408\u6027\u3092\u78ba\u8a8d\u3059\u308b\u30b7\u30ca\u30ea\u30aa\u3092\u53d6\u308a\u4e0a\u3052\u307e\u3059\u3002AWS Glue\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001Avro\u3001JSON\u3068\u3044\u3063\u305f\u8907\u6570\u306e\u30c7\u30fc\u30bf\u30b9\u30ad\u30fc\u30de\u5f62\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3001\u3053\u308c\u306b\u3088\u308aProducer\u3068Consumer\u304c\u4ea4\u63db\u3059\u308b\u30c7\u30fc\u30bf\u304c\u4e88\u3081\u5b9a\u7fa9\u3055\u308c\u305f\u30b9\u30ad\u30fc\u30de\u306b\u6e96\u62e0\u3057\u3066\u3044\u308b\u304b\u3092\u52b9\u679c\u7684\u306b\u691c\u8a3c\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u901a\u3058\u3066\u3001\u30c7\u30fc\u30bf\u306e\u54c1\u8cea\u3068\u30b7\u30b9\u30c6\u30e0\u9593\u306e\u4e92\u63db\u6027\u3092\u78ba\u4fdd\u3057\u3001\u4fe1\u983c\u6027\u306e\u9ad8\u3044\u30c7\u30fc\u30bf\u901a\u4fe1\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"658\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1-1024x658.png\" alt=\"\" class=\"wp-image-70250\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1-1024x658.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1-360x231.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1-768x494.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png 1041w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf<\/h1>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u53d6\u308a\u6271\u3046\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf\u306f\u3001\u6b21\u306eJSON\u5f62\u5f0f\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30c7\u30fc\u30bf\u306f\u3001\u3042\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u66f8\u5e97\u304b\u3089\u306e\u6ce8\u6587\u60c5\u5831\u3092\u8868\u3059\u3082\u306e\u3067\u3001\u6ce8\u6587ID\u3001\u66f8\u7c4d\u540d\u3001\u6ce8\u6587\u6642\u523b\u3001\u4fa1\u683c\u306a\u3069\u306e\u60c5\u5831\u3092\u542b\u3093\u3067\u3044\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3001\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf\u306e\u5177\u4f53\u7684\u306a\u4f8b\u3092\u793a\u3057\u3066\u304a\u308a\u3001AWS Glue\u306e\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u6a5f\u80fd\u3092\u7528\u3044\u3066\u3053\u306e\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u306e\u6574\u5408\u6027\u3092\u691c\u8a3c\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  orderId: \"uuid\",\n  bookName: \"Sample Book\",\n  time: \"2011-12-23 13:41:00+09:00\",\n  price: 356\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u30b9\u30ad\u30fc\u30de\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u7a2e\u985e<\/h1>\n\n\n\n<p>AWS Glue\u306e\u30c7\u30fc\u30bf\u30ab\u30bf\u30ed\u30b0\u3067\u306f\u3001\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306e3\u3064\u306e\u4e3b\u8981\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8(Avro, JSON, Protobuf)\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306f\u3001\u30c7\u30fc\u30bf\u306e\u8a2d\u8a08\u56f3\u3092\u660e\u78ba\u306b\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u5229\u7528\u3055\u308c\u307e\u3059\u3002\u5404\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306f\u7279\u6709\u306e\u7279\u5fb4\u3068\u5229\u70b9\u3092\u6301\u3061\u3001\u30c7\u30fc\u30bf\u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u3084\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u306b\u304a\u3044\u3066\u7570\u306a\u308b\u30b7\u30ca\u30ea\u30aa\u3067\u9069\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apache Avro:<ul><li>Apache Avro\u306f\u30c7\u30fc\u30bf\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3001\u30c7\u30fc\u30bf\u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\uff08\u76f4\u5217\u5316\uff09\u304a\u3088\u3073\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\uff08\u9006\u76f4\u5217\u5316\uff09\u3092\u884c\u3046\u305f\u3081\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30c7\u30fc\u30bf\u5f62\u5f0f\u3067\u3059\u3002\u30b9\u30ad\u30fc\u30de\u30d9\u30fc\u30b9\u306e\u30c7\u30fc\u30bf\u5f62\u5f0f\u3067\u3001\u30c7\u30fc\u30bf\u306e\u69cb\u9020\u3092\u30b9\u30ad\u30fc\u30de\u3067\u5b9a\u7fa9\u3057\u3001\u30c7\u30fc\u30bf\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u3084\u9032\u5316\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002Avro\u306fJSON\u3088\u308a\u3082\u30b3\u30f3\u30d1\u30af\u30c8\u3067\u3001\u9ad8\u901f\u306a\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u304c\u53ef\u80fd\u3067\u3001\u591a\u8a00\u8a9e\u9593\u3067\u306e\u30c7\u30fc\u30bf\u4ea4\u63db\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JSON (JavaScript Object Notation):<ul><li>\u30c6\u30ad\u30b9\u30c8\u30d9\u30fc\u30b9\u3067\u3001\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u304b\u3089\u306a\u308b\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8868\u73fe\u3057\u307e\u3059\u3002\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084API\u3067\u3088\u304f\u4f7f\u7528\u3055\u308c\u3001\u591a\u304f\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u30d1\u30fc\u30b9\uff08\u89e3\u6790\uff09\u304a\u3088\u3073\u751f\u6210\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002JSON\u306f\u968e\u5c64\u69cb\u9020\u3092\u6301\u3064\u3053\u3068\u304c\u3067\u304d\u3001\u914d\u5217\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30cd\u30b9\u30c8\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protocol Buffers (Protobuf):<ul><li>Protocol Buffers\u306fGoogle\u306b\u3088\u3063\u3066\u958b\u767a\u3055\u308c\u305f\u30d0\u30a4\u30ca\u30ea\u30c7\u30fc\u30bf\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3059\u3002\u30d0\u30a4\u30ca\u30ea\u30c7\u30fc\u30bf\u5f62\u5f0f\u306a\u306e\u3067\u3001JSON\u3084XML\u3088\u308a\u3082\u30b3\u30f3\u30d1\u30af\u30c8\u3067\u9ad8\u901f\u306a\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u304c\u53ef\u80fd\u3067\u3059\u3002\u30b9\u30ad\u30fc\u30de\u30d9\u30fc\u30b9\u306e\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3001\u30c7\u30fc\u30bf\u69cb\u9020\u3092.proto\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002\u30b9\u30ad\u30fc\u30de\u306e\u9032\u5316\u3082\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002Protocol Buffers\u306f\u4e3b\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u9593\u3067\u306e\u30c7\u30fc\u30bf\u901a\u4fe1\u3084\u6c38\u7d9a\u5316\u306b\u4f7f\u7528\u3055\u308c\u3001\u8a00\u8a9e\u306b\u4f9d\u5b58\u3057\u306a\u3044\u30c7\u30fc\u30bf\u4ea4\u63db\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>Protobuf\u306f\u3001\u4e3b\u306b\u30c7\u30fc\u30bf\u306e\u52b9\u7387\u7684\u306a\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9593\u306e\u30c7\u30fc\u30bf\u4ea4\u63db\u306e\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u3066\u304a\u308a\u3001\u30b9\u30ad\u30fc\u30de\u81ea\u4f53\u306e\u300c\u8a55\u4fa1\u300d\u3068\u3044\u3046\u6982\u5ff5\u306f\u76f4\u63a5\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\u4eca\u56de\u306e\u8a18\u4e8b\u306f\u3001\u30b9\u30ad\u30fc\u30de\u306e\u8a55\u4fa1\u3092\u4e2d\u5fc3\u3068\u3057\u3066\u3044\u308b\u305f\u3081\u306b\u3001Protobuf\u306e\u5229\u7528\u65b9\u6cd5\u306a\u3069\u306b\u95a2\u3059\u308b\u8aac\u660e\u306f\u7701\u3044\u3066\u9802\u304d\u307e\u3059\u3002\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\u30b9\u30ad\u30fc\u30de\u306e\u5b9a\u7fa9<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Avro\u5f62\u5f0f<\/h2>\n\n\n\n<p>\u524d\u9805\u306e\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf\u306e\u30b9\u30ad\u30fc\u30de\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"type\": \"record\",\n  \"name\": \"BookOrder\",\n  \"fields\": &#91;\n    {\"name\": \"orderId\", \"type\": \"string\"},\n    {\"name\": \"bookName\", \"type\": \"string\"},\n    {\"name\": \"time\", \"type\": \"string\"},\n    {\"name\": \"price\", \"type\": \"int\"}\n  ]\n}<\/code><\/pre>\n\n\n\n<p>[\u53c2\u7167:<a href=\"https:\/\/avro.apache.org\/docs\/1.11.1\/specification\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/avro.apache.org\/docs\/1.11.1\/specification\/]<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JSON\u5f62\u5f0f<\/h2>\n\n\n\n<p>\u524d\u9805\u306e\u30a4\u30d9\u30f3\u30c8\u30c7\u30fc\u30bf\u306e\u30b9\u30ad\u30fc\u30de\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"$schema\": \"http:\/\/json-schema.org\/draft-07\/schema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"orderId\": {\n      \"type\": \"string\",\n      \"pattern\": \"^&#91;0-9a-fA-F]{8}-&#91;0-9a-fA-F]{4}-&#91;1-5]&#91;0-9a-fA-F]{3}-&#91;89abAB]&#91;0-9a-fA-F]{3}-&#91;0-9a-fA-F]{12}$\"\n    },\n    \"bookName\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"price\": {\n      \"type\": \"integer\",\n      \"minimum\": 0\n    }\n  },\n  \"required\": &#91;\"orderId\", \"bookName\", \"time\", \"price\"]\n}<\/code><\/pre>\n\n\n\n<p>[\u53c2\u7167:<a href=\"https:\/\/python-jsonschema.readthedocs.io\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/python-jsonschema.readthedocs.io\/en\/stable\/<\/a>]<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u30ec\u30b8\u30b9\u30c8\u30ea\u3068\u30b9\u30ad\u30fc\u30de<\/h1>\n\n\n\n<p>\u524d\u9805\u306e\u30b9\u30ad\u30fc\u30de\u3092Glue\u306e\u30c7\u30fc\u30bf\u30ab\u30bf\u30ed\u30b0\u306b\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>AWS Glue\u306eDataCatalog\u2192Stream schema registries\u304b\u3089\u30ec\u30b8\u30b9\u30c8\u30ea\u3092\u767b\u9332\u3057\u3066\u304b\u3089\u3001\u30ec\u30b8\u30b9\u30c8\u30ea\u306e\u914d\u4e0b\u306b\u30b9\u30ad\u30fc\u30de\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"418\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-2.png\" alt=\"\" class=\"wp-image-70251\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-2.png 620w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-2-360x243.png 360w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p>\u307e\u305a\u3001\u30ec\u30b8\u30b9\u30c8\u30ea\u306f\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30ec\u30b8\u30b9\u30c8\u30ea\u306f\u3001\u30b9\u30ad\u30fc\u30de\u3092\u767b\u9332\u30fb\u7ba1\u7406\u3059\u308b\u305f\u3081\u306e\u30cd\u30fc\u30e0\u30b9\u30da\u30fc\u30b9\u306e\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"228\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-3-1024x228.png\" alt=\"\" class=\"wp-image-70252\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-3-1024x228.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-3-360x80.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-3-768x171.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-3.png 1160w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u305d\u308c\u304b\u3089\u3001\u30ec\u30b8\u30b9\u30c8\u30ea\u306e\u914d\u4e0b\u306b\u30b9\u30ad\u30fc\u30de\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-4-1024x490.png\" alt=\"\" class=\"wp-image-70253\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-4-1024x490.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-4-360x172.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-4-768x368.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-4.png 1142w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>First schema version\u306b\u30b9\u30ad\u30fc\u30e0\u5b9a\u7fa9\u3092\u5f35\u308a\u4ed8\u3051\u3066\u30b9\u30ad\u30fc\u30de\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-5-1024x451.png\" alt=\"\" class=\"wp-image-70254\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-5-1024x451.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-5-360x159.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-5-768x338.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-5.png 1044w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066JSON\u306e\u30b9\u30ad\u30fc\u30de\u3092\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"270\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-6-1024x270.png\" alt=\"\" class=\"wp-image-70255\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-6-1024x270.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-6-360x95.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-6-768x203.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-6.png 1144w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u8a55\u4fa1\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u691c\u8a3c:Avro<\/h1>\n\n\n\n<p>Avro\u5f62\u5f0f\u306e\u30b9\u30ad\u30fc\u30de\u3092\u7528\u3044\u3066\u8a55\u4fa1\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u3053\u3053\u3067\u306f\u3001Python\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ pip install fastavro\n$ pip install boto3<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001AWS glue\u304b\u3089\u30b9\u30ad\u30fc\u30de\u3092\u53d6\u5f97\u3057\u3001\u8a55\u4fa1\u5bfe\u8c61\u306eJSON\u30c7\u30fc\u30bf\u3068\u5f62\u5f0f\u304c\u4e00\u81f4\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u8a55\u4fa1\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>validaterAvro.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import json\nimport boto3\nfrom fastavro import parse_schema, validate\n\n# \u4ee5\u4e0b\u306fjson_data\u306e\u5b9a\u7fa9\u3067\u3059\u3002\u9069\u5207\u306a\u5024\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002\njson_data = {\n  \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n  \"bookName\": \"\",\n  \"time\": \"2023-12-23 13:41:00+09:00\",\n  \"price\": 356\n}\n\n# AWS Glue\u304b\u3089\u30b9\u30ad\u30fc\u30de\u3092\u53d6\u5f97\u3059\u308b\u60c5\u5831\nregistryName = \"testRegistry\"\nschemaName = \"bookOrderSchemaAvro\"\nschemaVersion = 1\n\n# AWS Glue\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\nglue_client = boto3.client('glue')\n\n# \u30b9\u30ad\u30fc\u30de\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u53d6\u5f97\nresponse = glue_client.get_schema_version(\n    SchemaId={'RegistryName': registryName,'SchemaName': schemaName},\n    SchemaVersionNumber={'VersionNumber': schemaVersion}\n)\navro_schema = json.loads(response&#91;'SchemaDefinition'])\nparsed_schema = parse_schema(avro_schema)\n#print(f\"`parsed_schema: {parsed_schema}\")\n\n\n# \u30b9\u30ad\u30fc\u30de\u691c\u8a3c\ntry:\n    validate( json_data, parsed_schema, strict=True)\n    print(\"Valid message:\", json_data)\nexcept Exception as e:\n    print(f\"Error in validation: {e}\")\n<\/code><\/pre>\n\n\n\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002\u6b21\u306e\u3088\u3046\u306b\u6b63\u5e38\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nValid message: {'orderId': 'a9f31e45-89b0-4bb1-987c-f5795a701380', 'bookName': 'Sample Book', 'time': '2023-12-23 13:41:00+09:00', 'price': 356}<\/code><\/pre>\n\n\n\n<p>[\u53c2\u7167:<a href=\"https:\/\/fastavro.readthedocs.io\/en\/latest\/validation.html#fastavro._validation_py.validate\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/fastavro.readthedocs.io\/en\/latest\/validation.html#fastavro._validation_py.validate]<\/a><\/p>\n\n\n\n<p>\u7d9a\u3051\u3066\u6c17\u306b\u306a\u308b\u30b1\u30fc\u30b9\u3092\u691c\u8a3c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b91:\u30c7\u30fc\u30bf\u30bf\u30a4\u30d7\u306e\u9055\u3044<\/h2>\n\n\n\n<p>\u4fa1\u683c(price)\u3092\u6587\u5b57\u5217\u306b\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"price\": \"356\"\n}\n\n\u6b21\u306e\u3088\u3046\u306bBookOrder.price\u306f\u3001int\u304c\u671f\u5f85\u3055\u308c\u3066\u3044\u308b\u304cstr\u3067\u3042\u308b\u3068\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nError in validation: &#91;\n&nbsp; \"BookOrder.price is &lt;356&gt; of type &lt;class 'str'&gt; expected int\"\n]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b92:\u30d5\u30a3\u30eb\u30c9\u540d\u306e\u9055\u3044<\/h2>\n\n\n\n<p>\u4fa1\u683c\u306e\u30d5\u30a3\u30eb\u30c9\u540d\u3092\u5909\u66f4\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044(price\u2192pirces)\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"prices\": 356\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306bBookOrder.price\u306f\u3001\u6574\u6570\u304c\u671f\u5f85\u3055\u308c\u3066\u3044\u308b\u304c\u3001\u5b58\u5728\u3057\u306a\u3044\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nError in validation: &#91;\n&nbsp; \"Field(BookOrder.price) is None expected int\"\n]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b93:\u30d5\u30a3\u30eb\u30c9\u306e\u6b20\u843d<\/h2>\n\n\n\n<p>price\u30d5\u30a3\u30eb\u30c9\u304c\u6b20\u3051\u3066\u3044\u308b\u72b6\u614b\u3092\u60f3\u5b9a\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\"\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306bBookOrder.price\u306f\u3001\u6574\u6570\u304c\u671f\u5f85\u3055\u308c\u3066\u3044\u308b\u304c\u3001\u5b58\u5728\u3057\u306a\u3044\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nError in validation: &#91;\n&nbsp; \"Field(BookOrder.price) is None expected int\"\n]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b94:\u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u306b\u306f\u5b58\u5728\u3057\u306a\u3044\u30d5\u30a3\u30eb\u30c9<\/h2>\n\n\n\n<p>\u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u306b\u5b58\u5728\u3057\u306a\u3044\u30d5\u30a3\u30eb\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"price\": 356,\n&nbsp; \"phone\": \"090-9999-9999\",\n}<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u30b1\u30fc\u30b9\u3067\u306f\u3001\u6709\u52b9\u3068\u3044\u3046\u7d50\u679c\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u3088\u304f\u8003\u3048\u3066\u307f\u308b\u3068\u3001\u30c7\u30fc\u30bf\u51e6\u7406\u306b\u76f4\u63a5\u7684\u306a\u5f71\u97ff\u306f\u306a\u3044\u306f\u305a\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nValid message: {'orderId': 'a9f31e45-89b0-4bb1-987c-f5795a701380', 'bookName': 'Sample Book', 'time': '2023-12-23 13:41:00+09:00', 'price': 356, 'phone': '090-9999-9999'}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b95:\u7a7a\u6587\u5b57(\u201d\u201d)<\/h2>\n\n\n\n<p>\u7279\u5b9a\u306e\u30d5\u30a3\u30eb\u30c9\u306b\u7a7a\u6587\u5b57\u304c\u5165\u3063\u3066\u6765\u305f\u3068\u60f3\u5b9a\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n  \"price\": 356\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterAvro.py\nValid message: {'orderId': 'a9f31e45-89b0-4bb1-987c-f5795a701380', 'bookName': '', 'time': '2023-12-23 13:41:00+09:00', 'price': 356}<\/code><\/pre>\n\n\n\n<p>\u3042\u308a\u305d\u3046\u306a\u30b1\u30fc\u30b9\u3067\u3059\u304c\u3001Avro\u5f62\u5f0f\u3067\u306f\u554f\u984c\u306a\u3044\u3068\u898b\u306a\u3055\u308c\u307e\u3057\u305f\u3002\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u304c\u3001Avro\u3084Protobuf\u3067\u306f\u7a7a\u306e\u6587\u5b57\u5217\uff08\"\"\uff09\u3092\u7279\u5b9a\u306e\u30b1\u30fc\u30b9\u3068\u3057\u3066\u691c\u51fa\u3059\u308b\u6a5f\u80fd\u304c\u5b58\u5728\u3057\u306a\u3044\u3088\u3046\u3067\u3059(\u3082\u3057\u3001\u5b58\u5728\u3057\u305f\u3089\u3001\u30b3\u30e1\u30f3\u30c8\u304a\u9858\u3044\u81f4\u3057\u307e\u3059)\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u8a55\u4fa1\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u691c\u8a3c:JSON<\/h1>\n\n\n\n<p>\u3053\u3053\u304b\u3089\u306f\u3001JSON\u5f62\u5f0f\u306e\u30b9\u30ad\u30fc\u30de\u3092\u7528\u3044\u3066\u8a55\u4fa1\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<p>jsonschema\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ pip install jsonschema<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001AWS glue\u304b\u3089\u30b9\u30ad\u30fc\u30de\u3092\u53d6\u5f97\u3057\u3001\u8a55\u4fa1\u5bfe\u8c61\u306eJSON\u30c7\u30fc\u30bf\u3068\u5f62\u5f0f\u304c\u4e00\u81f4\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u8a55\u4fa1\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>validaterJson.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import boto3\nimport json\nimport jsonschema\nfrom jsonschema import validate\n\n# AWS Glue\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\nglue_client = boto3.client('glue')\n\n# \u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u3068\u30b9\u30ad\u30fc\u30de\u540d\nregistry_name = \"testRegistry\"\nschema_name = \"bookOrderSchemaJson\"\nschema_version = 1\n\n# \u30b9\u30ad\u30fc\u30de\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u53d6\u5f97\nresponse = glue_client.get_schema_version(\n    SchemaId={'RegistryName': registry_name, 'SchemaName': schema_name},\n    SchemaVersionNumber={'VersionNumber': schema_version}\n)\n\n# \u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u306e\u53d6\u5f97\nschema_definition = json.loads(response&#91;'SchemaDefinition'])\n\n# JSON\u30b9\u30ad\u30fc\u30de\u306e\u4f8b\njson_data = {\n  \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n  \"bookName\": \"Sample Book\",\n  \"time\": \"2023-12-23 13:41:00+09:00\",\n  \"price\": 365\n}\n\n#print(f\"schema_definition: ${schema_definition}\")\n\n# \u30b9\u30ad\u30fc\u30de\u691c\u8a3c\ntry:\n    validate(instance=json_data, schema=schema_definition)\n    print(\"Valid message:\", json_data)\nexcept jsonschema.exceptions.ValidationError as e:\n    print(f\"Error in validation: {e.message}\")\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002\u6b21\u306e\u3088\u3046\u306b\u6b63\u5e38\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validater.py\nValid message: {'orderId': 'a9f31e45-89b0-4bb1-987c-f5795a701380', 'bookName': 'Sample Book', 'time': '2023-12-23 13:41:00+09:00', 'price': 365}<\/code><\/pre>\n\n\n\n<p>[\u53c2\u7167:<a href=\"https:\/\/python-jsonschema.readthedocs.io\/en\/latest\/validate\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/python-jsonschema.readthedocs.io\/en\/latest\/validate\/<\/a>]<\/p>\n\n\n\n<p>\u7d9a\u3051\u3066\u6c17\u306b\u306a\u308b\u30b1\u30fc\u30b9\u3092\u691c\u8a3c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b91:\u30c7\u30fc\u30bf\u30bf\u30a4\u30d7\u306e\u9055\u3044<\/h2>\n\n\n\n<p>\u4fa1\u683c(price)\u3092\u6587\u5b57\u5217\u306b\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"price\": \"356\"\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306b356\u304cinteger\u3067\u306f\u306a\u3044\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterJson.py\nError in validation: '365' is not of type 'integer'<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b92:\u30d5\u30a3\u30eb\u30c9\u540d\u306e\u9055\u3044<\/h2>\n\n\n\n<p>\u4fa1\u683c\u306e\u30d5\u30a3\u30eb\u30c9\u540d\u3092\u5909\u66f4\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044(price\u2192pirces)\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"prices\": 356\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306bprice\u5c5e\u6027\u304c\u6c42\u3081\u3089\u308c\u308b\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterJson.py\nError in validation: 'price' is a required property<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b93:\u30d5\u30a3\u30eb\u30c9\u306e\u6b20\u843d<\/h2>\n\n\n\n<p>price\u30d5\u30a3\u30eb\u30c9\u304c\u6b20\u3051\u3066\u3044\u308b\u72b6\u614b\u3092\u60f3\u5b9a\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\"\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306bprice\u5c5e\u6027\u304c\u6c42\u3081\u3089\u308c\u308b\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterJson.py\nError in validation: 'price' is a required property<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b94:\u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u306b\u306f\u5b58\u5728\u3057\u306a\u3044\u30d5\u30a3\u30eb\u30c9<\/h2>\n\n\n\n<p>\u30b9\u30ad\u30fc\u30de\u5b9a\u7fa9\u306b\u5b58\u5728\u3057\u306a\u3044\u30d5\u30a3\u30eb\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"Sample Book\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n&nbsp; \"price\": 356,\n&nbsp; \"phone\": \"090-9999-9999\",\n}<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u30b1\u30fc\u30b9\u3067\u306f\u3001\u6709\u52b9\u3068\u3044\u3046\u7d50\u679c\u306b\u306a\u308a\u307e\u3057\u305f\u3002Avro\u5f62\u5f0f\u3068\u540c\u3058\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python validaterJson.py\nValid message: {'orderId': 'a9f31e45-89b0-4bb1-987c-f5795a701380', 'bookName': 'Sample Book', 'time': '2023-12-23 13:41:00+09:00', 'price': 356, 'phone': '090-9999-9999'}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b1\u30fc\u30b95:\u7a7a\u6587\u5b57(\u201d\u201d)<\/h2>\n\n\n\n<p>\u3067\u306f\u3001\u7a7a\u6587\u5b57(\"\")\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u3069\u3046\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>json_data = {\n&nbsp; \"orderId\": \"a9f31e45-89b0-4bb1-987c-f5795a701380\",\n&nbsp; \"bookName\": \"\",\n&nbsp; \"time\": \"2023-12-23 13:41:00+09:00\",\n  \"price\": 356\n}<\/code><\/pre>\n\n\n\n<p>\u7a7a\u6587\u5b57\u306f\u99c4\u76ee\u3060\u3068\u3044\u3046\u7d50\u679c\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002Avro\u5f62\u5f0f\u3067\u306f\u3001\u6b63\u5e38\u3060\u3068\u5224\u5b9a\u3057\u3066\u3044\u307e\u3057\u305f\u3002\u3053\u3053\u304c\u9055\u3044\u307e\u3059\u306d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python validaterJson.py\nError in validation: '' should be non-empty<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u30b9\u30ad\u30fc\u30de\u8a55\u4fa1\u306e\u30dd\u30a4\u30f3\u30c8<\/h1>\n\n\n\n<p>\u30b9\u30ad\u30fc\u30de\u8a55\u4fa1\u306b\u95a2\u3057\u3066\u306f\u3001\u4e3b\u306b\u6b21\u306e3\u3064\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9001\u4fe1\u5074\uff08Producer\uff09\u3068\u53d7\u4fe1\u5074\uff08Consumer\uff09\u306e<strong>\u4e21\u65b9<\/strong>\u3067\u8a55\u4fa1\u3059\u308b\u3002<\/li>\n\n\n\n<li><strong>\u9001\u4fe1\u5074\uff08Producer\uff09\u306e\u307f<\/strong>\u3067\u8a55\u4fa1\u3059\u308b\u3002<\/li>\n\n\n\n<li><strong>\u53d7\u4fe1\u5074\uff08Consumer\uff09\u306e\u307f<\/strong>\u3067\u8a55\u4fa1\u3059\u308b\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4e00\u822c\u306b\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u3069\u306e\u6bb5\u968e\u3067\u8a55\u4fa1\u3059\u308b\u304b\u306f\u91cd\u8981\u306a\u8003\u616e\u4e8b\u9805\u3067\u3059\u3002\u7279\u306bEvent Driven Architecture (EDA) \u306b\u304a\u3044\u3066\u306f\u3001MSK\u306e\u30c8\u30d4\u30c3\u30af\u3092\u5883\u754c\u3068\u3057\u3066\u3001\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u3068\u53d7\u4fe1\u3059\u308b\u5074\u306e\u9593\u3067\u8cac\u52d9\u304c\u5206\u304b\u308c\u307e\u3059\u3002\u3053\u306e\u6587\u8108\u3067\u306f\u3001\u9001\u4fe1\u5074\u304c\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3057\u3001\u53d7\u4fe1\u5074\u304c\u305d\u306e\u6b63\u78ba\u6027\u3092\u691c\u8a3c\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u4e0d\u6b63\u78ba\u306a\u30c7\u30fc\u30bf\u304c\u6d41\u308c\u308b\u3068\u3001\u305d\u306e\u5f8c\u306e\u51e6\u7406\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u53ca\u307c\u3057\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u65e2\u5b58\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u88fd\u54c1\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3001\u30b9\u30ad\u30fc\u30de\u306e\u8a55\u4fa1\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u96e3\u3057\u3044\u5834\u5408\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h1>\n\n\n\n<p>Amazon MSK\u304c\u76f4\u63a5\u30b9\u30ad\u30fc\u30de\u30ec\u30b8\u30b9\u30c8\u30ea\u3092\u63d0\u4f9b\u3057\u3066\u3044\u306a\u3044\u4e2d\u3067\u3082\u3001AWS Glue\u306e\u30c7\u30fc\u30bf\u30ab\u30bf\u30ed\u30b0\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b9\u30ad\u30fc\u30de\u7ba1\u7406\u306e\u8981\u4ef6\u3092\u6e80\u305f\u3059\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\u4f7f\u7528\u3059\u308b\u30b9\u30ad\u30fc\u30de\u306e\u5f62\u5f0f\u3092\u3069\u308c\u306b\u3059\u308b\u304b\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30cb\u30fc\u30ba\u3084\u6a5f\u80fd\u6027\u3092\u7dcf\u5408\u7684\u306b\u8003\u616e\u3057\u3066\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b \u30c7\u30fc\u30bf\u99c6\u52d5\u578b\u306e\u30d3\u30b8\u30cd\u30b9\u74b0\u5883\u306b\u304a\u3044\u3066\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u306f\u30b7\u30b9\u30c6\u30e0\u306e\u4fe1\u983c\u6027\u3068\u52b9\u7387\u6027\u3092\u5de6\u53f3\u3059\u308b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u8aa4\u3063\u305f\u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3084\u4e0d\u6b63\u78ba\u306a\u30c7\u30fc\u30bf\u304c\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u6d41\u901a\u3059\u308b\u3068\u3001\u30a8\u30e9\u30fc\u3084\u30c7\u30fc\u30bf\u306e\u4e0d\u6574\u5408\u304c\u751f\u3058\u3001\u7d50\u679c\u3068\u3057\u3066\u30d3 [&#8230;]<\/p>\n","protected":false},"author":13,"featured_media":70250,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[98,750,477,61,323],"tags":[994,997,993,995,998,996],"class_list":["post-69277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-event-driven","category-kafka","category-lee","category-python","tag-avro","tag-fastavro","tag-glue","tag-json","tag-jsonschema","tag-protobuf"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-18T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-19T08:58:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1041\" \/>\n\t<meta property=\"og:image:height\" content=\"669\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"lee\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@awk256\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"lee\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\"},\"author\":{\"name\":\"lee\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616\"},\"headline\":\"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b\",\"datePublished\":\"2024-02-18T15:00:00+00:00\",\"dateModified\":\"2024-02-19T08:58:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\"},\"wordCount\":153,\"image\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png\",\"keywords\":[\"Avro\",\"fastavro\",\"Glue\",\"Json\",\"jsonschema\",\"Protobuf\"],\"articleSection\":[\"AWS\",\"event-driven\",\"Kafka\",\"lee\",\"Python\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\",\"url\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\",\"name\":\"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png\",\"datePublished\":\"2024-02-18T15:00:00+00:00\",\"dateModified\":\"2024-02-19T08:58:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616\"},\"description\":\"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b\",\"breadcrumb\":{\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage\",\"url\":\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png\",\"contentUrl\":\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png\",\"width\":1041,\"height\":669},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\/\/www.creationline.com\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\",\"item\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AWS\",\"item\":\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/#website\",\"url\":\"https:\/\/www.creationline.com\/tech-blog\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616\",\"name\":\"lee\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g\",\"caption\":\"lee\"},\"description\":\"\u30e2\u30c0\u30f3\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30fc\u57fa\u76e4\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u30a2\u30fc\u30ad\u30c6\u30af\u30c8\u3068\u3057\u3066\u6d3b\u52d5\u3057\u3066\u3044\u307e\u3059\u3002 [\u8457\u66f8] \u30fbAmazon Cloud\u30c6\u30af\u30cb\u30ab\u30eb\u30ac\u30a4\u30c9\u2015EC2\/S3\u304b\u3089VPC\u307e\u3067\u5fb9\u5e95\u89e3\u6790 \u30fbAmazon Elastic MapReduce\u30c6\u30af\u30cb\u30ab\u30eb\u30ac\u30a4\u30c9 \u2015\u30af\u30e9\u30a6\u30c9\u578bHadoop\u3067\u5b9f\u73fe\u3059\u308b\u5927\u898f\u6a21\u5206\u6563\u51e6\u7406 \u30fbCypher\u30af\u30a8\u30ea\u30fc\u8a00\u8a9e\u306e\u4e8b\u4f8b\u3067\u5b66\u3076\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9Neo4j \u30fbNeo4j\u3092\u4f7f\u3046\u30b0\u30e9\u30d5\u578b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5165\u9580(\u5171\u8457) \u30fbRDB\u6280\u8853\u8005\u306e\u305f\u3081\u306eNoSQL\u30ac\u30a4\u30c9(\u5171\u8457)\",\"sameAs\":[\"https:\/\/x.com\/@awk256\"],\"url\":\"https:\/\/www.creationline.com\/tech-blog\/author\/lee\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277","og_locale":"ja_JP","og_type":"article","og_title":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b","og_url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2024-02-18T15:00:00+00:00","article_modified_time":"2024-02-19T08:58:29+00:00","og_image":[{"width":1041,"height":669,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png","type":"image\/png"}],"author":"lee","twitter_card":"summary_large_image","twitter_creator":"@awk256","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"lee","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"5\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277"},"author":{"name":"lee","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616"},"headline":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b","datePublished":"2024-02-18T15:00:00+00:00","dateModified":"2024-02-19T08:58:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277"},"wordCount":153,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png","keywords":["Avro","fastavro","Glue","Json","jsonschema","Protobuf"],"articleSection":["AWS","event-driven","Kafka","lee","Python"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277","url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277","name":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png","datePublished":"2024-02-18T15:00:00+00:00","dateModified":"2024-02-19T08:58:29+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616"},"description":"AWS, event-driven, Kafka, lee, Python |\u306f\u3058\u3081\u306b","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/schema-registry-1.png","width":1041,"height":669},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws\/69277#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative"},{"@type":"ListItem","position":3,"name":"AWS","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/aws"},{"@type":"ListItem","position":4,"name":"AWS Glue\u3092\u5229\u7528\u3057\u3066JSON\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7a9c09b6fc036bd56d9a7f7264389616","name":"lee","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/278a9c7ed6393635496209225c69f2d6caf4f4b360cf0c2a80ada723070d4f94?s=96&d=wp_user_avatar&r=g","caption":"lee"},"description":"\u30e2\u30c0\u30f3\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30fc\u57fa\u76e4\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u30a2\u30fc\u30ad\u30c6\u30af\u30c8\u3068\u3057\u3066\u6d3b\u52d5\u3057\u3066\u3044\u307e\u3059\u3002 [\u8457\u66f8] \u30fbAmazon Cloud\u30c6\u30af\u30cb\u30ab\u30eb\u30ac\u30a4\u30c9\u2015EC2\/S3\u304b\u3089VPC\u307e\u3067\u5fb9\u5e95\u89e3\u6790 \u30fbAmazon Elastic MapReduce\u30c6\u30af\u30cb\u30ab\u30eb\u30ac\u30a4\u30c9 \u2015\u30af\u30e9\u30a6\u30c9\u578bHadoop\u3067\u5b9f\u73fe\u3059\u308b\u5927\u898f\u6a21\u5206\u6563\u51e6\u7406 \u30fbCypher\u30af\u30a8\u30ea\u30fc\u8a00\u8a9e\u306e\u4e8b\u4f8b\u3067\u5b66\u3076\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9Neo4j \u30fbNeo4j\u3092\u4f7f\u3046\u30b0\u30e9\u30d5\u578b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5165\u9580(\u5171\u8457) \u30fbRDB\u6280\u8853\u8005\u306e\u305f\u3081\u306eNoSQL\u30ac\u30a4\u30c9(\u5171\u8457)","sameAs":["https:\/\/x.com\/@awk256"],"url":"https:\/\/www.creationline.com\/tech-blog\/author\/lee"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/69277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=69277"}],"version-history":[{"count":29,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/69277\/revisions"}],"predecessor-version":[{"id":70442,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/69277\/revisions\/70442"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/70250"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=69277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=69277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=69277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}