Skip to content

Latest commit

 

History

History
133 lines (105 loc) · 3.65 KB

README.md

File metadata and controls

133 lines (105 loc) · 3.65 KB

flink-acorn

Flink Acorn

🐿️ 让Spring更好的集成Flink

Maven Version

📢 注意

目前仅支持Yarn-Per-Job模式

📒 文档

📦 使用说明

<dependency>
    <groupId>com.isxcode.acorn</groupId>
    <artifactId>acorn-client</artifactId>
    <version>1.2.0</version>
</dependency>
acorn:
  check-servers: true
  servers:
    default:
      host: isxcode
      port: 30155
      key: acorn-key
package com.isxcode.acorn.demo;

import com.isxcode.acorn.client.template.AcornTemplate;
import com.isxcode.acorn.api.pojo.AcornResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping
@RestController
@SpringBootApplication
@RequiredArgsConstructor
public class DemoApplication {

    private final AcornTemplate acornTemplate;

    public static void main(String[] args) {

        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/execute")
    public AcornResponse executeFlinkSql() {

        String flinkSql = "" +
            "CREATE TABLE from_table(\n" +
            "    username STRING,\n" +
            "    age INT\n" +
            ") WITH (\n" +
            "    'connector'='jdbc',\n" +
            "    'url'='jdbc:mysql://isxcode:30306/ispong_db',\n" +
            "    'table-name'='users',\n" +
            "    'driver'='com.mysql.cj.jdbc.Driver',\n" +
            "    'username'='root',\n" +
            "    'password'='ispong123');" +
            "" +
            "CREATE TABLE to_table(\n" +
            "    username STRING,\n" +
            "    age INT\n" +
            ") WITH (\n" +
            "    'connector'='jdbc',\n" +
            "    'url'='jdbc:mysql://isxcode:30306/ispong_db',\n" +
            "    'table-name'='users_sink',\n" +
            "    'driver'='com.mysql.cj.jdbc.Driver',\n" +
            "    'username'='root',\n" +
            "    'password'='ispong123');" +
            "" +
            "insert into to_table select username, age from from_table";

        return acornTemplate.build().sql(flinkSql).deploy();
    }
}
{
    "code":"200",
    "message":"操作成功",
    "acornData":{
        "applicationId":"application_1667964484125_0003",
        "flinkJobId":"1667964484125_0003"
    }
}

Thanks for free JetBrains Open Source license

jetbrains