数据仓库Hive编程——数据类型和文件格式(四):读时模式

分类目录:商业智能《数据仓库Hive编程》总目录

相关文章:
数据类型和文件格式(一):基本数据类型
数据类型和文件格式(二):集合数据类型
数据类型和文件格式(三):文本文件数据编码
数据类型和文件格式(四):读时模式

当用户向传统数据库中写入数据的时候,不管是采用装载外部数据的方式,还是采用将一个查询的输出结果写入的方式,或者是使用UPDATE语句等等,数据库对于存储都具有完全的控制力。数据库就是“守门人”。传统数据库是写时模式(schema on write),即数据在写入数据库时对模式进行检查。

Hive对底层存储并没有这样的控制。对于Hive要查询的数据,有很多种方式对其进行创建、修改,甚至损坏。因此,Hive不会在数据加载时进行验证,而是在查询时进行,也就是读时模式(schema on read)。

那么当模式和文件内容并不匹配时,Hive对此做的非常好,因为其可以读取这些数据。如果每行记录中的字段个数少于对应的模式中定义的字段个数的话,那么用户将会看到查询结果中有很多的null值。如果某些字段是数值型的,但是Hive在读取时发现存在非数值型的字符串值的话,那么对于那些字段将会返回null值。除此之外的其他情况下,Hive都极力尝试尽可能地将各种错误恢复过来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

von Neumann

您的赞赏是我创作最大的动力~

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

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

打赏作者

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

抵扣说明:

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

余额充值