本文主要是介绍SpringBoot操作MaxComputer方式(保姆级教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《SpringBoot操作MaxComputer方式(保姆级教程)》:本文主要介绍SpringBoot操作MaxComputer方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的...
引言
MaxComputer本质上是管理dataworks 中的表,我们如何用Java框架来操作MaxComputer中的表数据呢,有几种方法,今天我推荐的是MaxComputer结合Spring Boot ;MyBATis 的操作方式,这种方法优点是很简单,不用学习新的API 数据mybatis 操作即可。
首先要在阿里云后台创建一张表,下面我用user 表测试
https://maxcompute.console.aliyun.com/cn-shanghai/sql-express
一、引入依赖
<!-- spring boot 依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--添加阿里云的依赖--> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-udf</artifactId> <version>0.36.4-public</version> </dependency> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>0.36.4-public</version> China编程 </dependency> <!-- MyBatis 依赖 --> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!-- MaxCompute JDBC 连接驱动 --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-jdbc</artifactId> <version>3.2.0</version> </dependency>
二、配置文件 application.properties(信息用自己的奥)
其中用户名和密码就是 AccessKeyId和 accessKeySecret
spring.application.name= huixin-dataworks # ??? server.port= 8080 aliyun.accessKeyId= aliyun.accessKeySecret=N8rsIEWSH6AwinhfDp8shiDEHhRbpD aliyun.endpoint= http://service.cn-shanghai.maxcompute.aliyun.com/api aliyun.project= liingniu_2023 # MaxCompute 数据源配置 spring.datasource.url=jdbc:odps:http://service.cn-shanghai.maxcompute.aliyun.com/api?project=liingniu_2023 spring.datasource.username= spring.datasource.password=N8rsIEWSH6AwinhfDp8shiDEHhRbpD spring.datasource.driver-class-name=com.aliyun.odps.jdbc.OdpsDriver # MyBatis 配置 mybatis.mapper-locations=classpath:mapper/*.xml
三、实体类User.java
package com.huixin.model; public class User { private Integer id; private String name; public User(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public User() { android } }
四、UserController
package com.huixin.controller; import com.huixin.model.User; import com.huixin.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; /** * 查询数据 * @return */ @GetMapping("/users") public List<User> getUsers() { return userService.selectAll(); } }
五、UserService
package com.huixin.service; import com.huixin.dao.UserDao; import com.huixin.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserDao userDao; public List<User> selectAll(){ return userDao.getAllUsers(); } }
六、UserDao
package com.huixin.dao; import com.huixin.model.User; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * <p>Project: huixin-dataworks - UserDao</p> * <p>Powered by webrx On 2025-02-27 08:41:08</p> * <p>描述:<p> * * @author 简单遗忘 [814736551@qq.com] * @version 1.0 * @since 17 */ @Mapper public interface UserDao { List<User> getAllUsers(); }
七、UserDao.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&gjst; <mapper namespace="com.huixin.dao.UserDao"> <select id="getAllUsers" resultType="com.huixin.model.User"> SELECT id, name FROM user LIMIT 10 </select> </mapper>
八、postman 访问,成功查询数据
附件(修改和删除数据)
MaxCompute 是一个 分布式大数据计算平台,主要用于 批量处理,并不支持像传统数据库那样的 实时更新、删除 操作。
它的设计更多地侧重于批处理和大规模数据查询,因此,MaxCompute 中并不直接支持 UPDATE
和 DELETE
操作。
修改
但是可以使用其他方法修改数据(这个语句只修改了 id 为3 的数据其他的不影响)
INSERT OVERWRITE TABLE user SELECT id, CASE WHEN id = 3 THEN '杨逍' ELSE name END AS name FROM user;
删除
方法一:分区删除
假设 user
表是按 dt
分区的,现在你想删除 dt = '20250227'
的数据。这样会删除整个分区的数据。
ALTER TABLE user DROP PARTITION (dt = '20250227');
方法二:覆盖删除
如果你不使用分区或需要删除特定的数据,最常见的方法是通过 INSERT OVERWRITE
覆盖数android据,将不需要的数据排除。
示例:删除 id = 3
的数据
INSERT OVERWRITE TABLE user SELECT * FROM user WHERE id != 3;
总结
这篇关于SpringBoot操作MaxComputer方式(保姆级教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!