一. 简介
1.1 介绍
Dataphin是由阿里研发的智能大数据建设平台,提供一站式数据中台(大数据平台)建设服务。Dataphin通过沙箱(项目)实现业务及作业资源隔离,运行更快,且数据同步到Dataphin后,会统一将敏感数据脱敏后放入脱敏层,增强安全性并提高了效率。
Dataphin支持选择不同计算引擎进行数据处理,包括:MaxCompute、HadoopHive、AnalyticDB PostgreSQL、Flink,产品使用大致分成几个部分:数仓规划、数据研发、资产管理和资产服务。其服务模式包括:
1)公共云在线服务:Dataphin 支持按月订购的预付费模式,开通即可使用;
2)线下独立部署:提供一次购买软件并每年订购维保的买断式服务。
Dataphin的产品框架如下:
![](https://img-blog.csdnimg.cn/img_convert/1a9947b65600ce7b414c7b8137e4211d.png)
1.2页面展示
![](https://img-blog.csdnimg.cn/img_convert/8e3a68775f171a15906a551dbb2b713f.png)
研发:报表开发及数据查询
资产:快速查询当前Dataphin有哪些数据资产
规划及管理中心:一般大数据运维及产品开发人员使用
注:右上角的消息通知,可以快速了解你申请的账号/表权限当前的审批节点在哪。
二. 操作手册
2.1 权限申请
DP使用需要开通账号权限、沙箱权限、表及字段权限,具体如下:
1)账号权限:使用Dataphin的权限(走工单);
2)项目(沙箱)权限:申请与自己业务及部门相关的项目权限,实现作业资源隔离(走工单);
3)表权限及字段权限:在DP页面申请即可
资产—>搜索相关表—>申请权限—>选择项目及对应字段
Step1:打开资产页面
![](https://img-blog.csdnimg.cn/img_convert/66f145c4e8839feaa8724a217768fab5.png)
Step2:搜索对应的表
![](https://img-blog.csdnimg.cn/img_convert/8cdb09bfbc5ab8e53bc8580bfeac72cf.png)
Step3:申请权限
![](https://img-blog.csdnimg.cn/img_convert/c5d34e88e33a32b0327cbededd6cf8e1.png)
Step4:填写信息并提交
![](https://img-blog.csdnimg.cn/img_convert/b6175396a09bc3208a858c1bbad0e82e.png)
2.2 数据查询
步骤:选择沙箱—>创建文件夹及页面—>写SQL脚本à保存并执行
注:写SQL语句查询数据:只能查询申请过权限的表,不然会报错。
![](https://img-blog.csdnimg.cn/img_convert/94c57535d012287a045b53de07806fde.png)
实例:
=======================================================
SELECT id
,created_at
,phone
,ds
from ods_test.ods_test_goods_detail_record_df
where ds = '${bizdate}'
-- where ds = '20230109'
========================================================
2.3 数据开发
必须选择可执行调度任务的沙箱权限。具体操作步骤如下:
2.3.1:建表并写入数据库数据
Step1:新建页面,填写任务名称及调度类型,并点击确认。
![](https://img-blog.csdnimg.cn/img_convert/b906c4972b9341c05788f202046bbed1.png)
Step2:建表&写入数据库数据
![](https://img-blog.csdnimg.cn/img_convert/4e301770e27af596e80d1ad9744a5143.png)
实例:
========================================================
CREATE TABLE${ods_test}.ods_test_goods_detail_record_df
(
id string COMMENT '编号',
created_at date COMMENT '创建时间',
phone string COMMENT '客户号码'
)
COMMENT '信息记录'
PARTITIONED BY (ds string)
=========================================================
insert overwrite tableods_test.ods_test_goods_detail_record_df partition (ds='${bizdate}')
select id
,created_at
,phone
fromods_real.ods_real_goods_detail_record_df;
=========================================================
Step3:运行、提交并发布。
![](https://img-blog.csdnimg.cn/img_convert/e6c72516e00afb6a7648e51a7f416b11.png)
运行无误后,要填写属性进行调度配置
![](https://img-blog.csdnimg.cn/img_convert/532dc7278b641d520b9f8dba768128b8.png)
![](https://img-blog.csdnimg.cn/img_convert/38590e6fd0b21377e8e54db72c23c1ad.png)
2.3.2:建表并写入本地数据
如果要写入本地数据,则需要如下步骤:
![](https://img-blog.csdnimg.cn/img_convert/bc16c323fa875a5eae3719ba500f210c.png)
Step1&2:选择集成环境à新建页面à离线管道
![](https://img-blog.csdnimg.cn/img_convert/450dee83450586db170849e29d5df7bb.png)
Step3:选择组件并拖入画布
![](https://img-blog.csdnimg.cn/img_convert/fe8be5d1e36d6b555fbdff73e5d35026.png)
注:右键点击组件的三个点,可以进行配置、复制、删除等操作。
![](https://img-blog.csdnimg.cn/img_convert/145692fd90aeb80931d42f37fe54e2f6.png)
Step4:输入组件配置(以CSV文件为例)
![](https://img-blog.csdnimg.cn/img_convert/2d49a53c88bf5f3621461c7de186d613.png)
注:本地的CSV文件表头不要有中文,不然无法解析。
Step5:输出组件配置
![](https://img-blog.csdnimg.cn/img_convert/a74874595eaf9e637a1a6ddaa1fc88b9.png)
Step6:连接输入和输出
![](https://img-blog.csdnimg.cn/img_convert/024865a6a0a5f6d6f1a1f56a4adcf0a5.png)
Step7:保存&运行&预览&提交
![](https://img-blog.csdnimg.cn/img_convert/d791e8cd94aae54e8e8ebbe8b8a00de3.png)
执行完上述步骤,即可在数据库查到相应的数据表和数据。
2.4 数据运维
2.5 连接Jupyter作数据分析
三. 常用文档及注意事项
3.1 常用文档
DP官网
https://help.aliyun.com/product/87584.html?spm=a2c4g.750001.list.108.4cc17b13iaSxMY
SQL对照表
https://help.aliyun.com/document_detail/96342.html
3.2常用释义
df/di
df指的是全量更新;di指的是增量更新。对于全量更新的表,取其最新分区即可;对于增量更新,根据数据需要的时间维度取分区即可。
ds:分区,DP取数必须要卡分区,不然会报错。即写sql语句的时候,where后一定要加ds = '${bizdate}'(动态分区)
统一命名规范
1)表字段、表名
表字段一般英文小写、不要用关键字命名字段,例如,datetime;
表名:结尾用df/di区分全量表还是增量表,开头加上数据库名,尽量能够在表明中描述清楚表的含义,单词间用短下划线连接。
例:ods_test.ods_test_goods_detail_record_df
2)脚本
脚本名称和输出结果表的名称保持一致
一个脚本尽应该只产生一张表,便于维护
添加必要注释
基础模式/开发模式
基础模式(Basic)只能查询,不可调度,故适合分析及策略人员;开发模式(Dev-Prod)可调度,适合数据开发人员。
![](https://img-blog.csdnimg.cn/img_convert/573c488f72dbfba7c4568c1b59b53594.png)
3.3 常用SQL
时间/日期
日期与ds格式转换
date(call_time) = date(to_date('${bizdate}','yyyymmdd'))
ds =replace(date(dateadd(current_date(),-1,'day')),'-','')
datetime(concat(cast([日期(dte)] as string),' 00:00:00'))
date(to_date(ds,'yyyymmdd')) =date_add(current_date(),-2)
字符串
substr(b.uid,1,1) in ('0','2','f','4')
格式转换
cast(a.talk_length as bigint)