{"id":13392,"date":"2022-06-15T11:58:20","date_gmt":"2022-06-15T18:58:20","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=13392"},"modified":"2025-06-13T17:32:04","modified_gmt":"2025-06-14T00:32:04","slug":"lower-tco-sql-flatten_keys-json-arrays","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/lower-tco-sql-flatten_keys-json-arrays\/","title":{"rendered":"JSON \ubc30\uc5f4\uc744 \uc704\ud55c SQL++ FLATTEN_KEYS\ub85c TCO \uc808\uac10"},"content":{"rendered":"<p><span style=\"font-weight: 400\">\uc2a4\ud0a4\ub9c8\uac00 \uc798 \uc815\ub9bd\ub41c RDBMS\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uae30\ub2a5\uc774 \uc815\uc801\uc73c\ub85c \uc720\uc9c0\ub420 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uacbd\uc9c1\ub41c \uad6c\uc870\ub294 \uc548\uc815\uc131\uc744 \ubcf4\uc7a5\ud560 \uc218 \uc788\uc9c0\ub9cc \ube60\ub974\uac8c \ubcc0\ud654\ud558\ub294 \ube44\uc988\ub2c8\uc2a4 \uc694\uad6c\uc0ac\ud56d\uc5d0\ub294 \uc801\ud569\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc624\ub298\ub0a0 \uc870\uc9c1\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc778\ud504\ub77c\ub97c \ud604\ub300\ud654\ud558\uace0 RDBMS\uc5d0\uc11c NoSQL\ub85c \uc804\ud658\ud558\ub294 \uac83\uc744 \uace0\ub824\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 NoSQL \ubb38\uc11c \ubaa8\ub378\uc758 \uba87 \uac00\uc9c0 \uc7a5\uc810\uacfc \ucffc\ub9ac \uc131\ub2a5 \ubc0f \uc778\ub371\uc2a4 \uad6c\uc131\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud574 \ub370\uc774\ud130\uc640 \uc778\ub371\uc2a4\ub97c \uad6c\uc131\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubd05\ub2c8\ub2e4. \ub610\ud55c RDBMS \ub370\uc774\ud130 \ubaa8\ub378\uc744 Couchbase NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud560 \ub54c \uace0\ub824\ud560 \uc218 \uc788\ub294 \uc778\ub371\uc2a4 \uc804\ub7b5\uacfc \ucffc\ub9ac \uc131\ub2a5\uc744 \uac1c\uc120\ud558\uace0 \uc778\ub371\uc2a4 \uc218\ub97c \uc904\uc774\ub294 \ub370 Couchbase 7.1 FLATTEN_KEYS \uae30\ub2a5\uc774 \uc5b4\ub5bb\uac8c \ub3c4\uc6c0\uc774 \ub418\ub294\uc9c0\uc5d0 \ub300\ud574\uc11c\ub3c4 \uc124\uba85\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\ud6a8\uacfc\uc801\uc778 \uc778\ub371\uc2a4 \uc804\ub7b5\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc6b4\uc601\uc5d0\uc11c \uac00\uc7a5 \uc911\uc694\ud55c \uc694\uc18c \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \ucffc\ub9ac \uc131\ub2a5\uacfc \ub9ac\uc18c\uc2a4 \uad00\ub9ac \uc0ac\uc774\uc758 \uc801\uc808\ud55c \uade0\ud615\uc744 \uc720\uc9c0\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucea1\ucc98\ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c \ud574\ub2f9 \ub370\uc774\ud130\uc5d0 \ub300\ud55c \ucd5c\uc801\uc758 \uc561\uc138\uc2a4\ub97c \uc81c\uacf5\ud574\uc57c \ud569\ub2c8\ub2e4. \ud6a8\uacfc\uc801\uc778 \uc778\ub371\uc2a4 \uc804\ub7b5\uc5d0 \uc788\uc5b4\uc11c\ub294 NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub3c4 RDBMS\uc640 \ub2e4\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">RDBMS \uc0ac\uc6a9 \uc0ac\ub840<\/span><\/h2>\n<p><span style=\"font-weight: 400\">\ub2e4\uc74c \uc0ac\ud56d\uc744 \uace0\ub824\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <\/span><b>\ud638\ud154 <\/b><span style=\"font-weight: 400\">\uac1d\uccb4\uc758 <\/span><b>\uc5ec\ud589 \uc0d8\ud50c<\/b><span style=\"font-weight: 400\"> \ub370\uc774\ud130 \uc9d1\ud569\uc744 \ub9cc\ub4e4\uace0 \uc774 \uc815\ubcf4\ub97c \ucea1\ucc98\ud558\uae30 \uc704\ud574 RDBMS \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4. \uad00\uacc4\ud615 \ubaa8\ub378\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13393\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/06\/sql-flatten-keys-json-arrays-1.png\" alt=\"Relational model relationships\" width=\"512\" height=\"274\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-1.png 512w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-1-300x161.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-1-20x11.png 20w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/p>\n<p><span style=\"font-weight: 400\">\uadf8\ub9ac\uace0 <\/span><b>\ud638\ud154<\/b><span style=\"font-weight: 400\"> \uac1d\uccb4\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \uc138\ubd80 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. <\/span><b>\ud638\ud154.<\/b><span style=\"font-weight: 400\"> \ub610\ud55c <\/span><b>\ud638\ud154_\uac19\uc740<\/b> <span style=\"font-weight: 400\">\ub97c \ud074\ub9ad\ud55c \uace0\uac1d\uc758 \uc774\ub984\uc744 \uae30\ub85d\ud558\ub294 \uac1d\uccb4\uc785\ub2c8\ub2e4. <em>\uac19\uc740<\/em>\u00a0\ud638\ud154 \uc18c\uc15c \ubbf8\ub514\uc5b4 \ud398\uc774\uc9c0\uc5d0\uc11c \ud655\uc778\ud558\uc138\uc694. \ub610\ud55c<\/span><b> \ud638\ud154_\ub9ac\ubdf0<\/b><span style=\"font-weight: 400\"> \ub2e4\uc591\ud55c \uc11c\ube44\uc2a4 \ubc0f \ud3b8\uc758\uc2dc\uc124\uc5d0 \ub300\ud55c \ub313\uae00\uacfc \uc0c1\uc138 \ud3c9\uc810\uc744 \ud3ec\ud568\ud55c \ubaa8\ub4e0 \ud638\ud154 \ub9ac\ubdf0\ub97c \uae30\ub85d\ud558\ub294 \uac1d\uccb4\uc785\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">\ube44\uc988\ub2c8\uc2a4 \uc694\uad6c \uc0ac\ud56d<\/span><\/h2>\n<p><span style=\"font-weight: 400\">\uc0ac\uc6a9\uc790\uac00 \ubc29\ubb38\ud558\ub824\ub294 \ud2b9\uc815 \ub3c4\uc2dc\uc758 \ubaa8\ub4e0 \ud638\ud154\uc5d0 \ub300\ud55c \uc694\uc57d \ubcf4\uae30\ub97c \ubcfc \uc218 \uc788\ub3c4\ub85d \ucffc\ub9ac\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc694\uc57d\uc5d0\ub294 \uac01 \ud638\ud154\uc758 \ub9ac\ubdf0 \ud3c9\uc810\uacfc \uc0ac\uc6a9\uc790 \uc218\uac00 \ud3ec\ud568\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. <em>\uc88b\uc544\uc694<\/em> \ud638\ud154\uc785\ub2c8\ub2e4. \ubaa9\ub85d\uc744 \uc881\ud788\ub824\uba74 \ucffc\ub9ac\ub294 \ucd5c\uadfc \ub9ac\ubdf0(\uc774 \ub370\uc774\ud130 \uc138\ud2b8\uc758 \uacbd\uc6b0 2015\ub144)\uc5d0 \ucd08\uc810\uc744 \ub9de\ucdb0\uc57c \ud558\uba70 \ub9ac\ubdf0 \ud3c9\uc810\uc740 4\uc810 \uc774\uc0c1(5\uc810\uc740 \ucd5c\uace0 \ud3c9\uc810)\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">\uad00\uacc4\ud615 \ubaa8\ub378 \ucffc\ub9ac<\/span><\/h3>\n<pre class=\"decode-attributes:false lang:default decode:true\">SELECT  h.name hotel,\r\n  count(distinct l.name) liked_by,\u00a0\r\n  count(distinct r.author)\u00a0 review_author,\r\n  avg(r.ratings.Overall) avg_ratings\r\nFROM\u00a0 hotel h\r\n  INNER JOIN hotel_review r ON r.hotel_id = h.id\r\n  INNER JOIN hotel_like l ON l.hotel_id = h.id\r\nWHERE h.city='London'\r\n  AND \u00a0 r.ratings.Overall &gt;= 4\r\n  AND \u00a0 r.date &gt; '2015-01-01'\r\n  GROUP BY h.name\r\n  ORDER BY avg(r.ratings.Overall) DESC<\/pre>\n<h3><span style=\"font-weight: 400\">\uad00\uacc4\ud615 \ubaa8\ub378 \ucffc\ub9ac\uc758 \uc778\ub371\uc2a4<\/span><\/h3>\n<p><b>\ud638\ud154<\/b><span style=\"font-weight: 400\">:  \ub3c4\uc2dc \ubc0f \uc774\ub984\uc5d0 \ub300\ud55c \ud544\ud130\uac00 \uc788\uc73c\ubbc0\ub85c \uc0c9\uc778\uc774 \uc874\uc7ac\ud574\uc57c \ud569\ub2c8\ub2e4. \ud638\ud154 <\/span><b>id<\/b><span style=\"font-weight: 400\"> \uac00 \uc778\ub371\uc2a4\uc5d0 \ucd94\uac00\ub418\ub294 \uc774\uc720\ub294 JOIN\uc5d0 \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"expand-toggle:false decode-attributes:false lang:default decode:true\" style=\"padding-left: 40px\">CREATE INDEX adv_city_name_id ON `hotel`(`city`,`name`,`id`)<\/pre>\n<p><b>\ud638\ud154_\ub9ac\ubdf0<\/b><span style=\"font-weight: 400\">: \ud638\ud154 \ub9ac\ubdf0\uc5d0\ub294 \ub9ac\ubdf0 \ub0a0\uc9dc\uc640 \ub9ac\ubdf0 \ud3c9\uc810\uc774\ub77c\ub294 \ub450 \uac00\uc9c0 \ud544\ud130\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \ud544\ud130\uc5d0\ub294 \uba85\uc2dc\uc801\uc778 \uad00\uacc4\uac00 \uc5c6\uc73c\ubbc0\ub85c \uc774\uc911 \uacc4\uc0b0\uc744 \uc81c\uac70\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. <\/span><b>\ud638\ud154_\uac19\uc740 <\/b><span style=\"font-weight: 400\">\uadf8\ub9ac\uace0 <\/span><b>\ud638\ud154_\ub9ac\ubdf0<\/b><span style=\"font-weight: 400\">\ub97c \uc0ac\uc6a9\ud558\ubbc0\ub85c \uc774\ub97c \uc704\ud574 \ub9ac\ubdf0 \uc791\uc131\uc790\ub97c \uc5ec\uae30\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \ub9ac\ubdf0 \uc791\uc131\uc790\ub294 <em>hotel_id<\/em> \ud544\ub4dc\ub3c4 \uc778\ub371\uc2a4\uc5d0 \ucd94\uac00\ub418\ub294\ub370, \uc774\ub294 \uc678\ub798 \ud0a4\uc774\uace0 <em>JOIN<\/em>.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:default decode:true\" style=\"padding-left: 40px\">CREATE INDEX adv_ratings_Overall_date_hotel_id_author ON `hotel_review`(`ratings`.`Overall`,`date`,`hotel_id`,`author`)<\/pre>\n<p><b>\ud638\ud154_\ub9ac\ubdf0<\/b><span style=\"font-weight: 400\">: \ud544\ud130\uac00 \uc124\uc815\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc740 \ub3d9\uc548 <\/span><b>\ud638\ud154_\uac19\uc740<\/b><span style=\"font-weight: 400\">\uc758 \uacbd\uc6b0 \ub9ac\ubdf0\uc640 \uc88b\uc544\uc694 \uac04\uc5d0\ub294 \uad00\uacc4\uac00 \uc5c6\uc73c\ubbc0\ub85c \uc88b\uc544\uc694\uc758 \uc774\uc911 \uacc4\uc0b0\uc744 \uc81c\uac70\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub9ac\ubdf0\uc640 \uc88b\uc544\uc694 <em>hotel_id <\/em>\ud544\ub4dc\uac00 \uc778\ub371\uc2a4\uc5d0 \ucd94\uac00\ub418\ub294 \uc774\uc720\ub294 \uc774 \ud544\ub4dc\uac00 \uc678\ub798 \ud0a4\uc774\uba70 JOIN\uc5d0 \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:default decode:true\" style=\"padding-left: 40px\">CREATE INDEX adv_hotel_id_name ON `hotel_like`(`hotel_id`,`name`)<\/pre>\n<h3><span style=\"font-weight: 400\">\uad00\uacc4\ud615 \ubaa8\ub378 \ucffc\ub9ac\uc758 \uc2e4\ud589 \uacc4\ud68d<\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13394\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/06\/sql-flatten-keys-json-arrays-2-1024x469.png\" alt=\"Execution plan for relation model JSON query\" width=\"900\" height=\"412\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-1024x469.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-300x137.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-768x352.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-1536x704.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2-1320x605.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-2.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">\uc218\ud589\ud574\uc57c \ud560 \ud544\uc694\uc131\uc5d0 \uc8fc\ubaa9\ud558\uc138\uc694:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ub450 \uac1c\uc758 \uc870\uc778<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">3\uac1c\uc758 \uc778\ub371\uc2a4 \uc2a4\uce94(\uac01 \uac1c\uccb4\ub2f9 \ud558\ub098\uc529)<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400\">\ubb38\uc11c \ubaa8\ub378 \ubcf4\uae30<\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13396\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/06\/sql-flatten-keys-json-arrays-4.png\" alt=\"Document model view\" width=\"344\" height=\"392\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-4.png 344w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-4-263x300.png 263w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-4-300x342.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-4-18x20.png 18w\" sizes=\"auto, (max-width: 344px) 100vw, 344px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">\ubb38\uc11c \ubaa8\ub378\uc758 \uacbd\uc6b0 <\/span><b>\ud638\ud154_\uac19\uc740 <\/b><span style=\"font-weight: 400\">\ubc0f <\/span><b>\ud638\ud154_\ub9ac\ubdf0 <\/b><span style=\"font-weight: 400\">\uac1d\uccb4\ub294 \ud638\ud154 \uac1d\uccb4\uc5d0 \ubc30\uc5f4\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4.  \ubd80\ubaa8 \uac1d\uccb4\uc5d0 \ud56d\uc0c1 \uc790\uc2dd \uac1d\uccb4\ub97c \ubc30\uc5f4\ub85c \ud3ec\ud568\ud574\uc57c \ud55c\ub2e4\ub294 \uc5c4\uaca9\ud55c \uaddc\uce59\uc740 \uc5c6\uc9c0\ub9cc, \uc774 \uacbd\uc6b0\uc5d0\ub294 \ud56d\uc0c1 \ud568\uaed8 \uc561\uc138\uc2a4\ud558\uae30 \ub54c\ubb38\uc5d0 \uadf8\ub807\uac8c \ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400\">\ube44\uc815\uaddc\ud654\ub41c \ubb38\uc11c \ubaa8\ub378 \ucffc\ub9ac<\/span><\/h3>\n<pre class=\"decode-attributes:false lang:default decode:true\">SELECT h.name hotel,\r\n    COUNT(distinct l) liked_by,\r\n    COUNT(distinct r.author)\u00a0 review_author,\r\n    AVG(r.ratings.Overall) avg_ratings\r\n  FROM\u00a0 hotel h\r\n    UNNEST h.reviews AS r\u00a0\r\n    UNNEST\u00a0 h.public_likes AS l\u00a0\r\n  WHERE h.city='London'\r\n    AND \u00a0 r.ratings.Overall &gt;= 0\u00a0\r\n    AND \u00a0 r.date &gt; '2015-01-01'\r\n  GROUP BY h.name\r\n  ORDER BY avg(r.ratings.Overall) DESC<\/pre>\n<h3><span style=\"font-weight: 400\">\ube44\uc815\uaddc\ud654\ub41c \ubb38\uc11c \ubaa8\ub378\uc758 \uc778\ub371\uc2a4<\/span><\/h3>\n<pre class=\"decode-attributes:false lang:default decode:true\">CREATE INDEX adv_ALL_reviews_ratings_Overall_date_city\u00a0\r\n\u00a0ON `hotel`(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ALL ARRAY\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FLATTEN_KEYS(`r`.`ratings`.`Overall`,`r`.`date` DESC)\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FOR r IN `reviews` END,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0`city`)<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">\uba87 \uac00\uc9c0 \uc8fc\uc758\ud560 \uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uadf8\ub9ac\uace0 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sqlplusplus\/\">SQL++<\/a> \ucffc\ub9ac\ub294 \ub2e8\uc77c <\/span><b>\ud638\ud154<\/b><span style=\"font-weight: 400\"> \uac1d\uccb4 \uc0ac\uc774\uc5d0 \uba85\uc2dc\uc801\uc778 JOIN\uc744 \uc218\ud589\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. <\/span><b>\ud638\ud154<\/b> <span style=\"font-weight: 400\">\uac1d\uccb4\uc640 \uc790\uc2dd <\/span><b>\uac19\uc740 <\/b><span style=\"font-weight: 400\">\ub610\ub294 r<\/span><b>eview<\/b><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ucffc\ub9ac\ub294 \ubaa8\ub4e0 \ucffc\ub9ac \uc220\uc5b4\ub97c \ud3ec\ud568\ud558\ub294 \ub2e8\uc77c \uc778\ub371\uc2a4, \uc989 <\/span><b>hotel.city,<\/b><span style=\"font-weight: 400\"> \uc758 <\/span><b>reviews.ratings<\/b><span style=\"font-weight: 400\">\ubc0f <\/span><b>reviews.date<\/b><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ubc30\uc5f4\uc774 \uc778\ub371\uc2f1\ub420 \ub54c \uc778\ub371\uc2a4\ub294 \ub2e8\uc77c \ud0a4\uc5d0\ub9cc \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. FLATTEN_KEYS()\ub294 \ubc30\uc5f4\uc758 \ubcf5\ud569 \ud544\ub4dc\ub97c \ud5c8\uc6a9\ud558\ubbc0\ub85c \uc220\uc5b4\uac00 \uc5ec\ub7ec \ubc30\uc5f4 \ud544\ub4dc\uc5d0 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3><span style=\"font-weight: 400\">\ubb38\uc11c \ubaa8\ub378 \ucffc\ub9ac\uc758 \uc2e4\ud589 \uacc4\ud68d<\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13397\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/06\/sql-flatten-keys-json-arrays-5-1024x162.png\" alt=\"execution plan for the document model query\" width=\"900\" height=\"142\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-1024x162.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-300x47.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-768x121.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-1536x243.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5-1320x209.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-5.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">\ub2e4\uc74c\uc744 \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ub450 \uac1c\uc758 UNNEST(\ub2e8\uc77c \ubb38\uc11c\uc5d0 \uc788\uc73c\ubbc0\ub85c JOIN\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc74c)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ub2e8 \ud55c \ubc88\uc758 \uc778\ub371\uc2a4 \uc2a4\uce94\u00a0<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400\">\uc694\uc57d<\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13395\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/06\/sql-flatten-keys-json-arrays-3.png\" alt=\"Relational model converted to document model\" width=\"560\" height=\"194\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-3.png 560w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-3-300x104.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/06\/sql-flatten-keys-json-arrays-3-20x7.png 20w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n<p><span style=\"font-weight: 400\">\uad00\uacc4\ud615 \ubaa8\ub378\uc774 \ubb38\uc11c \ubaa8\ub378\uc5d0\uc11c \ub2e8\uc77c \uac1c\uccb4\ub85c \ube44\uc815\uaddc\ud654\ub41c \uacbd\uc6b0:<\/span><\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">SQL++ \ucffc\ub9ac\ub294 JOIN\uc744 \uc218\ud589\ud560 \ud544\uc694\uac00 \uc5c6\uc73c\ubbc0\ub85c \ub354 \uac04\ub2e8\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc5ec\ub7ec \uad00\uacc4\ud615 \ubaa8\ub378 \uc778\ub371\uc2a4\ub97c \ub2e8\uc77c \ubb38\uc11c \ubaa8\ub378\ub85c \uacb0\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Couchbase 7.1 FLATTEN_KEYS \uae30\ub2a5\uc740 \uc5ec\ub7ec \ubc30\uc5f4 \uc694\uc18c \uc220\uc5b4\ub97c \ub2e8\uc77c \uc778\ub371\uc2a4\ub85c \uacb0\ud569\ud569\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>\uc774\ub294 \ucd5c\uadfc\uc5d0 \uc81c\uacf5\ud55c \uc0c8\ub85c\uc6b4 \uae30\ub2a5 \uc911 \ud558\ub098\uc5d0 \ubd88\uacfc\ud569\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc744 \ucc38\uc870\ud558\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/whats-new-in-couchbase-server-7-1\/\" target=\"_blank\" rel=\"noopener\">Couchbase Server 7.1\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>An RDBMS with a well-established schema serves well when application functions remain static. While this rigid structure can guarantee stability, it doesn&#8217;t lend itself to fast-changing business requirements. Organizations today must consider modernizing their application infrastructure and moving from RDBMS [&hellip;]<\/p>","protected":false},"author":26326,"featured_media":11334,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1812],"tags":[9632,9654],"ppma_author":[8919],"class_list":["post-13392","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-database-tco","tag-flatten_keys"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays<\/title>\n<meta name=\"description\" content=\"Document database models are incredibly flexible vs. RDBMS. The Couchbase 7.1 FLATTEN_KEYS feature improves query performance and indexing.\" \/>\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.couchbase.com\/blog\/ko\/lower-tco-sql-flatten_keys-json-arrays\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays\" \/>\n<meta property=\"og:description\" content=\"Document database models are incredibly flexible vs. RDBMS. The Couchbase 7.1 FLATTEN_KEYS feature improves query performance and indexing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/lower-tco-sql-flatten_keys-json-arrays\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-15T18:58:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:32:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1575\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Binh Le\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Binh Le\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/\"},\"author\":{\"name\":\"Binh Le\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63\"},\"headline\":\"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays\",\"datePublished\":\"2022-06-15T18:58:20+00:00\",\"dateModified\":\"2025-06-14T00:32:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/\"},\"wordCount\":806,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg\",\"keywords\":[\"database TCO\",\"flatten_keys\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/\",\"name\":\"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg\",\"datePublished\":\"2022-06-15T18:58:20+00:00\",\"dateModified\":\"2025-06-14T00:32:04+00:00\",\"description\":\"Document database models are incredibly flexible vs. RDBMS. The Couchbase 7.1 FLATTEN_KEYS feature improves query performance and indexing.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg\",\"width\":1575,\"height\":628,\"caption\":\"Why NoSQL JSON Databases Are So Useful for Developers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63\",\"name\":\"Binh Le\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"caption\":\"Binh Le\"},\"description\":\"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/binh-le-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JSON \ubc30\uc5f4\uc744 \uc704\ud55c SQL++ FLATTEN_KEYS\ub85c TCO \uc808\uac10","description":"\ubb38\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubaa8\ub378\uc740 RDBMS\uc5d0 \ube44\ud574 \ub9e4\uc6b0 \uc720\uc5f0\ud569\ub2c8\ub2e4. Couchbase 7.1\uc758 FLATTEN_KEYS \uae30\ub2a5\uc740 \ucffc\ub9ac \uc131\ub2a5\uacfc \uc778\ub371\uc2f1\uc744 \uac1c\uc120\ud569\ub2c8\ub2e4.","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.couchbase.com\/blog\/ko\/lower-tco-sql-flatten_keys-json-arrays\/","og_locale":"ko_KR","og_type":"article","og_title":"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays","og_description":"Document database models are incredibly flexible vs. RDBMS. The Couchbase 7.1 FLATTEN_KEYS feature improves query performance and indexing.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/lower-tco-sql-flatten_keys-json-arrays\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-06-15T18:58:20+00:00","article_modified_time":"2025-06-14T00:32:04+00:00","og_image":[{"width":1575,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg","type":"image\/jpeg"}],"author":"Binh Le","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Binh Le","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/"},"author":{"name":"Binh Le","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63"},"headline":"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays","datePublished":"2022-06-15T18:58:20+00:00","dateModified":"2025-06-14T00:32:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/"},"wordCount":806,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg","keywords":["database TCO","flatten_keys"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/","url":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/","name":"JSON \ubc30\uc5f4\uc744 \uc704\ud55c SQL++ FLATTEN_KEYS\ub85c TCO \uc808\uac10","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg","datePublished":"2022-06-15T18:58:20+00:00","dateModified":"2025-06-14T00:32:04+00:00","description":"\ubb38\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubaa8\ub378\uc740 RDBMS\uc5d0 \ube44\ud574 \ub9e4\uc6b0 \uc720\uc5f0\ud569\ub2c8\ub2e4. Couchbase 7.1\uc758 FLATTEN_KEYS \uae30\ub2a5\uc740 \ucffc\ub9ac \uc131\ub2a5\uacfc \uc778\ub371\uc2f1\uc744 \uac1c\uc120\ud569\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/Why-NoSQL-JSON-Databases-Are-So-Usefulblogbanner.jpg","width":1575,"height":628,"caption":"Why NoSQL JSON Databases Are So Useful for Developers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/lower-tco-sql-flatten_keys-json-arrays\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Lower TCO With SQL++ FLATTEN_KEYS For JSON Arrays"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63","name":"Binh Le","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7","url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","caption":"Binh Le"},"description":"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/binh-le-2\/"}]}},"authors":[{"term_id":8919,"user_id":26326,"is_guest":0,"slug":"binh-le-2","display_name":"Binh Le","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","author_category":"","last_name":"Le","first_name":"Binh","job_title":"","user_url":"","description":"Binh Le\ub294 Couchbase \ucffc\ub9ac \uc11c\ube44\uc2a4\uc758 \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 Oracle\uc5d0\uc11c \uadfc\ubb34\ud558\uba70 Sales Cloud Analytics \ubc0f CRM OnDemand\uc758 \uc81c\ud488 \uad00\ub9ac \ud300\uc744 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uc601\uad6d \ube0c\ub77c\uc774\ud2bc \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/26326"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=13392"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13392\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/11334"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=13392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=13392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=13392"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=13392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}