hive oracle不同点--未完
(2018-01-11 17:33:12)
标签:
hiveoracle |
分类: hadoop |
--hive 不支持记录级别的更新、插入或者删除操作。(但是用户可以通过查询生成新表,或者将查询结果导入到文件中)
update不同。oracle中用 update...set...但hive中没有‘update’。可以打开‘file
browser’,删除相应文件,再用记事本重新上传,上传之后需要‘让hive知道发生了这个更新',这里需要一行代码
删除的方式不同。
--字符串连接符不同。
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
- MySQL: CONCAT()
- Oracle: CONCAT(), ||
- SQL Server: +
CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。
--注释掉的方式不同
oracle可以用两种方式 ‘ ’和‘--’
hive中只可以使用‘--’(多行注释掉还不会快捷键。。)
--level connect by
oracle中可以使用level connect by 和dual表 创造自增数列,而hive中不支持这些。
oracle中:
hive中:
--hive中 不支持having 和 distinct 出现在同一语句中
例如:
在oracle中可以正常运行,但在HIVE中运行会有如下报错:
FAILED: SemanticException [Error 10002]: Line 19:22 Invalid column reference 'COL_2'
去掉DISTINCT后可以正常执行。
属于HIVE的特性导致的问题,HAVING子句中无法使用DISTINCT关键字,在迁移中需要进行取舍。