...
ETL高级查询是可以将数据源表或者数据集中的数据进行清洗、聚合、关联和合并等操作,并将加工后的数据输出,能够快速的完成数据准备。
注意info | ||
---|---|---|
| ||
使用ETL高级查询的前提必须要先部署好数据挖掘的引擎。 | ||
信息 | ||
ETL高级查询目前只支持抽取模型! 如果数据模型原来是直连模式,增加ETL高级查询之后,会强制变成抽取模式。 详情可查阅:1、使用 ETL高级查询 的前提必须要先部署好数据挖掘的引擎,否则无法正常使用。 2、ETL高级查询 目前只支持抽取模型。 3、ETL高级查询 暂不支持按次抽取,详情可查看:直连&抽取。 4、其他类型转成 ETL高级查询 之后无法再转回去,这是不可逆操作。 5、如果数据模型原来是直连模式,增加ETL高级查询之后,会强制变成抽取模式。详情可查阅:直连&抽取。 |
2 示例说明
2.1 数据合并
当需要把不同来源(不同系统,或不同业务结构)的数据合并到一起时,写SQL UNION的方式需要完全匹配所有目标结构的字段类型、长度、字段名等,当出现某些字段不需要映射时会使SQL脚本报错;这个时候可以通过ETL高级查询的“合并行”节点进行处理,”合并行“是将多张表的数据按行合并成一个新表,缺失的列以“null”值填充
以产品自带northwind数据库的【订单表】、【订单详细表】为示例,进行数据合并,最终效果图如下:
具体的操作步骤如下:
1、创建数据模型并在模型中增加 “ETL高级查询”
- 先把“关系数据源”节点拖入到画布中,并且给节点配置数据源、SCHEMA、表名;依次选择northwind、default、订单表;
- 配置好了之后,右键菜单“复制”,复制一个关系数据源节点,重新选择表名:订单详情表;再拖入“合并行”,并且连接起来:如下图
2、 选择“合并行”节点的“选择列”,用于设置各表的字段对应关系,同别名+同数据类型的会默认进行匹配;如果匹配不上默认“忽略”,即显示null;详情可查看:合并行
3、输出到Mpp,执行成功之后,点击【保存】并返回到数据模型;可以看到在模型中生成了一个大宽表:你可以设置及修改查询, 也可以设置与其他查询的关系、构建数据模型
...
6、关于ETL功能,还可以查看:自助ETL。 |
2 生成大宽表
用 ETL高级查询 生成 大宽表 :可以“将不同粒度的指标合并到到一张大宽表,便于用不同维度进行分析”,并且大宽表抽取到 高速缓存库,可以提高性能。
以产品内置northwind 数据库的“订单表”、“产品表”.....为例,生成大宽表。
具体步骤如下:
1、新建模型并且在模型中增加 ETL高级查询。
2、进入到 ETL高级查询:
- 先从左侧拖入 关系数据源 节点, 设置好数据源(northwind)、SCHEMA(default)、表名(订单表),再 执行该节点。
- 然后复制该节点,粘贴3次,分别在关系数据源配置 选择不同的表 “订单详细表”、“产品表”、“产品类别表”,分别执行。
- 拖入 多表JOIN 节点,并且把 刚拖入的关系数据源与之进行连接,再点击 多表JOIN 节点 下面的 关联设置 ,设置表与表之间的关系,具体的详细设置可查看:多表JOIN。
- 多表JOIN 执行成功之后,连接 输出到MPP。
3、界面上所有节点,运行成功之后,可查看输出的 大宽表 的数据:
4、生成好 大宽表 之后,保存 并返回模型,可以在模型中查看大宽表,还支持修改大宽表的字段属性,详情可参考:设置及修改查询。
- ETL高级查询 除了同库多表关联生成大宽表,也可以 跨库多表关联生成大宽表 进行取数,步骤一样(不同的点是 在 关系数据源 配置不同的业务库、SCHEMA、表名),过程不再累述。
- 另外,ETL还可以实现“行转列”、“列转行”、“全量抽取”等,详情可查看:ETL节点介绍。
5、完成建模之后,可进行数据分析,详情请参考 可视化与数据分析。