{"id":1437,"date":"2019-10-09T20:00:37","date_gmt":"2019-10-09T11:00:37","guid":{"rendered":"https:\/\/oboki.net\/workspace\/?p=1437"},"modified":"2019-10-28T00:11:01","modified_gmt":"2019-10-27T15:11:01","slug":"streamsets-data-collector-%eb%b0%8f-oracle-bulkload-%ec%84%a4%ec%b9%98","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/data-engineering\/streamsets\/streamsets-data-collector-%eb%b0%8f-oracle-bulkload-%ec%84%a4%ec%b9%98\/","title":{"rendered":"[StreamSets] Data Collector \ubc0f Oracle bulkload \uc124\uce58"},"content":{"rendered":"<h2>\uc2dc\uc2a4\ud15c \ud658\uacbd \uc124\uc815<\/h2>\n<p>StreamSets\ub294 openfile \uc81c\ud55c\uc744 32,768 \uc774\uc0c1\uc73c\ub85c \uc124\uc815\ud574\uc57c\ud55c\ub2e4. <code>sudo vim \/Library\/LaunchDaemons\/limit.maxfiles.plist<\/code> \ud30c\uc77c\uc744 \uc5f4\uc5b4 \uc544\ub798 \ub0b4\uc6a9 \uc785\ub825<\/p>\n<pre><code class=\"language-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt;\n&lt;plist version=&quot;1.0&quot;&gt;\n  &lt;dict&gt;\n    &lt;key&gt;Label&lt;\/key&gt;\n    &lt;string&gt;limit.maxfiles&lt;\/string&gt;\n    &lt;key&gt;ProgramArguments&lt;\/key&gt;\n    &lt;array&gt;\n      &lt;string&gt;launchctl&lt;\/string&gt;\n      &lt;string&gt;limit&lt;\/string&gt;\n      &lt;string&gt;maxfiles&lt;\/string&gt;\n      &lt;string&gt;32768&lt;\/string&gt;\n      &lt;string&gt;32768&lt;\/string&gt;\n    &lt;\/array&gt;\n    &lt;key&gt;RunAtLoad&lt;\/key&gt;\n    &lt;true\/&gt;\n    &lt;key&gt;ServiceIPC&lt;\/key&gt;\n    &lt;false\/&gt;\n  &lt;\/dict&gt;\n&lt;\/plist&gt;<\/code><\/pre>\n<p>\ud30c\uc77c \uc800\uc7a5 \ud6c4, \ub2e4\uc74c \uba85\ub839\uc73c\ub85c \uc801\uc6a9<\/p>\n<p><code>sudo launchctl unload -w \/Library\/LaunchDaemons\/limit.maxfiles.plist<\/code><br \/>\n<code>sudo launchctl load -w \/Library\/LaunchDaemons\/limit.maxfiles.plist<\/code><\/p>\n<h2>StreamSets Data Collector \ubc14\uc774\ub108\ub9ac \uc124\uce58 \ubc0f \uc2e4\ud589<\/h2>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \ubc14\uc774\ub108\ub9ac\ub97c \ub2e4\uc6b4\ubc1b\uc544 \uc555\ucd95\uc744 \ud574\uc81c\ud558\uba74 \uace7\ubc14\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">curl -O https:\/\/archives.streamsets.com\/datacollector\/3.10.1\/tarball\/streamsets-datacollector-all-3.10.1.tgz\ntar -xvf streamsets-datacollector-all-3.10.1.tgz\ncd streamsets-datacollector-3.10.1\nnohup bin\/streamsets dc &amp;<\/code><\/pre>\n<p><code>http:\/\/localhost:18630<\/code> \uacbd\ub85c\uc5d0 \uc811\uadfc\ud574\uc11c <code>id:admin<\/code>, <code>password:admin<\/code> \uc73c\ub85c \ub85c\uadf8\uc778\ud558\uba74 StreamSets\uc744 \uc774\uc6a9\ud574\ubcfc \uc218 \uc788\ub2e4.<\/p>\n<h2>Oracle Bulkload \ub77c\uc774\ube0c\ub7ec\ub9ac \uc124\uce58<\/h2>\n<pre><code class=\"language-bash\">curl -O https:\/\/archives.streamsets.com\/datacollector\/latest\/tarball\/enterprise\/streamsets-datacollector-oracle-lib-1.1.0.tgz\ntar -xvf streamsets-datacollector-oracle-lib-1.1.0.tgz\nmv streamsets-libs\/streamsets-datacollector-oracle-lib $SDC_HOME\/user-libs<\/code><\/pre>\n<p>\ub2e4\uc6b4\ubc1b\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc801\ub2f9\ud55c \uc704\uce58\uc5d0 \uc62e\uaca8\ub193\uc740 \ub4a4 \ud574\ub2f9 \uacbd\ub85c\uc5d0 \ub300\ud55c \ud658\uacbd\uc124\uc815\uc744 \ud574\uc57c\ud55c\ub2e4. <code>$SDC_HOME\/user-libs<\/code>\uc5d0 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc62e\uaca8\ub193\uc740 \uac83\uc744 \uae30\uc900\uc73c\ub85c \uc544\ub798 \ub450 \ud30c\uc77c\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uc218\uc815\ud55c \ub4a4 \uc7ac\uc2e4\ud589\ud55c\ub2e4.<\/p>\n<p><code>vim $SDC_HOME\/libexec\/sdc-env.sh<\/code><\/p>\n<pre><code class=\"language-bash\">export USER_LIBRARIES_DIR=&quot;$SDC_HOME\/user-libs&quot;<\/code><\/pre>\n<p><code>vim $SDC_HOME\/etc\/sdc-security.policy<\/code><\/p>\n<pre><code class=\"language-json\">\/\/ custom stage library directory\ngrant codebase &quot;file:\/\/$SDC_HOME\/user-libs\/-&quot; {\n  permission java.security.AllPermission;\n};<\/code><\/pre>\n<h3>ojdbc \uc124\uce58<\/h3>\n<p>Oracle bulkload \ub294 Oracle \ub370\uc774\ud130 \uc18c\uc2a4 \uc811\uadfc \uc2dc\uc5d0 jdbc \ub97c \uc774\uc6a9\ud558\uae30\ub54c\ubb38\uc5d0 \ubcc4\ub3c4\ub85c ojdbc \ub4dc\ub77c\uc774\ubc84\ub97c \uad6c\ud574 \uc124\uce58\ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. \uc6d0\ub798\ub294 \ud574\ub2f9 \uc2a4\ud14c\uc774\uc9c0 \uc124\uc815\uc5d0\uc11c External library \ub4f1\ub85d\uc744 \ud1b5\ud574\uc11c \uc124\uce58\ud574\uc8fc\uba74 \ub418\ub294\ub370 \uc774\ub807\uac8c \ud588\uc744\ub54c \uc790\uafb8 datasource not found \ub77c\ub294 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud558\uba74\uc11c \ud574\ub2f9 \ub4dc\ub77c\uc774\ubc84\ub97c \uc81c\ub300\ub85c \ub85c\ub529\ud574\uc8fc\uc9c0 \ubabb\ud558\ub294 \uac83\uc73c\ub85c \ubcf4\uc600\ub2e4.<\/p>\n<p>\uadf8\ub798\uc11c \uadf8\ub0e5 oracle bulkload \uacbd\ub85c\uc5d0 ojdbc \ud30c\uc77c\uc744 \uc704\uce58\uc2dc\ud0a4\uace0 \uc7ac\uae30\ub3d9\ud558\ub294 \uac83\uc73c\ub85c \uc6b0\ud68c<\/p>\n<pre><code class=\"language-bash\">cp ojdbc8.jar $SDC_HOME\/user-libs\/streamsets-datacollector-oracle-lib\/lib\/.<\/code><\/pre>\n<h2>\ud14c\uc2a4\ud2b8 Data Source \ubc0f Destination \uc900\ube44<\/h2>\n<h3>Oracle<\/h3>\n<p>\uc544\ub798 oracle-xe-11g \ub3c4\ucee4 \uc774\ubbf8\uc9c0\ub97c \uc774\uc6a9.<\/p>\n<pre><code class=\"language-bash\">docker pull deepdiver\/docker-oracle-xe-11g\ndocker run -d -p 49160:22 -p 49161:1521 deepdiver\/oracle-xe-11g<\/code><\/pre>\n<p>Oracle Listener \ub294 49161 \ud3ec\ud2b8\ub85c \uac1c\ubc29\ub3fc \uc788\uace0, \uc544\ub798 \uc8fc\uc18c\ub85c ssh \uc811\uadfc\ub3c4 \ud560 \uc218 \uc788\ub2e4. \uc544\ub798\uc640 \uac19\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc811\uc18d\ud55c \ub4a4<\/p>\n<pre><code class=\"language-bash\">ssh root@localhost -p 49160 # password: admin\nsu - oracle\nsqlplus autotest\/owncloud<\/code><\/pre>\n<p>\ub2e4\uc74c SQL\ub85c \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130 \uc0dd\uc131.<\/p>\n<pre><code class=\"language-sql\"> CREATE TABLE TAB_NUM_ALPHABET AS\n SELECT LEVEL                 AS NUM\n      , CHR(MOD(LEVEL,26)+65) AS CHR\n   FROM DUAL\nCONNECT BY LEVEL &lt;= 100000\n;\n\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\nINSERT INTO TAB_NUM_ALPHABET SELECT * FROM TAB_NUM_ALPHABET;\n\nCOMMIT;<\/code><\/pre>\n<h4>HDFS<\/h4>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c \ub300\ucda9 \uc124\uce58<\/p>\n<pre><code class=\"language-bash\">brew install hadoop<\/code><\/pre>\n<p><code>\/usr\/local\/Cellar\/hadoop\/3.2.1<\/code> \uacbd\ub85c\uc5d0 \ubc14\uc774\ub108\ub9ac\uac00 \uc124\uce58\ub418\uba70, <code>\/usr\/local\/Cellar\/hadoop\/3.2.1\/sbin<\/code> \uacbd\ub85c\uc5d0 \uc788\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub85c \uc81c\uc5b4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc2dc\uc2a4\ud15c \ud658\uacbd \uc124\uc815 StreamSets\ub294 openfile \uc81c\ud55c\uc744 32,768 \uc774\uc0c1\uc73c\ub85c \uc124\uc815\ud574\uc57c\ud55c\ub2e4. sudo vim \/Library\/LaunchDaemons\/limit.maxfiles.plist \ud30c\uc77c\uc744 \uc5f4\uc5b4 \uc544\ub798 \ub0b4\uc6a9 \uc785\ub825 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt; &lt;plist version=&quot;1.0&quot;&gt; &lt;dict&gt; &lt;key&gt;Label&lt;\/key&gt; &lt;string&gt;limit.maxfiles&lt;\/string&gt; &lt;key&gt;ProgramArguments&lt;\/key&gt; &lt;array&gt; &lt;string&gt;launchctl&lt;\/string&gt; &lt;string&gt;limit&lt;\/string&gt; &lt;string&gt;maxfiles&lt;\/string&gt; &lt;string&gt;32768&lt;\/string&gt; &lt;string&gt;32768&lt;\/string&gt; &lt;\/array&gt; &lt;key&gt;RunAtLoad&lt;\/key&gt; &lt;true\/&gt; &lt;key&gt;ServiceIPC&lt;\/key&gt; &lt;false\/&gt; &lt;\/dict&gt; &lt;\/plist&gt; \ud30c\uc77c \uc800\uc7a5 \ud6c4, \ub2e4\uc74c \uba85\ub839\uc73c\ub85c \uc801\uc6a9 sudo launchctl unload [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[163],"tags":[],"class_list":["post-1437","post","type-post","status-publish","format-standard","hentry","category-streamsets"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=1437"}],"version-history":[{"count":0,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1437\/revisions"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=1437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=1437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=1437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}