(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{657:function(e,s,t){"use strict";t.r(s);var a=t(68),r=Object(a.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"csv-tool"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#csv-tool"}},[e._v("#")]),e._v(" Csv tool")]),e._v(" "),t("p",[e._v("Csv tool is that you can import csv file into IoTDB or export csv file from IoTDB.")]),e._v(" "),t("h2",{attrs:{id:"usage-of-import-csv-sh"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-of-import-csv-sh"}},[e._v("#")]),e._v(" Usage of import-csv.sh")]),e._v(" "),t("h3",{attrs:{id:"create-metadata-optional"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-metadata-optional"}},[e._v("#")]),e._v(" Create metadata (optional)")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("SET STORAGE GROUP TO root.fit.d1;\nSET STORAGE GROUP TO root.fit.d2;\nSET STORAGE GROUP TO root.fit.p;\nCREATE TIMESERIES root.fit.d1.s1 WITH DATATYPE=INT32,ENCODING=RLE;\nCREATE TIMESERIES root.fit.d1.s2 WITH DATATYPE=TEXT,ENCODING=PLAIN;\nCREATE TIMESERIES root.fit.d2.s1 WITH DATATYPE=INT32,ENCODING=RLE;\nCREATE TIMESERIES root.fit.d2.s3 WITH DATATYPE=INT32,ENCODING=RLE;\nCREATE TIMESERIES root.fit.p.s1 WITH DATATYPE=INT32,ENCODING=RLE;\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])]),t("p",[e._v("IoTDB has the ability of type inference, so it is not necessary to create metadata before data import. However, we still recommend creating metadata before importing data using the CSV import tool, as this can avoid unnecessary type conversion errors.")]),e._v(" "),t("h3",{attrs:{id:"an-example-of-import-csv-file"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#an-example-of-import-csv-file"}},[e._v("#")]),e._v(" An example of import csv file")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('Time,root.fit.d1.s1,root.fit.d1.s2,root.fit.d2.s1,root.fit.d2.s3,root.fit.p.s1\n1,100,hello,200,300,400\n2,500,world,600,700,800\n3,900,"hello, \\"world\\"",1000,1100,1200\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("blockquote",[t("p",[e._v("Note that the following special characters in fields need to be checked before importing:")]),e._v(" "),t("ol",[t("li",[t("code",[e._v(",")]),e._v(" : fields containing "),t("code",[e._v(",")]),e._v(" should be quoted by a pair of "),t("code",[e._v('"')]),e._v(" or a pair of "),t("code",[e._v("'")]),e._v(".")]),e._v(" "),t("li",[t("code",[e._v('"')]),e._v(" : "),t("code",[e._v('"')]),e._v(" in fields should be replaced by "),t("code",[e._v('\\"')]),e._v(" or fields should be enclosed by "),t("code",[e._v("'")]),e._v(".")]),e._v(" "),t("li",[t("code",[e._v("'")]),e._v(" : "),t("code",[e._v("'")]),e._v(" in fields should be replaced by "),t("code",[e._v("\\'")]),e._v(" or fields should be enclosed by "),t("code",[e._v('"')]),e._v(".")])])]),e._v(" "),t("h3",{attrs:{id:"run-import-shell"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-import-shell"}},[e._v("#")]),e._v(" Run import shell")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("# Unix/OS X\n> tools/import-csv.sh -h <ip> -p <port> -u <username> -pw <password> -f <xxx.csv>\n\n# Windows\n> tools\\import-csv.bat -h <ip> -p <port> -u <username> -pw <password> -f <xxx.csv>\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("h2",{attrs:{id:"usage-of-export-csv-sh"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage-of-export-csv-sh"}},[e._v("#")]),e._v(" Usage of export-csv.sh")]),e._v(" "),t("h3",{attrs:{id:"run-export-shell"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#run-export-shell"}},[e._v("#")]),e._v(" Run export shell")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("# Unix/OS X\n> tools/export-csv.sh -h <ip> -p <port> -u <username> -pw <password> -td <directory> [-tf <time-format> -s <sqlfile>]\n\n# Windows\n> tools\\export-csv.bat -h <ip> -p <port> -u <username> -pw <password> -td <directory> [-tf <time-format> -s <sqlfile>]\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("After running export shell, you need to input a data query, like "),t("code",[e._v("select * from root")]),e._v(". or specify a sql file. If you have multi sql in a sql file, sql should be split by new line character.")]),e._v(" "),t("p",[e._v("an example sql file:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("select * from root.fit.d1\nselect * from root.sg1.d1\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("blockquote",[t("p",[e._v("Note that if fields exported by the export tool have the following special characters:")]),e._v(" "),t("ol",[t("li",[t("code",[e._v(",")]),e._v(": the field will be enclosed by "),t("code",[e._v('"')]),e._v(".")]),e._v(" "),t("li",[t("code",[e._v('"')]),e._v(": the field will be enclosed by "),t("code",[e._v('"')]),e._v(" and the original characters "),t("code",[e._v('"')]),e._v(" in the field will be replaced by "),t("code",[e._v('\\"')]),e._v(".")])])])])}),[],!1,null,null,null);s.default=r.exports}}]);