当前位置: 代码网 > it编程>编程语言>Java > SpringBoot操作MaxComputer方式(保姆级教程)

SpringBoot操作MaxComputer方式(保姆级教程)

2025年03月12日 Java 我要评论
引言maxcomputer本质上是管理dataworks 中的表,我们如何用java框架来操作maxcomputer中的表数据呢,有几种方法,今天我推荐的是maxcomputer结合spring bo

引言

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>
        </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() {
    }
}

四、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">
<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 中并不直接支持 updatedelete 操作。

修改

但是可以使用其他方法修改数据(这个语句只修改了 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 覆盖数据,将不需要的数据排除。

示例:删除 id = 3 的数据

insert overwrite table user
select * from user where id != 3;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com