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

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

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

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

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

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

你可能感兴趣的:(数据仓库Hive编程)