Hive 是建立在 Hadoop 上的数据仓库基础构架,它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。由于 Hive 是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。因此,Hive 中不支持对数据的改写和添加。
Hive的相关写法(与SQL Server的差别) 第一次使用Hadoop遇到的问题
1. ISNULL(field,'') ——> COALESCE(field,'')
2. CAST(field AS DATE) ——>TO_DATE(field)
3. hive里有tab符号运行不了
4. insert null值报错(TSocket read 0 bytes)
5. BETWEEN AND 不能用于ON后面,必须用在WHERE后面
解决方法:可以在join的两个表里创建两个毫无意义的字段1 link_name,用这两个字段on,然后把需要用到between的条件写到where条件下。
6. hive里用not in很容易报错,而且效率差,正常用LEFT JOIN
7.日期加1天 date_add(TO_DT,1)
8.月份减12个月BIGDATA_PLATFORM.MONTHADD(FROM_DT,-12)