1.sql题
设某公司数据库中有关系模式如下:
职工(职工号,职工名,性别,年龄)
工作(职工号,公司号,工资)
公司(公司号,公司名,地址)
请创建表并写出查询每个公司女职工的平均工资的SQL语句。
CREATE TABLE EMPLOYEE (EMPLOYEE_ID VARCHAR(30),EMPLOYEE_NAME VARCHAR(100),GENDER VARCHAR(4),AGE NUMBER(3));
CREATE TALBE JOB (EMPLOYEE_ID VARCHAR(30),COMPANY_ID VARCHAR(30),SALARY NUMBER(10,2));
CREATE TALBE COMPANY (COMPANY_ID VARCHAR(30),COMPANY VARCHAR(100),ADDRESS VARCHAR(300));
SELECT C.COMPANY,AVG(B.SALARY) AS FEMALE_AVG_SALARY
FROM EMPLOYEE A
INNER JOIN JOB B
ON A.EMPLOYEE_ID=B.EMPLOYEE_ID
INNER JOIN COMPANY C
ON B.COMPANY_ID=C.COMPANY_ID
WHERE A.GENDER='女'
GROUP BY C.COMPANY
在hive中,什么情况下容易出现数据倾斜?如何解决?
出现倾斜:
(1)不同数据类型关联产生数据倾斜;解决方式:把类型转换为相同的类型
(2)大量空值数据进入到一个reduce中,导致数据倾斜。解决方法:将为空的key转变为字符串加随机数或者纯随机数。异常值如果不需要,最后提前在where条件过滤掉。
(3)数据本身分布不均:二次聚合(开启数据倾斜时负载均衡)
错题总结:
1.
null表示不可知不确定,null不与任何值相等,包括null本身。判断某个值是否为null,使用is NULL/is not NULL
2.
数据库系统由数据库、数据库管理系统、数据库管理员、硬件平台、软件平台五个部分构成。其中数据库管理系统是数据库系统的核心。
3.
oracle分区有范围分区,哈希分区,列表分区,复合分区。
4.
原子性,持久性,隔离性,一致性
5.
6.
数据库对象包括:触发器、表、视图、存储过程、索引、缺省值、图表、用户、规则等。
存储对象也是数据库中的对象,这一点很容易忘!
标准答案:
1Hive的sortby和orderby的区别?
orderby全局排序,只有一个reducer,数据量大时很慢。
sortby不是全局排序,只能保证每个reducer有序,不能保证全局排序。
2.Oracle有几种表关联方式?有何区别?
oracle表关联主要有四个:inner join,left join,right join,full outer join。
inner join为内连接,当关联的左右两个表记录都存在时才会出现在关联结果中。
剩下三个均为外连接。
left join保证左表都保留在关联的结果中,而记录在右表总关联不上的则置为空。
right join保证右表的记录都保留在右表中,而左表关联不上的记录则置为空。
full outer join保证左右两个表都会出现在结果中,若记录在左表或者右表关联不上的则置为空。
3.何为数据仓库?OLAP与OLTP有何区别?
数据仓库是一个数据集合,支持企业的决策。
存放在数据仓库中的数据一般不再修改。
oltp是联机事务处理,olap是联机分析处理。
oltp是关系型数据库的主要应用,olap是数据仓库的主要应用。
oltp对实时性要求高,ola对实时性要求不高。