首页 > 代码库 > 数据加载的妙招解析
数据加载的妙招解析
大数据中怎么来加载数据呢?数据加载应该注意哪些问题呢?关系型数据库和Impala、Hive加载数据有哪些区别呢?
在了解加载数据之前必须明确一个概念“数据验证”, Impala和Hive与其他关系型数据库不一样,关系型数据库是在写的时候进行校验,比如我们创建一个表,当去给它加载数据的时候,它会去验证数据以及数据类型是不是符合要求,如果不符合,数据就加载不了。
在Hive和Impala中,它在读的时候进行校验。为什么会这样设计呢?主要是为了提升写的速度和加载的效率。那么,这样检验数据会不会出错呢?当然不会,如果你查询不到这个数据,它会以“null”来表达。如果要对查询可靠性进行保证,保证每个数据都能查到和匹配,可以通过其它的工程语言在前端进行一个保证。
一、从HDFS加载数据
(1)为了加载数据,可以简单地添加文件到HDFS的表目录,这个直接使用hdfs dfs命令完成
示例:从HDFS加载数据到sales表
(2)使用LOAD DATA INPATH命令,在Hive或者Impala里完成。这个操作将在HDFS内移动数据,就像前面的命令一样,数据源可以是文件或目录。
二、覆盖数据
(1)添加OVERWRITE关键字在导入之前删除所有记录。就是在表目录内移除所有文件,然后把新文件移动到那个目录。
三、追加选择的记录到表中
(1)通过查询插入数据
1、使用INSERT INTO来添加结果到已存在的Hive表中
2、指定WHERE条件来控制哪些记录将被追加
四、使用元数据库管理器加载数据
(1)元数据管理器提供了两种方法来加载数据
五、从关系型数据库加载数据
Sqoop内嵌支持导入数据到Hive和Impala,可以添加--hive-import选项到Sqoop命令,在Hive元数据库中创建表,从RDBMS导入数据到HDFS表目录。
注意--hive-import创建的表在Hive和Impala中都可以访问
有问题,随时来,还有同行共欢聚,大家一起聊!
欢迎关注微信公众号“大数据cn”。
本文出自 “11872756” 博客,请务必保留此出处http://11882756.blog.51cto.com/11872756/1888839
数据加载的妙招解析