1、前期准备
注册阿里云官网账号
准备RAM用户
进入控制台,获取个人的AccessKey ID 和 AccessKey Secret
申请开通maxcompute服务,创建一个MaxCompute项目,记录项目名称,例如我的是:default_project_******6
2、中台计算任务
本文介绍MaxCompute Studio、dataworks两种方式开发计算任务
2.1 添加阿里云账户
打开IDEA -> file -> settings -> plugins,搜索并安装插件 MaxCompute Studio
在IDEA里的Settings对话框左侧导航栏上,单击MaxCompute Studio > Accounts,进入Accounts配置选项页,点击加号。
- Account Name:该账户在MaxCompute Studio中的标识名称。
- Using properties:手动填入AccessKey ID和AccessKey Secret。此选项与Using properties file选项二选一即可。
- Access Id:填入阿里云账号或RAM用户的AccessKey ID。
- Access Key:填入阿里云账号或RAM用户的AccessKey Secret。
2.2 IDEA的MaxCompute Studio
- 创建maxcompute java项目
- 新建一个maxcompute java类
- 选择java类的类型,比如UDF,输入类名后回车。
UDF:自定义函数【一个输入对应一个输出】
UDTF:为用户自定义表值函数【一个输入对应多个输出】
UDAF:为用户自定义聚合函数【多个输入对应一个输出】
- 创建的java UDF类如下
- 注册MaxCompute UDF。
在UDF Java文件上单击右键,选择Deploy to server
在Package a jar, submit resource and register function对话框中配置如下参数后,单击OK
- 注册完后,在dataworks上使用如下:
2.3 在dataworks上编写sql、嵌入式java
3、java应用集成SDK
业务系统集成maxcompute,开发相关业务推送数据到数据中台。
sdk依赖配置如下
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.40.10-public</version>
</dependency>
java sdk测试代码参考如下
import java.util.List;
import com.aliyun.odps.Instance;
import com.aliyun.odps.Odps;
import com.aliyun.odps.OdpsException;
import com.aliyun.odps.account.Account;
import com.aliyun.odps.account.AliyunAccount;
import com.aliyun.odps.data.Record;
import com.aliyun.odps.task.SQLTask;
public class OdpsSdk {
private static final String accessId = "LTAI5tD**********vgLPDAL";
private static final String accessKey = "QoBUb3****************lXA90nyf";
private static final String endPoint = "http://service.odps.aliyun.com/api";
private static final String project = "default_project_*****6";
private static final String sql = "select * from secondtab;";
private static final String insertSql = "insert into secondtab VALUES (009128, 'sdk', 'm');";
public static void main(String[] args) {
Account account = new AliyunAccount(accessId, accessKey);
Odps odps = new Odps(account);
odps.setEndpoint(endPoint);
odps.setDefaultProject(project);
Instance i;
try {
i = SQLTask.run(odps, insertSql);
i.waitForSuccess();
List<Record> records = SQLTask.getResult(i);
for(Record r:records){
System.out.println(r.get(0).toString());
}
} catch (OdpsException e) {
e.printStackTrace();
}
}
}
4、费用估算
4.1、资源估算
1 CU = 4GB + 1 CPU Core
4.2、配置消费预警
高额消费预警,当天一个产品后付费消费大于提醒阈值时,每天短信提醒一次
4.3、查看消费账单