问题
背景:最近测试的项目中涉及到大数据的测试工作内容~,但之前本人只涉及一些关系型数据库的使用,对hive这种非关系型数据库知之甚少。在测试一段时间之后,除了自行百度了解到的一些区别外,另外就是在使用hive数据库测试的时候会更多地使用一些开窗函数。
想了解到的信息:想具体知道两者在语法上有哪些具体的相同点和不同点~所以求教行业大佬指点迷津。跪求~
背景:最近测试的项目中涉及到大数据的测试工作内容~,但之前本人只涉及一些关系型数据库的使用,对hive这种非关系型数据库知之甚少。在测试一段时间之后,除了自行百度了解到的一些区别外,另外就是在使用hive数据库测试的时候会更多地使用一些开窗函数。
想了解到的信息:想具体知道两者在语法上有哪些具体的相同点和不同点~所以求教行业大佬指点迷津。跪求~
相同点:
差异点:
HiveQL 在语法上与传统的 SQL 有一些差异。例如,HiveQL 使用 SELECT
语句来查询数据,但它的语法可能与传统的 SQL 有所不同,特别是在处理复杂的数据类型和嵌套查询时
语法上的不同可以说的再细点吗
SELECT
、FROM
、WHERE
等,但也有一些差异。例如,HiveQL 使用 INSERT OVERWRITE
来覆盖写入表格,而传统的 SQL 使用 INSERT INTO
。好的 感谢 另外想问下 比如常用的一些开窗函数在两者之间是不是都可以正常使用呢?(像…()over(partion by … order by … ))
窗口函数都支持的
语法基本上是一样的,我知道的有以下几点不同的地方,供参考
1.hive由于是使用在大数据场景下,一般表都会分区,使用partition,通常可以按时间分区,例如每天一个分区,show partitions + 表名 可以查看表的分区
2.hive由于数据量比较大,容易有数据倾斜的问题,需要关注一下大小表join的先后顺序哪张先加载进内存,还有空值等处理(更具体我也不太懂了)
3.hive中不支持update和delete单条数据,一般是用insert overwrite直接覆盖,重写分区
4.hive支持 with table as(类似临时表)写起来结构比较清晰,mysql不支持
5.hive不适合处理实时计算任务
好的 谢谢