{"id":12417,"date":"2021-11-08T12:38:53","date_gmt":"2021-11-08T20:38:53","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=12417"},"modified":"2025-06-13T21:25:11","modified_gmt":"2025-06-14T04:25:11","slug":"ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/","title":{"rendered":"ML\uacfc NoSQL\uc758 \ub9cc\ub0a8: \ubd84\uc11d\uc744 \uc704\ud55c Python \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218\uc640 SQL++\uc758 \ud1b5\ud569"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Python \uae30\ubc18 \uba38\uc2e0 \ub7ec\ub2dd \ubaa8\ub378\uc5d0\uc11c \ubd84\uc11d \uc778\uc0ac\uc774\ud2b8\ub97c \uc5bb\ub294 \ub370 \uc9c0\uc5f0\uc774 \ubc1c\uc0dd\ud55c\ub2e4\ub294 \uace0\uac1d\uacfc\uc758 \ub300\ud654\ub97c \ud1b5\ud574, \uc800\ud76c\ub294 \uc2e4\uc2dc\uac04\uc73c\ub85c \ub354 \ube60\ub978 \uc778\uc0ac\uc774\ud2b8\ub97c \uc81c\uacf5\ud558\ub294 Python\uc5d0\uc11c Couchbase Analytics\ub85c\uc758 \uc6d0\ud65c\ud55c \ud30c\uc774\ud504\ub77c\uc778\uc744 \ub9cc\ub4e4\uae30 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400\">\uc18c\uac1c<\/span><\/h3>\n<p><span style=\"font-weight: 400\">\ucd9c\uc2dc\uc640 \ud568\uaed8 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/server\/whats-new\/\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 7.0<\/span><\/a><span style=\"font-weight: 400\">\uc5d0\uc11c \ud0d0\uc0c9\ud560 \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc744 \ucd9c\uc2dc\ud558\uac8c \ub418\uc5b4 \uae30\uc058\uac8c \uc0dd\uac01\ud569\ub2c8\ub2e4. <\/span><b>\uac1c\ubc1c\uc790 \ubbf8\ub9ac\ubcf4\uae30 \ubaa8\ub4dc<\/b><span style=\"font-weight: 400\">\ud30c\uc774\uc36c UDF\uc640 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\uc758 \ud1b5\ud569.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uba38\uc2e0\ub7ec\ub2dd\uc740 \uc870\uc9c1\uc774 \uace0\uac1d\uc758 \ub2c8\uc988\ub97c \uc774\ud574\ud558\ub294 \ubc29\uc2dd\uc744 \uadfc\ubcf8\uc801\uc73c\ub85c \ubcc0\ud654\uc2dc\ucf30\uc2b5\ub2c8\ub2e4. \uc608\uce21 \ubd84\uc11d(\uace0\uac1d \uc774\ud0c8, \uace0\uac1d \uac10\uc815 \ub4f1) \ubc0f \uc7ac\ubb34 \ubaa8\ub378\ub9c1\uacfc \uac19\uc740 \uace0\uae09 \ubd84\uc11d \uc601\uc5ed\uc5d0\uc11c\ub294 \uc2e4\uc2dc\uac04\uc5d0 \uac00\uae4c\uc6b4 \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \ucc98\ub9ac\uc640 \uadf8\ub85c\ubd80\ud130 \uac00\uce58 \uc788\ub294 \uc778\uc0ac\uc774\ud2b8\ub97c \ucd94\ucd9c\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \uc758\uc874\ub3c4\uac00 \uc810\uc810 \ub354 \ucee4\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 Couchbase \uc778\uc2a4\ud134\uc2a4\ub97c \uc124\uc815\ud558\uace0, \uc6d0\uaca9 AnalyticsML \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub3d9\uae30\ud654\ud558\uace0, \ud544\uc694\ud55c \ub514\ub809\ud130\ub9ac\ub97c \ub9cc\ub4e4\uace0, \ud544\uc694\ud55c \ucf54\ub4dc \uc0d8\ud50c\uc744 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc744 \uc548\ub0b4\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774 \ube14\ub85c\uadf8\uc758 \ub300\uc0c1\uc740 Couchbase Server, \uba38\uc2e0 \ub7ec\ub2dd, Python \ubc0f Couchbase Analytics \uc11c\ube44\uc2a4\uc758 \uad50\ucc28\uc810\uc5d0 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uad00\uc2ec\uc774 \uc788\ub294 \ubaa8\ub4e0 \ubd84\uc785\ub2c8\ub2e4. \ub3c5\uc790\uac00 \uc774\ud574\ud560 \uac83\uc73c\ub85c \uc608\uc0c1\ub418\ub294 \uba87 \uac00\uc9c0 \uac1c\ub150\uc774 \uc81c\uc2dc\ub418\uc5b4 \uc788\uc9c0\ub9cc \uac71\uc815\ud558\uc9c0 \ub9c8\uc138\uc694. \ube60\ub974\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \ub9c1\ud06c\ub97c \ud3ec\ud568\ud560 \ud14c\ub2c8\uae4c\uc694. \uc804\ubc18\uc801\uc73c\ub85c, \uc870\uae08\uc774\ub77c\ub3c4 \uad00\uc2ec\uc774 \uc788\ub294 \uc0ac\ub78c\uc774\ub77c\uba74 \ub204\uad6c\ub098 \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ud1b5\ud574 ML \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \uc0c1\uc8fc\ud558\ub294 \ub370\uc774\ud130\uc5d0 \uc9d1\uc911\ud558\uc5ec \uc989\uac01\uc801\uc778 \uc778\uc0ac\uc774\ud2b8\ub97c \uc5bb\uc744 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcfc \uc218 \uc788\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">\uc804\uc81c \uc870\uac74 \ubc0f \uac00\uc815:<\/span><\/h3>\n<h4><span style=\"font-weight: 400\">\uc9c0\uc2dd\/\uc774\ud574:<\/span><\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84: <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/architecture-overview.html\"><span style=\"font-weight: 400\">https:\/\/docs.couchbase.com\/server\/current\/learn\/architecture-overview.html<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ub3c4\ucee4\uc5d0 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 \uc124\uce58\ud558\uae30: <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/getting-started-docker.html#multi-node-cluster-one-host\"><span style=\"font-weight: 400\">https:\/\/docs.couchbase.com\/server\/current\/install\/getting-started-docker.html#multi-node-cluster-one-host<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4: <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/analytics\/introduction.html\"><span style=\"font-weight: 400\">https:\/\/docs.couchbase.com\/server\/current\/analytics\/introduction.html<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sci-kit Learn\uc744 \uc0ac\uc6a9\ud55c \uac10\uc815 \ubd84\uc11d: <\/span><a href=\"https:\/\/scikit-learn.org\/stable\/tutorial\/basic\/tutorial.html\"><span style=\"font-weight: 400\">https:\/\/scikit-learn.org\/stable\/tutorial\/basic\/tutorial.html<\/span><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400\">\ud658\uacbd \uad6c\uc131:<\/span><\/h4>\n<p><span style=\"font-weight: 400\">\ub610\ud55c \uc544\ub798 \ub2e8\uacc4\ub97c \ub530\ub974\uae30 \uc704\ud574\uc11c\ub294 \uc81c\ub300\ub85c \uc791\ub3d9\ud558\ub294 Couchbase \uad6c\ud604\uc774 \ud544\uc694\ud569\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uae30\uc874 Python v3.8 \uc774\uc0c1 IDE(\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 VSCode\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4).<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ucef4\ud4e8\ud130\uc5d0 \uc124\uce58\ub41c \ub3c4\ucee4 \ub370\uc2a4\ud06c\ud1b1<\/span><\/li>\n<li style=\"font-weight: 400\">\n<pre class=\"\">The code samples will be formatted to indicate what should be included in your sample<\/pre>\n<\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">\uba85\ub839\uc904 \uc0d8\ud50c\uc758 \ud615\uc2dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <\/span><\/i><i><span style=\"font-weight: 400\">\uc774\ud0e4\ub9ad\uccb4<\/span><\/i><i><span style=\"font-weight: 400\"> \ub97c \uc785\ub825\ud558\uc5ec \uc785\ub825\ud574\uc57c \ud558\ub294 \ud56d\ubaa9\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4.<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Python \uc608\uc81c\uc5d0\ub294 \ud544\uc694\ud55c \ubaa8\ub4e0 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc2dd\ubcc4\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4(sklearn\uc740 scikit-learn\uc5d0\uc11c \uac00\uc838\uc634). \ud574\ub2f9 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc5c6\ub294 \uacbd\uc6b0 '<\/span><i><span style=\"font-weight: 400\">pip3 \uc124\uce58<\/span><\/i><span style=\"font-weight: 400\">'<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc774 \ube14\ub85c\uadf8\uc5d0 \uc0ac\uc6a9\ub41c \ub450 \ub370\uc774\ud130 \uc138\ud2b8\ub294 kaggle\uc5d0\uc11c (<\/span><a href=\"https:\/\/www.kaggle.com\/stefanoleone992\/rotten-tomatoes-movies-and-critic-reviews-dataset\"><span style=\"font-weight: 400\">https:\/\/www.kaggle.com\/stefanoleone992\/rotten-tomatoes-movies-and-critic-reviews-dataset<\/span><\/a><span style=\"font-weight: 400\">). \uc774 \ud30c\uc77c\uc740 \ub2e4\uc18c \ud070 \ud30c\uc77c\uc774\ubbc0\ub85c \ub9c1\ud06c\ub97c \ud1b5\ud574 \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 \uc124\uc815\ud558\uae30:<\/span><\/h4>\n<p><span style=\"font-weight: 400\">\uc774 \uc139\uc158\uc5d0\uc11c\ub294 Couchbase Server\ub97c \uc124\uce58\ud558\uace0 \uad6c\uc131\ud569\ub2c8\ub2e4.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ud130\ubbf8\ub110 \uba85\ub839\uc904\uc5d0\uc11c \ub178\ub4dc('cb-analytics' \ubc0f 'cb')\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/span>\n<ol>\n<li style=\"font-weight: 400\">\n<pre class=\"\">docker run -d --name cb-analytics couchbase:7.0.2<\/pre>\n<\/li>\n<li style=\"font-weight: 400\">\n<pre class=\"\">docker run -d --name cb -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase<\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc778\uc2a4\ud134\uc2a4\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc2dc\uc791\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4:<\/span>\n<ol>\n<li><span style=\"font-weight: 400\">\ub3c4\ucee4 \ub85c\uadf8 DB1<\/span><\/li>\n<li><\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ucee8\ud14c\uc774\ub108\uac00 \uc2dc\uc791\ub418\uc5c8\ub2e4\uba74 \ucd9c\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \uc2dc\uc791\ud574\uc57c \ud569\ub2c8\ub2e4:<\/span>\n<ol>\n<li>\n<pre>Starting Couchbase Server -- Web UI available at https:\/\/:8091<\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">cb \ubc0f cb-analytics\uc758 \ub85c\uceec IP \uc8fc\uc18c\ub97c \ud655\uc778\ud558\uc138\uc694:<\/span>\n<ol>\n<li style=\"font-weight: 400\">\n<pre>docker inspect --format '{{ .NetworkSettings.IPAddress }}' cb<\/pre>\n<\/li>\n<li style=\"font-weight: 400\">\n<pre>docker inspect --format '{{ .NetworkSettings.IPAddress }}' cb-analytics<\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12418 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/pythonudf-1024x175.png\" alt=\"\" width=\"900\" height=\"154\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-1024x175.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-300x51.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-768x131.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-1536x262.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf-1320x225.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/pythonudf.png 1600w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400\">5. 5. <\/span><i><span style=\"font-weight: 400\">https:\/\/ localhost:8091<\/span><\/i><span style=\"font-weight: 400\"> \ub97c \ud074\ub9ad\ud558\uc5ec \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc778\uc2a4\ud134\uc2a4 \uc124\uc815\uc744 \uc2dc\uc791\ud558\uace0 '<\/span><i><span style=\"font-weight: 400\">\uc0c8 \ud074\ub7ec\uc2a4\ud130 \uc124\uc815<\/span><\/i><span style=\"font-weight: 400\">r'\uc744 \ud074\ub9ad\ud558\uace0 \uc815\uc0c1\uc801\uc73c\ub85c \uc124\uc815 \ub9c8\ubc95\uc0ac\ub97c \uc9c4\ud589\ud569\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12419 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/server-1024x684.png\" alt=\"\" width=\"900\" height=\"601\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-1024x684.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-300x200.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-768x513.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-400x267.png 400w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-450x300.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/server.png 1060w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<ol>\n<li style=\"list-style-type: none\"><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 \uc774\ub984\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <\/span><b>'cb<\/b><span style=\"font-weight: 400\">' \ubc0f '<\/span><b>CB-\ubd84\uc11d<\/b><span style=\"font-weight: 400\">' \uc0ac\uc6a9\uc790 \uc774\ub984\uc73c\ub85c <em>'<\/em><\/span><em><span style=\"font-weight: 400\">\uad00\ub9ac\uc790<\/span><\/em><span style=\"font-weight: 400\"><em>'<\/em> \ubc0f \ube44\ubc00\ubc88\ud638 '<\/span><em><span style=\"font-weight: 400\">\ube44\ubc00\ubc88\ud638<\/span><\/em><span style=\"font-weight: 400\">'<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uccab \ubc88\uc9f8 Couchbase Server \ub178\ub4dc(cb)\uc5d0\uc11c \ud074\ub7ec\uc2a4\ud130\uac00 \ucd08\uae30\ud654\ub41c \ud6c4, \ub2e4\uc74c \ub2e8\uacc4\ub294 cb-analytics\uc758 Couchbase Server \ub178\ub4dc\ub97c \ud074\ub7ec\uc2a4\ud130\uc5d0 \ucd94\uac00\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Couchbase \uc6f9 \ucf58\uc194\uc5d0\uc11c \uc11c\ubc84 \ud0ed\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec \uc11c\ubc84 \ucd94\uac00\ub97c \ud074\ub9ad\ud569\ub2c8\ub2e4. \uadf8\ub7ec\uba74 '\uc11c\ubc84 \ub178\ub4dc \ucd94\uac00' \ub300\ud654 \uc0c1\uc790\uac00 \uc5f4\ub9bd\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12420 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/servernode-776x1024.png\" alt=\"\" width=\"776\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode-776x1024.png 776w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode-227x300.png 227w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode-768x1013.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode-300x396.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode-15x20.png 15w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/servernode.png 1060w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ud638\uc2a4\ud2b8 \uc774\ub984\/IP \uc8fc\uc18c \ud544\ub4dc\uc5d0 \uc774\uc804\uc5d0 cb\uc5d0 \ub300\ud574 \ucea1\ucc98\ud55c IP \uc8fc\uc18c\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc11c\ubc84 \ucd94\uac00\ub97c \ud074\ub9ad\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130 \uad6c\uc131\uc5d0 \ub178\ub4dc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">cb \ubc0f cb-analytics\uac00 \ud074\ub7ec\uc2a4\ud130 \uad6c\uc131\uc5d0 \uc131\uacf5\uc801\uc73c\ub85c \ucd94\uac00\ub418\uba74 \uc7ac\ubc38\ub7f0\uc2f1\uc744 \ud074\ub9ad\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \uc0c8 \ub178\ub4dc\ub97c \ud65c\uc131\ud654\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ubc84\ud0b7 \ub450 \uac1c\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \ud558\ub098\ub294 'movies'\uc6a9\uc774\uace0 \ub2e4\ub978 \ud558\ub098\ub294 'movie_reviews'\uc6a9\uc785\ub2c8\ub2e4:<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12421 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/databucket.png\" alt=\"\" width=\"531\" height=\"438\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket.png 531w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket-300x247.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket-20x16.png 20w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12422 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/databucket2.png\" alt=\"\" width=\"530\" height=\"436\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket2.png 530w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket2-300x247.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/databucket2-20x16.png 20w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc774\uc81c \ub2e8\uc77c \ud638\uc2a4\ud2b8\uc758 \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uba40\ud2f0\ub178\ub4dc Couchbase \ud074\ub7ec\uc2a4\ud130\uac00 \uc0dd\uacbc\uc2b5\ub2c8\ub2e4. \ub450 \uac1c\uc758 \ubc84\ud0b7\uacfc Couchbase \uc778\uc2a4\ud134\uc2a4\ub97c \uc2e4\ud589\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4(\uc790\uc138\ud55c \ub0b4\uc6a9\uc774 \ud544\uc694\ud55c \uacbd\uc6b0, \uc5ec\uae30 <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/getting-started-docker.html#multi-node-cluster-one-host\"><span style=\"font-weight: 400\">\ub2e8\uacc4\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30<\/span><\/a><span style=\"font-weight: 400\">).\u00a0<\/span><\/li>\n<\/ul>\n<p><b>\uacbd\uace0: \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub294 \uac1c\ubc1c\uc790 \ubbf8\ub9ac \ubcf4\uae30 \ubaa8\ub4dc\uc5ec\uc57c \ud569\ub2c8\ub2e4. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub97c \uc774 \ubaa8\ub4dc\ub85c \uc124\uc815\ud558\ub294 \uac83\uc740 \ubcf5\uad6c\ud560 \uc218 \uc5c6\ub294 \ubcc0\uacbd\uc774\ubbc0\ub85c \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc774\ub098 \uc911\uc694\ud55c \uc2dc\uc2a4\ud15c\uc5d0\uc11c\ub294 \uc774 \ubcc0\uacbd\uc744 \uc218\ud589\ud558\uc9c0 \uc54a\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">\uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0 \ubaa8\ub4dc\uc5d0\uc11c Couchbase Server\ub97c \uc124\uc815\ud558\ub824\uba74 \uba85\ub839\uc904\uc5d0\uc11c \ub2e4\uc74c\uc744 \uc2e4\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<pre>\/opt\/couchbase\/bin\/couchbase-cli enable-developer-preview -c localhost:8091 -u Administrator \\ -p password --enable<\/pre>\n<h4><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12423 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/password-enable-1024x122.png\" alt=\"\" width=\"900\" height=\"107\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-1024x122.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-300x36.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-768x91.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-1536x182.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-20x2.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable-1320x157.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/password-enable.png 1600w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/h4>\n<p><span style=\"font-weight: 400\">\ud30c\uc77c \uc2dc\uc2a4\ud15c \uc124\uc815\ud558\uae30:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc774 \uc5f0\uc2b5 \ubc0f \uad50\uc721 \ub370\uc774\ud130 \uc138\ud2b8\uc758 \ud30c\uc77c\uc740 \ub2e4\uc74c \ub9c1\ud06c\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/AnalyticsML\"><span style=\"font-weight: 400\">\uae43\ud5c8\ube0c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12424 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/githubrepo-1024x159.png\" alt=\"\" width=\"900\" height=\"140\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-1024x159.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-300x47.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-768x120.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-1536x239.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo-1320x205.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/githubrepo.png 1600w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ucf58\ud150\uce20\ub97c \ub2e4\ub978 \ud65c\ub3d9(\uc608: \uc608\uc81c\/AnalyticsML)\uacfc \ubd84\ub9ac\ud558\uae30 \uc704\ud574 \uc791\uc5c5\ud560 \ud3f4\ub354\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud558\uba70, \uadf8 \ud3f4\ub354 \uc548\uc5d0 '<\/span><i><span style=\"font-weight: 400\">\ud30c\uc774\ud504\ub77c\uc778<\/span><\/i><span style=\"font-weight: 400\">'.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12425 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/11\/github.png\" alt=\"\" width=\"687\" height=\"156\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/github.png 687w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/github-300x68.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/github-20x5.png 20w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/p>\n<p>Docker\uc5d0\uc11c \ud544\uc694\ud55c Couchbase \uc11c\ubc84 \ud658\uacbd\uc744 \uc124\uc815\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4. 2\ubd80\uc5d0\uc11c\ub294 \ud544\uc694\ud55c \ucf54\ub4dc \uc0d8\ud50c\uc744 \uc124\uc815\ud558\uace0 \ud568\uc218\ub97c \uac00\uc838\uc628 \ud6c4 \ub9c8\uc9c0\ub9c9\uc73c\ub85c Couchbase Analytics\uc5d0\uc11c \uac10\uc131 \ubd84\uc11d \uae30\ub2a5\uc744 \uc2e4\ud589\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694? \uc5ec\uae30\uc5d0\uc11c ConnectONLINE \uc138\uc158 \uc804\uccb4\ub97c \uc2dc\uccad\ud558\uc138\uc694:<\/span><\/p>\n<p><iframe loading=\"lazy\" title=\"\uba38\uc2e0 \ub7ec\ub2dd\uacfc NoSQL\uc758 \ub9cc\ub0a8: \ud30c\uc774\uc36c UDF - CBConnect21\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/nyHUKfTMKDQ?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p><b data-stringify-type=\"bold\">\uac10\uc0ac<\/b><br \/>\n\ub355\ubd84\uc5d0\u00a0<b data-stringify-type=\"bold\">\uc544\ub204\uc988 \ucf54\ud0c0\ub9ac,\u00a0<\/b>\uc9c0\ub09c \uc5ec\ub984\uc5d0 \uc774 \uc11c\ube44\uc2a4\ub97c \ucc98\uc74c \uc2dc\uc791\ud558\uace0 \uc2dc\uc791\ud558\uac8c \ud574\uc900 Couchbase \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc11c\ube44\uc2a4\uc758 \uc5ec\ub984 \uc81c\ud488 \uad00\ub9ac \uc778\ud134\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \ub355\ubd84\uc5d0\u00a0<b data-stringify-type=\"bold\">\uc774\ub4dc\ub9ac\uc2a4 \ubaa8\ud2f0\uc648\ub77c<\/b>, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc11c\ube44\uc2a4 \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790, \uadf8\ub9ac\uace0\u00a0<b data-stringify-type=\"bold\">\uc774\uc548 \ub9e5\uc2a8<\/b>\ubcf4\ub2e4 \uae30\ub2a5\uc801\uc778 \ube14\ub85c\uadf8\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574 \ud3b8\uc9d1 \uc791\uc5c5\uc744 \ud574\uc900 Couchbase \ubd84\uc11d \uc11c\ube44\uc2a4\uc758 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc5d0\uac8c \uac10\uc0ac\ub97c \ud45c\ud569\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>After conversations with our customers about the delay in obtaining analytical insights from their Python-based machine learning models, we set out to create a seamless pipeline from Python to Couchbase Analytics that returns faster insights in real time.\u00a0 Introduction With [&hellip;]<\/p>","protected":false},"author":79257,"featured_media":12429,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2294,1816,9139,1812],"tags":[8907,1519,2140,1725],"ppma_author":[9482,9483],"class_list":["post-12417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","category-couchbase-server","category-python","category-n1ql-query","tag-couchbase-server-7-0","tag-docker","tag-machine-learning","tag-nosql-database"],"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>ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Learn about a new feature that you can explore in Developer Preview mode: integration of Python UDFs with Couchbase Analytics\" \/>\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\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics\" \/>\n<meta property=\"og:description\" content=\"Learn about a new feature that you can explore in Developer Preview mode: integration of Python UDFs with Couchbase Analytics\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-08T20:38:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:25:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Muk Sreenivasan, Anuj Kothari\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Muk Sreenivasan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\"},\"author\":{\"name\":\"Muk Sreenivasan\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b37fc76b5459210102cef15674423031\"},\"headline\":\"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics\",\"datePublished\":\"2021-11-08T20:38:53+00:00\",\"dateModified\":\"2025-06-14T04:25:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\"},\"wordCount\":890,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg\",\"keywords\":[\"Couchbase Server 7.0\",\"docker\",\"Machine Learning (ML)\",\"NoSQL Database\"],\"articleSection\":[\"Couchbase Analytics\",\"Couchbase Server\",\"Python\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\",\"name\":\"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg\",\"datePublished\":\"2021-11-08T20:38:53+00:00\",\"dateModified\":\"2025-06-14T04:25:11+00:00\",\"description\":\"Learn about a new feature that you can explore in Developer Preview mode: integration of Python UDFs with Couchbase Analytics\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics\"}]},{\"@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\/b37fc76b5459210102cef15674423031\",\"name\":\"Muk Sreenivasan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/194f54236bbc53ba3b1b5550c654d008\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png\",\"caption\":\"Muk Sreenivasan\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/muk-sreenivasan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics - The Couchbase Blog","description":"\uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0 \ubaa8\ub4dc\uc5d0\uc11c \uc0b4\ud3b4\ubcfc \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc778 Python UDF\uc640 Couchbase Analytics\uc758 \ud1b5\ud569\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694.","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\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/","og_locale":"ko_KR","og_type":"article","og_title":"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics","og_description":"Learn about a new feature that you can explore in Developer Preview mode: integration of Python UDFs with Couchbase Analytics","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-11-08T20:38:53+00:00","article_modified_time":"2025-06-14T04:25:11+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Muk Sreenivasan, Anuj Kothari","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Muk Sreenivasan","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/"},"author":{"name":"Muk Sreenivasan","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b37fc76b5459210102cef15674423031"},"headline":"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics","datePublished":"2021-11-08T20:38:53+00:00","dateModified":"2025-06-14T04:25:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/"},"wordCount":890,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg","keywords":["Couchbase Server 7.0","docker","Machine Learning (ML)","NoSQL Database"],"articleSection":["Couchbase Analytics","Couchbase Server","Python","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/","url":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/","name":"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg","datePublished":"2021-11-08T20:38:53+00:00","dateModified":"2025-06-14T04:25:11+00:00","description":"\uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0 \ubaa8\ub4dc\uc5d0\uc11c \uc0b4\ud3b4\ubcfc \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc778 Python UDF\uc640 Couchbase Analytics\uc758 \ud1b5\ud569\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/luca-bravo-XJXWbfSo2f0-unsplash-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/ml-meets-nosql-integrating-python-user-defined-functions-with-n1ql-for-analytics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ML Meets NoSQL: Integrating Python User-Defined Functions with SQL++ for Analytics"}]},{"@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\/b37fc76b5459210102cef15674423031","name":"\ubb35 \uc2a4\ub9ac\ub2c8\ubc14\uc0b0","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/194f54236bbc53ba3b1b5550c654d008","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png","caption":"Muk Sreenivasan"},"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/muk-sreenivasan\/"}]}},"authors":[{"term_id":9482,"user_id":79257,"is_guest":0,"slug":"muk-sreenivasan","display_name":"Muk Sreenivasan","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/muk_sreenivasan.png"},"author_category":"","last_name":"Sreenivasan","first_name":"Muk","job_title":"","user_url":"","description":"Muk is a Senior Sales Engineer at Couchbase covering the west coast of the United States. He has over 20 years experience in product support, product development, product management and Sales. He lives and works in Silicon Valley."},{"term_id":9483,"user_id":0,"is_guest":1,"slug":"anuj-kothari","display_name":"Anuj Kothari","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/Screen-Shot-2021-11-08-at-12.21.36-PM.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/11\/Screen-Shot-2021-11-08-at-12.21.36-PM.png"},"author_category":"","last_name":"Kothari","first_name":"Anuj","job_title":"","user_url":"","description":"Anuj Kothari was a Product Management Intern at Couchbase working on the Analytics service. He also has experience in consulting, data science, and competitive debate. He is currently pursuing his undergraduate education in computer science and economics at the University of Pennsylvania."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/12417","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\/79257"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=12417"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/12417\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/12429"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=12417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=12417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=12417"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=12417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}