结构是根据当前代码,解析出SQL下发运行的流程结构图,帮助用户快速梳理编辑的SQL情况,方便修改查看。

结构

如下SQL所示:

INSERT OVERWRITE TABLE dw_user_info_all_d PARTITION (dt='${bdp.system.bizdate}')
SELECT COALESCE(a.uid, b.uid) AS uid
  , b.gender
  , b.age_range
  , b.zodiac
  , a.region
  , a.device
  , a.identity
  , a.method
  , a.url
  , a.referer
  , a.time
FROM (
  SELECT *
  FROM ods_log_info_d
  WHERE dt = ${bdp.system.bizdate}
) a
LEFT OUTER JOIN (
  SELECT *
  FROM ods_user_info_d
  WHERE dt = ${bdp.system.bizdate}
) b
ON a.uid = b.uid;

根据这段代码,解析出结构:



当鼠标放在圆圈中,会出现对应的解释:

  1. 源表:select查询的目标表。
  2. 筛选:筛选表中要查询的具体分区。
  3. 第一部分中间表(查询视图):将查询数据的结果放入一张临时表。
  4. 关联(join):将两部分查询结果通过join拼接。
  5. 第二部分中间表(查询视图):将join的结果汇总到一张临时表中,这张临时表存在三天,三天后自动清除。
  6. 目标表(插入):将第二部分得到的数据插入到insert overwrite的表中。