{"id":50304,"date":"2022-12-25T02:33:38","date_gmt":"2023-05-01T03:48:30","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/"},"modified":"2024-04-29T06:51:24","modified_gmt":"2024-04-28T22:51:24","slug":"%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/","title":{"rendered":"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1"},"content":{"rendered":"<h1>OCI\u4e91\u8fc1\u79fb\u6307\u5357\u7684\u6982\u5ff5\u662f\u4ec0\u4e48\uff1f<\/h1>\n<p>\u8fd9\u662f\u7531\u4e91\u5de5\u7a0b\u5e08\uff08@araidon\uff0c@kazunishi\uff0c@yama6\uff09\u7ec4\u6210\u7684\u56e2\u961f\uff0c\u81f4\u529b\u4e8e\u4ece\u672c\u5730\u73af\u5883\u3001AWS\u7b49\u591a\u4e2a\u5e73\u53f0\u8fc1\u79fb\u5230Oracle Cloud Infrastructure\u7684\u8fc1\u79fb\u9879\u76ee\uff0c\u5728\u672c\u7cfb\u5217\u6587\u7ae0\u4e2d\u603b\u7ed3\u4e86OCI\u8fc1\u79fb\u7684\u6b65\u9aa4\u3002\u6bcf\u4e00\u7bc7\u6587\u7ae0\u90fd\u4f1a\u4ee5\u793a\u4f8b\u5de5\u4f5c\u8d1f\u8f7d\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u8fc1\u79fb\u7684\u6b65\u9aa4\u6307\u5357\u3002<\/p>\n<h1>\u6211\u60f3\u8981\u8f6c\u79fb\u7684\u6837\u672c\u5de5\u4f5c\u8d1f\u8f7d<\/h1>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/3-0.png\" alt=\"image.png\" \/><\/div>\n<h1>\u670d\u52a1\u8fc1\u79fb\uff1a\u4e9a\u9a6c\u900a Keyspaces<\/h1>\n<p>\u672c\u6b21\u8fc1\u79fb\u7684\u5bf9\u8c61\u662fAmazon keyspaces\u3002<\/p>\n<p>\u5728\u524d\u8ff0\u7684AWS\u67b6\u6784\u56fe\u4e2d\uff0cDynamoDB\u88ab\u6807\u6ce8\u4e3a\u952e\u503c\u578b\u6570\u636e\u5e93\uff0c\u4f46\u672c\u6b21\u5c06\u6307\u5bfc\u8fc1\u79fb\u81f3Amazon keyspaces\u3002<\/p>\n<p>&nbsp;<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/7-0.png\" alt=\"image.png\" \/><\/div>\n<h1>NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5668\u662f\u4ec0\u4e48\u3002<\/h1>\n<p>OCI\u4e2d\u4e5f\u63d0\u4f9b\u4e86\u540d\u4e3aOracle NoSQL Database Cloud Service\u7684NoSQL\u6570\u636e\u5e93\u670d\u52a1\uff0c\u5e76\u4e14\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e2a\u540d\u4e3aNoSQL Database Migrator\u7684\u5de5\u5177\uff0c\u8be5\u5de5\u5177\u53ef\u4ee5\u652f\u6301\u4eceAmazon DynamoDB\u548cMongoDB\u7b49\u952e\u503c\u578b\u6570\u636e\u5e93\u8fdb\u884c\u8fc1\u79fb\u3002<\/p>\n<blockquote><p>\u60a8\u53ef\u4ee5\u4f7f\u7528Oracle NoSQL Database Migrator\u5c06NoSQL\u8868\u4ece\u4e00\u4e2a\u6570\u636e\u6e90\u8fc1\u79fb\u5230\u53e6\u4e00\u4e2a\u6570\u636e\u6e90\uff08\u5982\u672c\u5730\u6216\u4e91\u4e0a\u7684Oracle NoSQL Database\uff09\uff0c\u6216\u8005\u8fc1\u79fb\u5230\u7b80\u5355\u7684JSON\u6587\u4ef6\u4e0a\u3002\u60a8\u8fd8\u53ef\u4ee5\u5c06MongoDB\u683c\u5f0f\u7684JSON\u8f93\u5165\u6587\u4ef6\u3001DynamoDB\u683c\u5f0f\u7684JSON\u8f93\u5165\u6587\u4ef6\uff08\u5b58\u50a8\u5728AWS S3\u6e90\u6216\u6587\u4ef6\u4e2d\uff09\u6216CSV\u6587\u4ef6\u590d\u5236\u5230\u672c\u5730\u6216\u4e91\u4e0a\u7684NoSQL\u6570\u636e\u5e93\u4e2d\u3002<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h1>\u884c\u52a8\u65b9\u5f0f<\/h1>\n<p>\u5728NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u4e2d\uff0c\u5c06\u6e90\u6570\u636e\u5e93\u79f0\u4e3a&#8221;\u6e90&#8221;\uff0c\u76ee\u6807\u6570\u636e\u5e93\u79f0\u4e3a&#8221;\u6c47&#8221;\u3002<br \/>\n\u5728\u672c\u6307\u5357\u4e2d\uff0c\u6211\u4eec\u5c06\u4ecb\u7ecd\u5c06\u4ee5\u4e0b\u5185\u5bb9\u4f5c\u4e3a\u6e90\u6570\u636e\u5e93\u548c\u76ee\u6807\u6570\u636e\u5e93\u7684\u8fc1\u79fb\u793a\u4f8b\u3002<\/p>\n<div>\n<div class=\"post-table\">\u79fb\u884c\u5143\uff08\u30bd\u30fc\u30b9\uff09\u79fb\u884c\u5148\uff08\u30b7\u30f3\u30af\uff09csvOracle NoSQL Database Cloud Service<\/div>\n<\/div>\n<p>\u4f7f\u7528 NoSQL \u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\uff0c\u5c06\u5b58\u50a8\u5728\u5b89\u88c5\u4e86 NoSQL Database Migrator \u7684 EC2 \u5b58\u50a8\u4e2d\u7684 CSV \u6587\u4ef6\u4f5c\u4e3a\u6e90\u6570\u636e\uff0c\u8fc1\u79fb\u6570\u636e\u5230 Oracle NoSQL Database Cloud Service\u3002<\/p>\n<p>\u9664\u4e86\u6570\u636e\u8fc1\u79fb\uff0c\u8be5\u5de5\u5177\u5728\u6267\u884c\u8fc7\u7a0b\u4e2d\u8fd8\u53ef\u4ee5\u6784\u5efa Oracle NoSQL Database Cloud Service \u4f5c\u4e3a\u8fc1\u79fb\u76ee\u6807\uff08Sink\uff09\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/16-0.png\" alt=\"image.png\" \/><\/div>\n<h1>\u524d\u63d0\u6761\u4ef6 t\u00ed<\/h1>\n<p>\u5728\u6267\u884c\u8fc1\u79fb\u4e4b\u524d\uff0c\u6839\u636e\u672c\u6587\u6307\u5357\uff0c\u6211\u4eec\u7684\u524d\u63d0\u6761\u4ef6\u6709\u4e24\u70b9\u3002<\/p>\n<ol>\u8bf7\u786e\u4fdd\u5728\u4e0b\u9762\u7684\u6587\u7ae0\u4e2dAmazon EC2\u4e0a\u5df2\u5b89\u88c5Oracle NoSQL Database Migrator\uff0c\u5e76\u5904\u4e8e\u53ef\u6267\u884c\u72b6\u6001\u3002<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u8bf7\u786e\u4fdd\u5df2\u5c06\u4e0e\u8fd0\u884cOracle NoSQL Database Migrator\u7684EC2\u5b9e\u4f8b\u5173\u8054\u7684IAM\u89d2\u8272\u6388\u4e88\u4e86\u53ef\u64cd\u4f5cAmazon keyspaces\u6240\u9700\u7684IAM\u7b56\u7565\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>* \u8bf7\u53c2\u8003\u4ee5\u4e0b\u6587\u7ae0\u4ee5\u4e86\u89e3\u5982\u4f55\u6dfb\u52a0\u3002<\/ol>\n<p>&nbsp;<\/p>\n<h1>\u8f6c\u53d8\u987a\u5e8f<\/h1>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u521b\u5efaAmazon keyspaces<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u4f7f\u7528cql\u5c06csv\u5bfc\u51fa<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u521b\u5efaNoSQL Database\u7684DDL\u8bed\u53e5<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u6267\u884cNoSQL Database\u8fc1\u79fb\u5668<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u786e\u8ba4\u6267\u884c\u7ed3\u679c<\/ol>\n<h1>\u521b\u5efaAmazon keyspaces\u3002<\/h1>\n<p>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u6587\u7ae0\uff0c\u521b\u5efa\u4e00\u4e2a\u4f5c\u4e3a\u8fc1\u79fb\u6e90\u7684Amazon keyspaces\u3002<\/p>\n<p>&nbsp;<\/p>\n<h1>1-1. \u521b\u5efa\u952e\u7a7a\u95f4\u548c\u8868<\/h1>\n<p>\u5728\u6559\u7a0b\u7684\u7b2c\u4e00\u6b65\u4e2d\uff0c\u6211\u4eec\u5c06\u521b\u5efa\u4e00\u4e2a\u952e\u7a7a\u95f4\u548c\u4e00\u4e2a\u8868\u683c\u3002<br \/>\n\u5728&#8221;\u521b\u5efa\u952e\u7a7a\u95f4&#8221;\u4e0a\uff0c\u6211\u4eec\u4ece&#8221;\u4f7f\u7528\u63a7\u5236\u53f0&#8221;\u5f00\u59cb\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#8221;myGSGKeyspace&#8221;\u7684\u952e\u7a7a\u95f4\u3002<br \/>\n\u7136\u540e\uff0c\u5728&#8221;\u521b\u5efa\u8868\u683c&#8221;\u90e8\u5206\uff0c\u6211\u4eec\u4ece&#8221;\u4f7f\u7528\u63a7\u5236\u53f0&#8221;\u5f00\u59cb\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#8221;employees_tbl&#8221;\u7684\u8868\u683c\u3002<br \/>\n\u5728\u952e\u7a7a\u95f4\u7684\u7ed3\u6784\u4e2d\uff0c\u5c06&#8221;ID&#8221;\u6307\u5b9a\u4e3a\u5206\u533a\u952e\uff0c\u5c06&#8221;&#8221;\u6307\u5b9a\u4e3a\u6392\u5e8f\u952e\u3002<\/p>\n<div>\n<div class=\"post-table\">\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30ad\u30fc\u30bd\u30fc\u30c8\u30ad\u30fcIDdivision<\/div>\n<\/div>\n<p>\u8fd9\u4e2a\u5c06\u5728\u4ee5\u540e\u521b\u5efaDDL\u8bed\u53e5\u65f6\u9700\u8981\u8003\u8651\u5230\u3002<\/p>\n<h1>1-2. \u63d2\u5165\u6837\u672c\u6570\u636e<\/h1>\n<p>\u5728\u7b2c2\u6b65\u4e2d\uff0c\u6211\u4eec\u5c06\u5411\u8868\u683c\u4e2d\u63d2\u5165\u548c\u52a0\u8f7d\u6570\u636e\uff0c\u5e76\u5411\u521b\u5efa\u7684\u8868\u683c\u4e2d\u63d2\u5165\u793a\u4f8b\u6570\u636e\u3002\u672c\u6b21\u6211\u4eec\u5c06\u4f7f\u7528cqlsh\uff0c\u4ece\u793a\u4f8b\u6570\u636e\u6587\u4ef6\uff08employees.csv\uff09\u4e2d\u63d2\u5165\u6570\u636e\u3002<\/p>\n<h1>1-2-1. \u51c6\u5907\u6837\u672c\u6570\u636e<\/h1>\n<p>\u8bf7\u4ece\u4e0b\u9762\u4e0b\u8f7d\u793a\u4f8b\u6570\u636e\u5e76\u5728\u672c\u5730\u89e3\u538b\u7f29\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u5c06\u6587\u4ef6\u4e0a\u4f20\u5230Cloud Shell\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5c06\u6587\u4ef6\u4eceCloud Shell\u4f20\u8f93\u5230EC2\u3002<\/p>\n<pre class=\"post-pre\"><code>$scp -i pem\u30ad\u30fc\u540d employees.csv ec2-user@EC2\u306e\u30d1\u30d6\u30ea\u30c3\u30afIP\u30a2\u30c9\u30ec\u30b9:\/home\/ec2-user\r\n<\/code><\/pre>\n<h1>1-2-2. \u5b89\u88c5cqlsh<\/h1>\n<p>\u4e3a\u4e86\u5b89\u88c5cqlsh\uff0c\u9996\u5148\u5c06python3\u5b89\u88c5\u5230Amazon EC2\u4e0a\u3002<\/p>\n<pre class=\"post-pre\"><code>$sudo dnf install python3.11\r\n<\/code><\/pre>\n<p>\u5b89\u88c5python3-pip\u3002<\/p>\n<pre class=\"post-pre\"><code>$sudo dnf install python3-pip\r\n<\/code><\/pre>\n<p>\u5b89\u88c5 cqlsh-expansion\u3002<\/p>\n<pre class=\"post-pre\"><code>$python3 -m pip install --user cqlsh-expansion\r\n$pip3 install --user cqlsh-expansion\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u7248\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code>$cqlsh-expansion --version\r\ncqlsh 6.1.0\r\n<\/code><\/pre>\n<p>\u5f53\u7248\u672c\u8f93\u51fa\u540e\uff0c\u5b89\u88c5\u5c31\u5b8c\u6210\u4e86\u3002<\/p>\n<h1>1-2-3. \u901a\u8fc7cqlsh\u8fde\u63a5\u5230Amazon KeySpaces\u3002<\/h1>\n<p>\u4f7f\u7528AWS CLI\u6765\u8bbe\u7f6e\u9ed8\u8ba4\u533a\u57df\u3002<\/p>\n<pre class=\"post-pre\"><code>$aws configure\r\n\u2026\r\nDefault region name [None]: ap-northeast-1\r\n<\/code><\/pre>\n<p>\u6211\u5c06\u4f7f\u7528cqlsh\u4e0eAmazon keyspaces\u5efa\u7acbSSL\u8fde\u63a5\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cqlsh-expansion cassandra.ap-northeast-1.amazonaws.com 9142 --ssl\r\nConnected to Amazon Keyspaces at cassandra.ap-northeast-1.amazonaws.com:9142\r\n[cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]\r\nUse HELP for help.\r\ncqlsh current consistency level is ONE.\r\ncqlsh&gt; \r\n<\/code><\/pre>\n<p>\u4e00\u65e6\u8fde\u63a5\u786e\u8ba4\u6210\u529f\u540e\uff0c\u5c06\u663e\u793acqlsh\u63d0\u793a\u7b26\uff0c\u60a8\u53ef\u4ee5\u4ece\u8fd9\u91cc\u5f00\u59cb\u64cd\u4f5c\u3002<br \/>\n\u8fd9\u91cc\u6307\u5b9a\u4e86\u952e\u7a7a\u95f4\u3002<\/p>\n<pre class=\"post-pre\"><code>cqlsh&gt; USE \"myGSGKeyspace\" ;\r\ncqlsh:myGSGKeyspace&gt; \r\n<\/code><\/pre>\n<p>\u8bbe\u5b9a\u4e66\u5199\u7684\u4e00\u81f4\u6027\u6c34\u5e73\u3002<\/p>\n<pre class=\"post-pre\"><code>cqlsh&gt; CONSISTENCY LOCAL_QUORUM;\r\nConsistency level set to LOCAL_QUORUM.\r\n<\/code><\/pre>\n<h1>1-2-4. \u63d2\u5165\u6837\u672c\u6570\u636e<\/h1>\n<p>\u5c06\u6837\u672c\u6570\u636e\u63d2\u5165\u5230keyspaces\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>COPY employees_tbl (id,name,project,region,division,role,pay_scale,vacation_hrs,manager_id) \r\nFROM 'path-to-the-csv-file\/employees.csv' WITH delimiter=',' AND header=TRUE ;\r\n<\/code><\/pre>\n<p>\u6267\u884c\u4ee5\u4e0b\u67e5\u8be2\uff0c\u786e\u8ba4\u8868\u683c\u4e2d\u5df2\u6dfb\u52a0\u4e867\u884c\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code>cqlsh&gt; SELECT * FROM employees_tbl ;\r\n\r\n id          | division    | manager_id  | name    | pay_scale | project     | region | role    | vacation_hrs\r\n-------------+-------------+-------------+---------+-----------+-------------+--------+---------+--------------\r\n 789-01-2345 |   Executive |        None | Roberta |        15 |         All |     US |     CEO |          184\r\n 567-89-0123 |   Marketing | 678-90-1234 |   Ahmed |         4 | NightFlight |     US |      IC |           88\r\n 234-56-7890 | Engineering | 789-01-2345 |     Bob |         6 | NightFlight |     US | Manager |           72\r\n 456-78-9012 | Engineering | 234-56-7890 |    Beth |         7 | NightFlight |     US |      IC |        100.5\r\n 123-45-6789 | Engineering | 234-56-7890 |     Bob |         1 | NightFlight |     US |  Intern |            0\r\n 678-90-1234 |   Marketing | 789-01-2345 |    Alan |         3 |       Storm |     US | Manager |         18.4\r\n 345-67-8901 | Engineering | 234-56-7890 |   Sarah |         4 |       Storm |     US |      IC |          108\r\n<\/code><\/pre>\n<p>\u4eceAWS\u63a7\u5236\u53f0\u4e2d\u67e5\u770b\u6570\u636e\uff0c\u4f1a\u663e\u793a\u5982\u4e0b\u4fe1\u606f\u3002<br \/>\n\u4eceCQL\u7f16\u8f91\u5668\u4e2d\u6267\u884c\u76f8\u540c\u7684CQL\u8bed\u53e5\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/64-0.png\" alt=\"image.png\" \/><\/div>\n<h1>2. \u4f7f\u7528CQL\u5c06CSV\u5bfc\u51fa<\/h1>\n<p>\u4e3a\u4e86\u8fc1\u79fb\u5230NoSQL\u6570\u636e\u5e93\uff0c\u73b0\u5728\u5c06\u63d2\u5165\u7684\u6570\u636e\u4ee5csv\u683c\u5f0f\u8fdb\u884c\u5bfc\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code>cqlsh:myGSGKeyspace&gt; COPY employees_tbl (id,name,project,region,division,role,pay_scale,vacation_hrs,manager_id) \r\n                 ... TO '\/home\/ec2-user\/nosqlMigrator\/nosql-migrator-1.5.0\/expemployees.csv' WITH delimiter=',' AND header=TRUE AND QUOTE='\"' ;\r\ncqlsh current consistency level is LOCAL_QUORUM.\r\nReading options from \/home\/ec2-user\/.cassandra\/cqlshrc:[copy]: {'numprocesses': '16', 'maxattempts': '1000'}\r\nReading options from the command line: {'delimiter': ',', 'header': 'TRUE', 'quote': '\"'}\r\nUsing 16 child processes\r\n\r\nStarting copy of myGSGKeyspace.employees_tbl with columns [id, name, project, region, division, role, pay_scale, vacation_hrs, manager_id].\r\nProcessed: 7 rows; Rate:     145 rows\/s; Avg. rate:      22 rows\/s\r\n7 rows exported to 1 files in 0.370 seconds.\r\n<\/code><\/pre>\n<p>\u5f53\u4f7f\u7528cat\u547d\u4ee4\u8fdb\u884c\u786e\u8ba4\u65f6\uff0c\u53ef\u4ee5\u770b\u5230\u5305\u542b\u6807\u9898\u76847\u884c\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cat expemployees.csv \r\nid,name,project,region,division,role,pay_scale,vacation_hrs,manager_id\r\n234-56-7890,Bob,NightFlight,US,Engineering,Manager,6,72,789-01-2345\r\n567-89-0123,Ahmed,NightFlight,US,Marketing,IC,4,88,678-90-1234\r\n789-01-2345,Roberta,All,US,Executive,CEO,15,184,None\r\n345-67-8901,Sarah,Storm,US,Engineering,IC,4,108,234-56-7890\r\n678-90-1234,Alan,Storm,US,Marketing,Manager,3,18.4,789-01-2345\r\n456-78-9012,Beth,NightFlight,US,Engineering,IC,7,100.5,234-56-7890\r\n123-45-6789,Bob,NightFlight,US,Engineering,Intern,1,0,234-56-7890\r\n<\/code><\/pre>\n<p>\u5bfc\u51fa\u540e\uff0c\u901a\u8fc7exit\u9000\u51facqlsh\uff0c\u7136\u540e\u8fd4\u56de\u5230EC2\u3002<\/p>\n<h1>\u521b\u5efa\u7528\u4e8eNoSQL\u6570\u636e\u5e93\u7684DDL\u8bed\u53e5<\/h1>\n<p>\u8fdb\u5165nosql-migrator-1.5.0\u76ee\u5f55\uff0c\u521b\u5efa\u540d\u4e3a&#8221;mytable_schema.ddl&#8221;\u7684ddl\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cd \/nosqlMigrator\/nosql-migrator-1.5.0\r\n$ touch mytable_schema.ddl\r\n<\/code><\/pre>\n<p>\u4f7f\u7528vi\u547d\u4ee4\uff0c\u5c06\u4ee5\u4e0b\u5185\u5bb9\u7684DDL\u8bed\u53e5\u5199\u5165\u3002<\/p>\n<pre class=\"post-pre\"><code>create table employees (id STRING, name STRING, project STRING, region STRING, division STRING, role STRING, pay_scale INTEGER, vacation_hrs FLOAT, manager_id STRING, PRIMARY KEY(SHARD(id),division));\r\n<\/code><\/pre>\n<p>\u91cd\u70b9\u662f\u5728\u521b\u5efa\u952e\u7a7a\u95f4\u548c\u8868\u65f6\uff0c\u6307\u5b9a\u4e86\u5206\u533a\u952e\u4e3aid\uff0c\u6392\u5e8f\u952e\u4e3adivision\u3002<\/p>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5df2\u7ecf\u51c6\u5907\u597d\u4e86\u4f5c\u4e3a\u6570\u636e\u6e90\u7684&#8221;expexpemployees.csv&#8221;\u6587\u4ef6\u548c\u4f5c\u4e3aNoSQL\u6570\u636e\u5e93\u8868\u7ed3\u6784\u4fe1\u606f\u7684&#8221;mytable_schema.ddl&#8221;\u6587\u4ef6\u3002<br \/>\n\u901a\u8fc7\u4ee5\u4e0b\u6b65\u9aa4\uff0c\u6211\u4eec\u5c06\u4f7f\u7528\u8fd9\u4e24\u4e2a\u8f93\u5165\u6765\u6267\u884c\u8fc1\u79fb\u5668\uff0c\u8fdb\u884c\u8868\u683c\u7684\u8fc1\u79fb\u3002<\/p>\n<h1>4. \u8fdb\u884cNoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5b9e\u65bd<\/h1>\n<p>\u548c\u4eceDynamoDB\u8fc1\u79fb\u65f6\u4e00\u6837\uff0c\u6267\u884crunMigrator\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ .\/runMigrator\r\n<\/code><\/pre>\n<p>\u5728\u6267\u884c\u547d\u4ee4\u540e\uff0c\u5de5\u5177\u5c06\u8981\u6c42\u56de\u7b54\u95ee\u9898\uff1a\u8f93\u5165\u53c2\u6570\u5e76\u6309Enter\u952e\u3002[]\u62ec\u8d77\u6765\u7684\u6587\u5b57\u662f\u56de\u7b54\u7559\u7a7a\u7b54\u6848\u7684\u9ed8\u8ba4\u56de\u7b54\u3002<br \/>\n\u57fa\u4e8e\u8fd9\u4e9b\u53c2\u6570\uff0cNoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06\u751f\u6210\u540d\u4e3a&#8221;migrator-config.json&#8221;\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u8fd9\u5c06\u6210\u4e3a\u8fc1\u79fb\u7684\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<p>\u8bf7\u6839\u636e\u4ee5\u4e0b\u5185\u5bb9\uff0c\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u5206\u9694\u7684\u65b9\u5f0f\u8bb0\u5f55\u672c\u6b21\u6761\u4ef6\u4e0b\u7684\u8f93\u5165\u53c2\u6570\u3002<br \/>\n\u8bf7\u53c2\u8003\u5907\u6ce8\u8fdb\u884c\u8f93\u5165\u3002<\/p>\n<h1>\u8bbe\u7f6e\u521b\u5efa\u5f00\u59cb<\/h1>\n<pre class=\"post-pre\"><code>Configuration file is not provided. Do you want to generate\r\nconfiguration? (y\/n) [n]: y\r\n<\/code><\/pre>\n<p>\u5982\u679c\u662fy\uff0c\u5c31\u4f1a\u7ee7\u7eed\u8fdb\u884c\u3002\u5982\u679c\u662fn\uff0c\u5c31\u4f1a\u8fd4\u56de\u539f\u59cb\u63a7\u5236\u53f0\u3002<\/p>\n<h1>4-2. \u6307\u5b9a\u79fb\u884c\u8bbe\u5b9a\u6587\u4ef6\u7684\u540d\u79f0<\/h1>\n<pre class=\"post-pre\"><code>Enter a location for your config [.\/migrator-config.json]: \r\n<\/code><\/pre>\n<p>\u5982\u679c\u6ca1\u6709\u7279\u6b8a\u539f\u56e0\u7684\u8bdd\uff0c\u6211\u8ba4\u4e3a\u53ef\u4ee5\u4fdd\u6301\u9ed8\u8ba4\u7684&#8221;.\/migrator-config.json&#8221;\u3002<br \/>\n\u5982\u679c\u5b58\u5728\u91cd\u540d\u7684\u60c5\u51b5\uff0c\u4e4b\u540e\u662f\u5426\u53ef\u4ee5\u8fdb\u884c\u8986\u76d6\u5c06\u4f1a\u8be2\u95ee\u3002<\/p>\n<h1>4-3. \u9078\u64c7\u91ac\u6c41\u3002<\/h1>\n<pre class=\"post-pre\"><code>Select the source: \r\n1) nosqldb\r\n2) nosqldb_cloud\r\n3) file\r\n4) object_storage_oci\r\n5) aws_s3\r\n#? \r\n3\r\n<\/code><\/pre>\n<p>\u9009\u62e9\u7b2c\u4e09\u4e2a\u6587\u4ef6\u3002\u8fd9\u6b21\u7684\u6e90\u6587\u4ef6\u662f\u672c\u5730\u76ee\u5f55\u4e2d\u7684csv\u6587\u4ef6\u3002<\/p>\n<h1>4-4. \u8bbe\u7f6e\u6e90\u53c2\u6570<\/h1>\n<pre class=\"post-pre\"><code>Configuration for source type=file\r\nSelect the source file format: \r\n1) json\r\n2) mongodb_json\r\n3) dynamodb_json\r\n4) csv\r\n#? 4\r\nEnter path to a file or directory containing csv data: .\/expemployees.csv\r\nDoes the CSV file contain a headerLine? (y\/n) [n]: y\r\nDo you want to reorder the column names of NoSQL table with respect to\r\nCSV file columns? (y\/n) [n]: n\r\nProvide the CSV file encoding. The supported encodings are:\r\nUTF-8,UTF-16,US-ASCII,ISO-8859-1. [UTF-8]: UTF-8\r\nDo you want to trim leading and trailing blanks? (y\/n) [n]: n\r\n<\/code><\/pre>\n<p>\u9009\u62e9\u7b2c4\u4e2aCSV\u6587\u4ef6\u3002<br \/>\n\u7136\u540e\uff0c\u4f1a\u8be2\u95ee\u6570\u636e\u6587\u4ef6\u7684\u4f4d\u7f6e\uff0c\u8bf7\u6307\u5b9a\u4f7f\u7528# 2. cql\u5bfc\u51fa\u7684&#8221;expemployees.csv&#8221;\u6587\u4ef6\u3002<br \/>\n\u5728\u5bfc\u51faCSV\u65f6\uff0c\u4f7f\u7528header=TRUE\u53c2\u6570\uff0c\u56e0\u6b64\u56de\u7b54\u8bf4\u5df2\u5305\u542b\u6807\u9898\u4ee5\u8f93\u51fa\u5e26\u6709\u6807\u9898\u7684\u6587\u4ef6\u3002<br \/>\n\u5176\u4ed6\u90e8\u5206\u53ef\u4ee5\u4f7f\u7528\u9ed8\u8ba4\u503c\u3002<\/p>\n<h1>4-5. \u6d17\u624b\u6c60\u7684\u9009\u62e9 j\u012b de<\/h1>\n<pre class=\"post-pre\"><code>Select the sink: \r\n1) nosqldb\r\n2) nosqldb_cloud\r\n#? 2\r\n<\/code><\/pre>\n<p>\u9009\u62e92\u7684Oracle NoSQL Database Cloud Service\u3002<\/p>\n<h1>4-6. \u6c34\u69fd\u7684\u9009\u62e9<\/h1>\n<pre class=\"post-pre\"><code>Configuration for sink type=nosqldb_cloud\r\nEnter endpoint URL or region ID of the Oracle NoSQL Database Cloud: ap-tokyo-1\r\nWould you like to use instance principal authentication?\r\nUse this if you're running migrator within a OCI compute instance and\r\nconfigured instance principal authentication on it. If you select no you will be\r\nasked to enter OCI credentials file details. (y\/n) [n]: n\r\nEnter path to the file containing OCI credentials [\/home\/ec2-user\/.oci\/config]: \r\nEnter the profile name in OCI credentials file [DEFAULT]: \r\nEnter the compartment name or id of the table []: &lt;\u30b3\u30f3\u30d1\u30fc\u30c8\u30e1\u30f3\u30c8\u540d&gt;\r\nEnter table name: employees\r\nInclude TTL data? If you select 'yes' TTL value provided by the\r\nsource will be set on imported rows. (y\/n) [n]: \r\nWould you like to create table as part of migration process?\r\nUse this option if you want to create table through the migration tool.\r\nIf you select yes, you will be asked to provide a file that contains\r\ntable DDL or to use schema provided by the source or default schema.\r\n(y\/n) [n]: y\r\nEnter path to a file containing table DDL: .\/mytable_schema.ddl \r\nWould you like to use on demand read and write units? (y\/n) [n]: y\r\nEnter storage size in GB of new table: 10\r\nEnter percentage of table write units to be used for migration operation. \r\n(1-100) [90]: \r\nwould you like to overwrite records which are already present?\r\nIf you select 'no' records with same primary key will be skipped [y\/n] [y]: y\r\nEnter store operation timeout in milliseconds. [5000]: \r\nWould you like to add transformations to source data? (y\/n) [n]: \r\nWould you like to continue migration if any data fails to be migrated?\r\n (y\/n) [n]: n\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u8bbe\u7f6e\u9879\u8f83\u591a\uff0c\u53ea\u5217\u51fa\u9700\u8981\u6ce8\u610f\u7684\u53c2\u6570\uff0c\u800c\u4e0d\u662f\u9ed8\u8ba4\u503c\u3002<\/p>\n<p>\u8acb\u8f38\u5165 Oracle NoSQL Database Cloud \u7684\u7aef\u9ede URL \u6216\u5340\u57df ID\uff1aap-tokyo-1\u3002<\/p>\n<p>\u8bf7\u8f93\u5165\u8868\u683c\u7684\u5206\u533a\u540d\u79f0\u6216id\uff1a[&lt;\u5206\u533a\u540d\u79f0&gt;]<br \/>\n\u2192 \u8bf7\u9009\u62e9\u5728OCI\u4e0a\u521b\u5efaOracle NoSQL Database Cloud\u7684\u5206\u533a\u3002<\/p>\n<p>\u8bf7\u8f93\u5165\u8868\u540d\uff1a\u5458\u5de5<\/p>\n<p>\u2192\u8bf7\u8f93\u5165\u8868\u540d\uff1a\u5458\u5de5\u3002\u4e0e\u60a8\u5728\u201c3. \u521b\u5efaNoSQL\u6570\u636e\u5e93\u7684DDL\u8bed\u53e5\u201d\u4e2d\u7f16\u5199\u7684DDL\u8bed\u53e5\u4e2d\u7684\u8868\u540d\u4fdd\u6301\u4e00\u81f4\u3002<\/p>\n<p>\u60a8\u662f\u5426\u5e0c\u671b\u5728\u8fc1\u79fb\u8fc7\u7a0b\u4e2d\u521b\u5efa\u8868\u683c\uff1f\u5982\u679c\u662f\u7684\u8bdd\uff0c\u8bf7\u8f93\u5165 y\u3002<\/p>\n<p>\u8f93\u5165\u5305\u542b\u8868 DDL \u7684\u6587\u4ef6\u8def\u5f84\uff1a.\/mytable_schema.ddl<br \/>\n\u2192 3. \u6307\u5b9a\u4f7f\u7528\u521b\u5efa NoSQL \u6570\u636e\u5e93\u65f6\u751f\u6210\u7684 DDL \u8bed\u53e5\u7684 mytable_schema.ddl \u6587\u4ef6\u3002<\/p>\n<p>\u4f60\u60f3\u4f7f\u7528\u6309\u9700\u8bfb\u5199\u5355\u4f4d\u5417\uff1f\uff08\u662f\/\u5426\uff09[\u5426]: \u662f<br \/>\n\u2192\u65e0\u8bba\u662f\u6309\u9700\u8fd8\u662f\u56fa\u5b9a\u5bb9\u91cf\u90fd\u6ca1\u6709\u95ee\u9898\uff0c\u4f46\u8fd9\u6b21\u6211\u4eec\u9009\u62e9\u4e86\u6309\u9700\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c&#8221;\u8f93\u5165\u65b0\u8868\u7684\u5b58\u50a8\u5927\u5c0f\uff0c\u5355\u4f4d\u4e3aGB&#8221;\uff0c\u6211\u4eec\u6307\u5b9a\u4e3a10GB\u3002<\/p>\n<h1>4-7. \u786e\u8ba4\u8fc1\u79fb\u8bbe\u7f6e\u6587\u4ef6<\/h1>\n<pre class=\"post-pre\"><code>Generated configuration is:\r\n{\r\n  \"source\" : {\r\n    \"type\" : \"file\",\r\n    \"format\" : \"csv\",\r\n    \"dataPath\" : \".\/expemployees.csv\",\r\n    \"hasHeader\" : true,\r\n    \"csvOptions\" : {\r\n      \"encoding\" : \"UTF-8\",\r\n      \"trim\" : false\r\n    }\r\n  },\r\n  \"sink\" : {\r\n    \"type\" : \"nosqldb_cloud\",\r\n    \"endpoint\" : \"ap-tokyo-1\",\r\n    \"table\" : \"employees\",\r\n    \"compartment\" : \"&lt;\u30b3\u30f3\u30d1\u30fc\u30c8\u30e1\u30f3\u30c8\u540d&gt;\",\r\n    \"includeTTL\" : false,\r\n    \"schemaInfo\" : {\r\n      \"onDemandThroughput\" : true,\r\n      \"storageSize\" : 10,\r\n      \"schemaPath\" : \".\/mytable_schema.ddl\"\r\n    },\r\n    \"credentials\" : \"\/home\/ec2-user\/.oci\/config\",\r\n    \"credentialsProfile\" : \"DEFAULT\",\r\n    \"writeUnitsPercent\" : 90,\r\n    \"overwrite\" : true,\r\n    \"requestTimeoutMs\" : 5000\r\n  },\r\n  \"abortOnError\" : true,\r\n  \"migratorVersion\" : \"1.5.0\"\r\n}\r\nWould you like to run the migration with above configuration?\r\nIf you select no, you can use the generated configuration file to\r\nrun the migration using:\r\n.\/runMigrator --config .\/migrator-config.json\r\n(y\/n) [y]: y\r\n<\/code><\/pre>\n<p>\u5f53\u8f93\u51654-6\u65f6\uff0c\u5b83\u4f1a\u6839\u636e\u8f93\u5165\u7684\u53c2\u6570\u4e3a\u60a8\u751f\u6210\u4e00\u4e2a\u8f6c\u79fb\u8bbe\u7f6e\u6587\u4ef6\uff0c\u683c\u5f0f\u4e3aJSON\u3002\u5982\u679c\u6ca1\u6709\u95ee\u9898\uff0c\u8bf7\u8f93\u5165y\u3002<\/p>\n<h1>4-8. \u6267\u884c\u8fc1\u79fb<\/h1>\n<pre class=\"post-pre\"><code>2023-10-29 15:13:49.975 [INFO] creating source from given configuration:\r\n2023-10-29 15:13:50.126 [INFO] source creation completed\r\n2023-10-29 15:13:50.137 [INFO] creating sink from given configuration:\r\n2023-10-29 15:13:52.311 [INFO] sink creation completed\r\n2023-10-29 15:13:52.312 [INFO] creating migrator pipeline\r\n2023-10-29 15:13:52.312 [INFO] migration started\r\n2023-10-29 15:13:52.312 [INFO] [cloud sink] : start loading DDLs\r\n2023-10-29 15:13:52.334 [INFO] [cloud sink] : executing DDL: create table employees (id STRING, name STRING, project STRING, region STRING, division STRING, role STRING, pay_scale INTEGER, vacation_hrs FLOAT, manager_id STRING, PRIMARY KEY(SHARD(id),division)),limits: [0, 0, 10]\r\n2023-10-29 15:13:57.424 [INFO] [cloud sink] : completed loading DDLs\r\n2023-10-29 15:13:57.595 [INFO] [cloud sink] : start loading records\r\n2023-10-29 15:13:57.608 [INFO] [csv file source] : start parsing CSV records from file: expemployees.csv\r\n2023-10-29 15:13:57.836 [INFO] migration completed.\r\nRecords provided by source=7, Records written to sink=7, Records failed=0, Records skipped=0.\r\nElapsed time: 0min 5sec 514ms\r\nMigration completed.\r\n<\/code><\/pre>\n<p>\u4ece\u6267\u884c\u65e5\u5fd7\u4e2d\u7684&#8221;Records provided by source=7, Records written to sink=7, Records failed=0, Records skipped=0.&#8221;\u53ef\u4ee5\u770b\u51fa\uff0c\u67097\u884c\u6570\u636e\u4ece\u6e90\u5934\u5199\u5165\u5230\u4e86\u76ee\u6807\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u901a\u8fc7\u4ee5\u4e0b\u6b65\u9aa4\u6765\u68c0\u67e5OCI\u4e0a\u7684Oracle NoSQL Database Cloud Service\u662f\u5426\u6b63\u786e\u5730\u53cd\u6620\u4e86\u6570\u636e\u3002<\/p>\n<h1>5. \u6aa2\u67e5\u57f7\u884c\u7d50\u679c<\/h1>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/114-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/115-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/116-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u6211\u4eec\u786e\u8ba4\u5728\u63d2\u5165\u793a\u4f8b\u6570\u636e\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5df2\u7ecf\u6210\u529f\u5b58\u50a8\u4e86\u4e0e\u63d2\u5165\u7684\u6570\u636e\u76f8\u540c\u7684\u6570\u636e\uff01<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/118-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/119-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u53ef\u4ee5\u77e5\u9053id\u88ab\u8a2d\u7f6e\u70baPRIMARY KEY\u548cSHARD KEY\uff0cdivision\u88ab\u8a2d\u7f6e\u70baPRIMARY KEY\u3002<br \/>\n\u5728Oracle NoSQL Database Cloud Service\u4e2d\uff0c\u9375\u5982\u4e0b\u6240\u793a\u76f8\u5c0d\u61c9\u3002<\/p>\n<div>\n<div class=\"post-table\">Amazon keyspacesOracle NoSQL Database Cloud Service\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30fb\u30ad\u30fcPRIMARY KEY\u304a\u3088\u3073SHARD KEY\u30bd\u30fc\u30c8\u30fb\u30ad\u30fcPRIMARY KEY<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>\u603b\u7ed3<\/h1>\n<p>\u7ee7\u4e0a\u4e00\u6b21\u8fc1\u79fbDynamoDB\u4e4b\u540e\uff0c\u8fd9\u4e00\u6b21\u6211\u4eec\u5c1d\u8bd5\u5c06\u57fa\u4e8eApache Cassandra\u7684Amazon keyspaces\u8fc1\u79fb\u5230Oracle NoSQL Database Cloud Service\u3002<br \/>\n\u4e0a\u4e00\u6b21\uff0c\u6211\u4eec\u4f7f\u7528\u5de5\u5177\u6839\u636ejson\u6570\u636e\u6587\u4ef6\u548c\u8fc1\u79fb\u914d\u7f6e\u6587\u4ef6\u751f\u6210DDL\u8bed\u53e5\uff0c\u4f46\u8fd9\u4e00\u6b21\uff0c\u6211\u4eec\u4f7f\u7528csv\u6570\u636e\u6587\u4ef6\u548cDDL\u8bed\u53e5\u4f5c\u4e3a\u8f93\u5165\uff0c\u5728\u5de5\u5177\u4e2d\u751f\u6210\u8fc1\u79fb\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u8fc1\u79fb\u3002<br \/>\n\u5bf9\u4e8eDynamoDB\u6765\u8bf4\uff0c\u6e90\u6570\u636e\u5b58\u50a8\u5728S3\u4e0a\u7684DynamoDB json\u4e2d\uff0c\u800c\u5bf9\u4e8eAmazon keyspaces\u6765\u8bf4\uff0c\u6e90\u6570\u636e\u8bbe\u5b9a\u4e3a\u672c\u5730\u76ee\u5f55\u4e2d\u7684csv\u6587\u4ef6\u3002<br \/>\n\u7531\u4e8eNoSQL Database Migrator\u53ef\u4ee5\u6839\u636e\u6e90\u670d\u52a1\u9009\u62e9\u6e90\u6587\u4ef6\u7c7b\u578b\uff0c\u56e0\u6b64\u80fd\u591f\u6839\u636e\u8fc1\u79fb\u6e90\u548c\u76ee\u6807\u4e4b\u95f4\u7684\u5173\u7cfb\u8fdb\u884c\u7075\u6d3b\u9009\u62e9\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u5927\u7684\u4f18\u70b9\u3002<br \/>\n\u4e0b\u4e00\u6b21\uff0c\u6211\u4eec\u8ba1\u5212\u8bd5\u8bd5\u5c06Amazon Document DB\u8fc1\u79fb\u5230Oracle NoSQL Database Cloud Service\u3002<\/p>\n<h1>\u8bf7\u627e\u4e00\u4efd\u53c2\u8003\u8d44\u6599\u3002<\/h1>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OCI\u4e91\u8fc1\u79fb\u6307\u5357\u7684\u6982\u5ff5\u662f\u4ec0\u4e48\uff1f \u8fd9\u662f\u7531\u4e91\u5de5\u7a0b\u5e08\uff08@araidon\uff0c@kazunishi\uff0c@yama6\uff09\u7ec4\u6210\u7684\u56e2 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-50304","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1 - Blog - Silicon Cloud<\/title>\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.silicloud.com\/zh\/blog\/\u3010oci\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528nosql\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06amazon-keyspaces\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1\" \/>\n<meta property=\"og:description\" content=\"OCI\u4e91\u8fc1\u79fb\u6307\u5357\u7684\u6982\u5ff5\u662f\u4ec0\u4e48\uff1f \u8fd9\u662f\u7531\u4e91\u5de5\u7a0b\u5e08\uff08@araidon\uff0c@kazunishi\uff0c@yama6\uff09\u7ec4\u6210\u7684\u56e2 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u3010oci\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528nosql\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06amazon-keyspaces\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-01T03:48:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T22:51:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/3-0.png\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/\",\"name\":\"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-01T03:48:30+00:00\",\"dateModified\":\"2024-04-28T22:51:24+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1 - Blog - Silicon Cloud","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.silicloud.com\/zh\/blog\/\u3010oci\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528nosql\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06amazon-keyspaces\/","og_locale":"zh_CN","og_type":"article","og_title":"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1","og_description":"OCI\u4e91\u8fc1\u79fb\u6307\u5357\u7684\u6982\u5ff5\u662f\u4ec0\u4e48\uff1f \u8fd9\u662f\u7531\u4e91\u5de5\u7a0b\u5e08\uff08@araidon\uff0c@kazunishi\uff0c@yama6\uff09\u7ec4\u6210\u7684\u56e2 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u3010oci\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528nosql\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06amazon-keyspaces\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-01T03:48:30+00:00","article_modified_time":"2024-04-28T22:51:24+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d90a3913a08637a6dcbb8\/3-0.png"}],"author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/","name":"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-01T03:48:30+00:00","dateModified":"2024-04-28T22:51:24+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3010OCI\u4e91\u8fc1\u79fb\u6307\u5357\u3011\u5c1d\u8bd5\u4f7f\u7528NoSQL\u6570\u636e\u5e93\u8fc1\u79fb\u5de5\u5177\u5c06Amazon Keyspaces\u8fc1\u79fb\u5230Oracle NoSQL\u6570\u636e\u5e93\u4e91\u670d\u52a1"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90oci%e4%ba%91%e8%bf%81%e7%a7%bb%e6%8c%87%e5%8d%97%e3%80%91%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e5%b7%a5%e5%85%b7%e5%b0%86amazon-keyspaces\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=50304"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50304\/revisions"}],"predecessor-version":[{"id":83708,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50304\/revisions\/83708"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=50304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=50304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=50304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}