SpringBoot操作MaxComputer方式(保姆級教程)
引言
MaxComputer本質(zhì)上是管理dataworks 中的表,我們?nèi)绾斡肑ava框架來操作MaxComputer中的表數(shù)據(jù)呢,有幾種方法,今天我推薦的是MaxComputer結(jié)合Spring Boot ;MyBatis 的操作方式,這種方法優(yōu)點(diǎn)是很簡單,不用學(xué)習(xí)新的API 數(shù)據(jù)mybatis 操作即可。
首先要在阿里云后臺創(chuàng)建一張表,下面我用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> </dependency> <!-- MyBatis 依賴 --> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!-- MaxCompute JDBC 連接驅(qū)動 --> <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 數(shù)據(jù)源配置 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
三、實(shí)體類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() { } }
四、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; /** * 查詢數(shù)據(jù) * @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"> <mapper namespace="com.huixin.dao.UserDao"> <select id="getAllUsers" resultType="com.huixin.model.User"> SELECT id, name FROM user LIMIT 10 </select> </mapper>
八、postman 訪問,成功查詢數(shù)據(jù)
附件(修改和刪除數(shù)據(jù))
MaxCompute 是一個 分布式大數(shù)據(jù)計(jì)算平臺,主要用于 批量處理,并不支持像傳統(tǒng)數(shù)據(jù)庫那樣的 實(shí)時更新、刪除 操作。
它的設(shè)計(jì)更多地側(cè)重于批處理和大規(guī)模數(shù)據(jù)查詢,因此,MaxCompute 中并不直接支持 UPDATE
和 DELETE
操作。
修改
但是可以使用其他方法修改數(shù)據(jù)(這個語句只修改了 id 為3 的數(shù)據(jù)其他的不影響)
INSERT OVERWRITE TABLE user SELECT id, CASE WHEN id = 3 THEN '楊逍' ELSE name END AS name FROM user;
刪除
方法一:分區(qū)刪除
假設(shè) user
表是按 dt
分區(qū)的,現(xiàn)在你想刪除 dt = '20250227'
的數(shù)據(jù)。這樣會刪除整個分區(qū)的數(shù)據(jù)。
ALTER TABLE user DROP PARTITION (dt = '20250227');
方法二:覆蓋刪除
如果你不使用分區(qū)或需要刪除特定的數(shù)據(jù),最常見的方法是通過 INSERT OVERWRITE
覆蓋數(shù)據(jù),將不需要的數(shù)據(jù)排除。
示例:刪除 id = 3
的數(shù)據(jù)
INSERT OVERWRITE TABLE user SELECT * FROM user WHERE id != 3;
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot 參數(shù)校驗(yàn)的具體實(shí)現(xiàn)方式
這篇文章主要介紹了Spring Boot 參數(shù)校驗(yàn)的具體實(shí)現(xiàn)方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(22)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07IntelliJ IDEA 部署 Web 項(xiàng)目,看這一篇夠了!
這篇文章主要介紹了IntelliJ IDEA 部署 Web 項(xiàng)目的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Java語言實(shí)現(xiàn)基數(shù)排序代碼分享
這篇文章主要介紹了Java語言實(shí)現(xiàn)基數(shù)排序代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Spring Boot 項(xiàng)目中整合 MyBatis 和 PageHel
這篇文章主要介紹了Spring Boot 項(xiàng)目中整合 MyBatis 和 PageHelper的操作步驟,整合 PageHelper 到 Spring Boot 項(xiàng)目中主要包括添加依賴、配置數(shù)據(jù)源與 MyBatis、配置 PageHelper 以及在業(yè)務(wù)邏輯中使用 PageHelper 進(jìn)行分頁查詢,需要的朋友可以參考下2024-04-04spring boot項(xiàng)目如何采用war在tomcat容器中運(yùn)行
這篇文章主要介紹了spring boot項(xiàng)目如何采用war在tomcat容器中運(yùn)行呢,主要講述將SpringBoot打成war包并放入tomcat中運(yùn)行的方法分享,需要的朋友可以參考下2022-11-11