跳转至

Vertica 集成 CodeNOW

概述

CodeNOW 是一个云原生 DevOps 价值流交付平台,帮助管理整个开发生命周期。任何技能水平的开发者都可以使用 CodeNOW 开发微服务架构的应用。

测试环境

组件 版本
CodeNOW 6.7
Vertica JDBC Driver 11.1.0(从 Maven Central Repository 导入)
Vertica Analytical Database 11.1.0

创建 CodeNOW 项目并连接到 Vertica

创建应用

  1. 使用邮件中的链接登录演示环境。
  2. 点击 Create New Application
  3. 提供应用名称和描述,从 Production Environment 下拉选择 demo-env,点击 Confirm

创建组件

  1. Create Component 页面,输入组件名称和描述。
  2. Setup your Stack 部分:
  3. 选择 Standard stack
  4. Language:Java
  5. Build Tool:MAVEN
  6. Framework:Blank
  7. 点击 Confirm

添加 Vertica JDBC 依赖

  1. BackendComponent 页面,向下滚动到 Clone your Repository 部分,获取 GitLab 中的应用代码链接。
  2. 导航到 GitLab 链接查看生成的引导代码。
  3. 编辑 pom.xml,添加以下依赖:
<dependency>
    <groupId>com.vertica.jdbc</groupId>
    <artifactId>vertica-jdbc</artifactId>
    <version>11.1.0-0</version>
</dependency>

编写应用代码

编辑 src/main/java/org/example/service/Application.java,替换为以下代码以执行查询并以 JSON 格式返回 Vertica 结果:

package org.example.service;

import io.javalin.Javalin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLInvalidAuthorizationSpecException;
import java.sql.SQLTransientConnectionException;
import java.util.Properties;
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;

public class Application {
    public static void main(String[] args) throws IOException {
        Logger logger = LoggerFactory.getLogger(Application.class);
        logger.info("Hello World!");

        int serverPort;
        if (System.getenv("SERVER_PORT") != null) {
            serverPort = Integer.parseInt(System.getenv("SERVER_PORT"));
        } else {
            serverPort = 7000;
        }

        Javalin app = Javalin.create().start(serverPort);
        app.get("/", ctx -> ctx.result("Hello World"));
        app.get("/health", ctx -> ctx.result("OK"));

        app.get("/vertica_storeschema_object", ctx -> {
            Properties myProp = new Properties();
            myProp.put("user", "codenow_user");
            myProp.put("password", "<dbadmin_pwd>");
            myProp.put("loginTimeout", "35");

            try {
                Connection conn = DriverManager.getConnection(
                    "jdbc:vertica://<Vertica_DB_IP>:5433/<Vertica_DB_Name>", myProp);
                logger.info("Connected");
                java.sql.Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(
                    "SELECT store_city, store_region FROM store.store_dimension");

                JSONObject records = new JSONObject();
                JSONArray array = new JSONArray();
                while (rs.next()) {
                    JSONObject single_record = new JSONObject();
                    single_record.put("store_city", rs.getString("store_city"));
                    single_record.put("store_region", rs.getString("store_region"));
                    array.add(single_record);
                }
                conn.close();
                records.put("store_data", array);
                ctx.json(records);
            } catch (SQLTransientConnectionException connException) {
                System.out.print("Network connection issue: " + connException.getMessage());
            } catch (SQLInvalidAuthorizationSpecException authException) {
                System.out.print("Could not log into database: " + authException.getMessage());
            } catch (SQLException e) {
                e.printStackTrace();
            }
        });
    }
}

构建和部署

  1. 导航到 CodeNOW 仪表盘,点击已创建的应用查看详情。
  2. Components 部分,点击 Build 构建 BackendComponent。
  3. Build Component 窗口,选择 Release Build,输入版本号,选择 Next Major(首次主版本),点击 Confirm
  4. Build History 页面查看构建进度。
  5. 构建成功后,在应用详情窗口点击 Create New Application package
  6. 输入版本号和标签,选择要打包的版本,点击 Confirm
  7. Deployment configurations 中,点击 Create new Configuration
  8. Select Environment 下拉选择 demo-env
  9. 选择要部署的应用包
  10. 点击 Confirm
  11. 选择部署目标、部署配置、分配域和运行时配置,或使用默认值,点击 Deploy
  12. 部署成功后,在 Deployed Applications 部分可查看部署状态。
  13. 点击 Open in Browser,在 URL 后追加 /vertica_storeschema_object 以 JSON 端点形式查看 Vertica 查询结果。

参考


原文来源:https://www.vertica.com/kb/codeNOW_TE/Content/Partner/codeNOW_TE.htm