某BI系统构建在大数据计算服务上,某数据分析员在分析订单的地域分布时,需要把订单表order(占用存储空间约10G)与地狱维表region(占用存储空间100M)关联起来,两张表的结构如下:create table order( order_id string, region_id string, order amt bigint); create table region(region_id string, region_name string)在运行时发现由于订单大量集中在上海地区,数据的倾斜导致整体运行时间较长,运行的SQL语句如下:select region_name, sum(order_amt)amt from order t1 join region t2 on t1.region_id=t2.region_id;此时可以考虑通过()优化SQL的运行效率。
(A)使用mapjoin hint: select/*+mapjoin(t2)*/region_name,sum(order_amt)amt from order t1 join region t2 on t1.region_id=t2.region_id;
(B)使用mapjoin hint: select/*+mapjoin(t1)*/region_name,sum(order_amt)amt from order t1 join region t2 on t1.region_id=t2.region_id;
(C)调整两张表的位置:select region_name, sum(order_amt) amt from region t1 join t2 on t1.region_id=t2.region_id;
(D)减小SQL的splitsize,增加计算资源
参考答案
继续答题:下一题
![微考学堂](/images/gzh.png)
![微考学社](/images/xcx.png)
更多阿里云大数据助理工程师认证(ACA)试题
- 1使用 Quick B制作图形化报表时同一张报表中只能选择同一种类型的图表。
- 2任务(Task是 Max Compute的基本计算单元。SQ及 MapReduce功能都是通过任务(rask)完成的对于用户提交的大多数任务包括 SQL DDL, SQL DM以及 MapReduce等待 Max Compute都会对其进行解析得出任务的执行计划再通过计算层进行处理。
- 3阿里云大数据计算服务(MaxCompute,原ODPS)中的表event是分区表,分区键是 dt (类型为string),每天生成一个分区,现在表中有dt=20160101至dt=20160531共5个 月的数据,为了统计3月份eventid非空的数据量,幵发人员运行了以下语句:select count(*) from event where substr(dt,1,6)=201603 and eventid is not null;对此任务的描述正确的是:()。
- 4开发人员在使用大数据计算服务的图计算时,主要的输入数据在表中,另外还有一些非结构化的配置信息存在一个本地文件中,则可以采用()方式使得这些配置信息在图计算过程中可用。
- 5阿里云机器学习PA是构建在阿里云分析型数据库 Analytic之上集数据处理建模离线预测在线预测为一体的机器学习平台
- 6在MaxCompute SQL中,对两个double类型的时间进行比较,正确的做法是:()。