大量数据插入库表注意事项自我总结(Impala)

总体思路:拿到excel格式的数据,建立相应的库表的结构字段,确定字段名和字段类型和字段长度。建好表结构,就可以在excel里编写函数,直接把每行的数据转换成插入语句的cast( 数据  字段类型  字段长度 ) 这样的格式,把整一个行的数据都写在插入的一条数据里面。得到所有的插入数据的cast格式,就可以复制出来,用编辑工具把这些数据全部整合到一个大的insert into 的语句里面,然后再插入,就可以完成大量数据的建表和插入的工作。

方式一:excel表格数据的插入

1:拿到excel表个形式的大量数据,对特殊符号做筛选、替换

        特殊符号有:N#/A 还有 英文的单引号

        (1)N#/A: 可以替换成空串 '' 或者 NULL,在取数逻辑里加上对应的逻辑即可。因为N#/A这个字符串是出现错误而在excel里的变现,所以如果把这个字符串用到其它函数里,得到的都会是N#/A这个错误的字符串,所以需要进行替换,不然在excel里用的取cast()的函数就会失效,得到的结果都会是N#/A。

        (2)'' (这里是单引号) :首先要排查表格里的数据是否含有单引号、双引号等特殊字段,如果含有则需要进行标记,在进行cast()取数的阶段,若含有引号的单元格数据是vachar类型的,那么取数的时候就需要用用双引号或者单引号来和字段里的引号不同交叉的使用,确保引号内引用的是完全的整个的字段数据,这个就需要细心来处理数据。

2:根据表格的数据的大致类型来选取相应的字段类型和数据的长度,并且对字段的命名做到见名知意,字段较多的时候更要做到细心仔细。再对字段的含义做个解释说明,有些字段需要带上单位符号等

3:把大量数据汇总到文本编辑器中,用insert into 语句进行插入,若用的是notepad++把数据汇总到编辑器,那么语言最好用默认的txt文本格式的语言,若是改成SQL语言会增大文本编辑器的开销,可能会使编辑器奔溃掉,在插入数据的时候也要分批次的插入数据,要考虑到软件的负荷问题。

4:插入完成之后复核数据的数目,查看关键字段的数据的异常。

总结:大量数据的插入就是需要很细心仔细的操作,做好前期的准备工作,保存好各个语句和各种数据,方便出了问题可以快速的定位问题,进行解决。

--使用到的SQL的cast()的excel函数
=",(cast('"&[A-Z][0-9]&"' as 字段类型(字段长度),cast('"&[A-Z][0-9]&"' as 字段类型(字段长度),......  )" 

方式二:其它文档格式数据的插入

1:数据量太大时,可以分为几个批次分别建表插数据insert into

2:先建好cast的模板,再把数据由表的最后一列由后向前一次插入。(多行同时插入数据的一个关键点就是保持插入之前的同列的模板格式的一致性,所以由后向前出入数据会保证未被插入数据的列的模板保持格式的一致性)

3:多行选中的光标快捷键是shift + alt (用此快捷键不会选中隐藏的换行和回车符号)

4:由其它文档复制过来的数据一般都是带有隐藏的换行键和回车符,需要放到新的文档当中,用shift +alt键剔除掉回车键和换行符,同是提取出多列信息,再多行插入到insert into 语句当中

5:被突然出现的特殊符号E,破坏了格式,导致插入的数据出现了错位(此时不要做任何的改动),就把这个insert into 语句整个的复制粘贴到一个新的notepad++文件当中,新的文档是默认的文本格式,使得之前格式错乱的语句恢复正常,此时再把错乱的地方的代码再重新调整就好了的,(因为新的notepad++文件是默认的文本格式,不会出现把数据粘贴过来还出现错乱的现象的)

6:按键时的易错点:

        (1)shift + alt 误按成caps lock 或者 tap + alt 键,造成语句完整格式的破坏,导致数据插入时发成错误

        (2)shift + alt 误按成了shift ,造成了选中数据的同时,也选中了隐藏的换行和回车符等          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璀璨data

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值