连锁当家运维手册


pgsql数据导入hana方案

<hr /> <ul> <li> <p>第一步:生成hana的sql建表语句</p> <p>1.使用[powerDesinger](<a href="https://www.showdoc.cc/1689634?page_id=15689922">https://www.showdoc.cc/1689634?page_id=15689922</a> &quot;powerDesinger&quot;)生成hana语句 2.create table改为create column table 3.varchar类型字段的数据有中文,改为nvarchar类型 4.表名前面的schema改为相应的名称 5.自增长(ID INTEGER GENERATED BY DEFAULT AS IDENTITY) 6.now()改为CURRENT_TIMESTAMP 7.current_user()改为CURRENT_USER 8.默认值(default)后面的::char(::integer...)等删除掉</p> </li> <li> <p>第二步:导出pgsql数据文件(header表示导出的数据文件第一行有表的列名)</p> <pre><code>COPY (select * from colortbl) to 'E:/PostgreSQL2/data/colortbl.csv' with csv header ENCODING 'utf8';</code></pre> <p>备注:'E:/PostgreSQL2/data/colortbl.csv'表示数据库所在服务器的路径(自定义导出文件的路径)</p> </li> </ul> <hr /> <ul> <li> <p>第三步转义文件</p> <p>linux命令</p> <pre><code>sed 's/\\/\\\\/g' g_boxscaner.csv &amp;gt; new_g_boxscaner.csv</code></pre> <p>备注:此步骤一般可省略,当部分数据导入失败时,可尝试使用此步骤解决问题</p> </li> </ul> <hr /> <ul> <li> <p>第三步导入hana</p> <p>注意:要先设置导入权限,否则不能导入</p> </li> </ul> <pre><code> truncate table table_name;//删除表数据 import from csv file '/hana/back/file_name.csv' into table_name with -- skip first 1 row -- COLUMN LIST IN FIRST ROW -- COLUMN LIST(&amp;quot;SHOPID&amp;quot;,&amp;quot;SHOPNAME&amp;quot;) record delimited by '\r\n' field delimited by ',' error log '/hana/back/file_name.bad'</code></pre> <p>备注:</p> <ol> <li> <p>'/hana/back/file_name.csv'表示第一步copy出来的数据文件路径,如果此文件不 在hana所在的服务器上,须要该文件上传到hana服务器上。</p> </li> <li> <p>table_name表名,所要导入数据的表</p> </li> <li>skip first 1 row 跳过第一行,如果生成的数据文件第一行是表的列名,可以跳过第一行导入 注意:record delimited by '\r\n'需要改为record delimited by '\n'</li> <li> <p>COLUMN LIST IN FIRST ROW 把第一行当做列名,按列名导入数据,这时不需要skip first 1 row 注意:第一行的大小写要与hana相应表的列名的大小写一致,否则导入不成功,也需要把record delimited by '\r\n'改为record delimited by '\n'</p> </li> <li> <p>COLUMN LIST(&quot;SHOPID&quot;,&quot;SHOPNAME&quot;)只导入某几列的数据,要求第一步导出的数据文件也是这几列的数据</p> </li> <li> <p>record delimited by '\r\n'换行格式</p> </li> <li> <p>field delimited by ',' 分隔符(每个字段的数据之间的分隔符)</p> </li> <li>error log '/hana/back/file_name.bad' 错误日志生成的路径(每张表的错误日志文件名不要一样),当导入完成一张表时,需要查看是否有相应的错误日志生成,没有则导入成功,有则导入失败,打开错误日志文件查看原因进行解决,为了进一步确认导入数据的准确性,可在原表和hana表分别count数据的行数。 注意:生成错误日志的文件夹需要设置写的权限,否则无法生成错误日志文件,当不断尝试导入数据时,需要先将相应的错误日志文件删掉</li> </ol>

页面列表

ITEM_HTML