跳转至

Vertica 与 GitLab

关于本文档

本次技术探索的目标是检查 Vertica 与 GitLab 的连接。我们使用了 GitLab 试用版,并通过 GitLab CI/CD 测试了集成。在完成初始设置后,可以从 GitLab 远程目录推送和拉取 Vertica SQL 文件,然后通过 GitLab CI/CD 在 GitLab Web 界面中执行 Vertica SQL 脚本。我们还使用 Linux 和 Git 支持的数据库 IDE(DataGrip)测试了集成。您可以使用任何支持 Git 的 IDE。

本文档涵盖三种连接方式: - 使用 GitLab CI/CD 连接 - 使用 Linux 连接 - 使用 DataGrip IDE 连接

测试环境

  • Git 2.27.0
  • Vertica Analytic Database 11.0.2
  • Windows Server 2019 Standard
  • Linux Redhat 8.3
  • DataGrip 2021.3

方式一:使用 GitLab CI/CD 连接

前提条件

  1. 安装 Vertica ODBC 客户端,按照安装步骤操作。
  2. 在 Linux 机器上使用 yum install git 安装 Git。
  3. GitLab 创建账户,在 GitLab 仓库中创建新项目。
  4. 配置 Git 全局参数用于 Git 操作。
  5. 在 Linux 机器上创建 SSH 文件,在 GitLab Web 环境中进入 Edit Profile > SSH Keys,粘贴 SSH key,点击 Add key
  6. 在 Linux 机器上使用 yum install gitlab-runner 安装 GitLab runner,检查版本。
  7. 使用 gitlab-runner stop 停止 runner。
  8. 使用 gitlab-runner register 注册 runner,输入以下信息:
  9. GitLab Instance URL:输入 GitLab 实例 URL,如 https://gitlab.com/
  10. Registration Token:在 GitLab Web 环境的项目设置中,进入 Settings > CI/CD,展开 Runners 部分,复制注册令牌
  11. Description:输入 runner 的描述
  12. Tags:输入所需标签,如 sshci
  13. Executor:输入所需的执行器,示例中使用 shell
  14. 使用 Git clone 命令在 Linux 机器上克隆 GitLab 远程目录。

推送 Vertica SQL 文件到 GitLab 远程目录

  1. 在 Linux 机器的本地 GitLab 仓库中创建 Vertica SQL 文件 factorial.sql
    CREATE OR REPLACE PROCEDURE public.factorialSP(input int) LANGUAGE PLvSQL AS $$
    DECLARE
        i int := 1;
        output int := 1;
    BEGIN
        WHILE i <= input LOOP
            output := output * i;
            i := i + 1;
        END LOOP;
        RAISE INFO '%! = %', input, output;
    END;
    $$;
    
  2. 检查本地 Git 仓库状态。
  3. 添加 factorial.sql 文件到 Git 仓库并提交。
  4. 使用 Git Push 命令推送更改到 GitLab 远程目录。
  5. 刷新 GitLab Web 环境查看新添加的文件。

从 GitLab 远程目录拉取 Vertica SQL 文件

  1. 在 GitLab Web 环境的远程仓库中创建 Vertica SQL 文件 callfactorial.sql
    CALL public.factorialSP(5);
    
  2. 在 Linux 终端中,导航到 Git 本地仓库,执行 git pull 命令。

从 GitLab CI/CD 执行 Vertica SQL 脚本

  1. 在 Linux 机器上编辑 /etc/systemd/system/gitlab-runner.service,移除 --user "gitlab-runner" 文本。
  2. 使用 gitlab-runner restart 重启 gitlab-runner。
  3. 在 GitLab Web 环境的项目主页中,点击左侧导航的 CI/CD
  4. 点击 Use template 创建 .gitlab-ci.yml 文件。
  5. GitLab 提供包含 Build/Test/Deploy 阶段的示例 .yml 文件。
  6. 编辑 .yml 文件,输入在 GitLab 远程仓库上执行脚本的命令,例如:
    script:
      - /home/opt/vertica/bin/vsql -h <IP_Address> -p 5433 -d vertica_db -U dbadmin -w vdb -f ./factorial.sql
      - /home/opt/vertica/bin/vsql -h <IP_Address> -p 5433 -d vertica_db -U dbadmin -w vdb -f ./callfactorial.sql
    

    这些命令包含 gitlab-runner 所需的 vsql 二进制文件路径、数据库相关标志以及远程仓库中文件的名称。

  7. 提供提交消息并点击 Commit changes 保存 .yml 文件。CI/CD 管道在提交更改后立即启动。点击 View pipeline 查看。
  8. 作业日志显示 .yml 文件中命令所执行的操作。

方式二:使用 Linux 连接

前提条件

按照"使用 GitLab CI/CD 连接"部分的前提条件步骤 1-6 操作,并使用 Git clone 命令将 GitLab 远程目录克隆到 Linux 机器。

推送和拉取

推送和拉取步骤与方式一相同。

从 Linux 执行 Vertica SQL 脚本

调用 vsql 执行脚本:

  1. 创建阶乘存储过程:
    /home/opt/vertica/bin/vsql -h <IP_Address> -p 5433 -d vertica_db -U dbadmin -w vdb -f /home/vertica_test/factorial.sql
    
  2. 执行阶乘存储过程:
    /home/opt/vertica/bin/vsql -h <IP_Address> -p 5433 -d vertica_db -U dbadmin -w vdb -f /home/vertica_test/callfactorial.sql
    

方式三:使用 DataGrip IDE 连接

前提条件

  1. GitLab 创建账户,创建新项目。
  2. JetBrains 网站 在 Windows 机器上安装 DataGrip。
  3. 根据所使用的 IDE 下载 Vertica JDBC/ODBC 客户端

克隆 Git 远程仓库到本地仓库

  1. 在 Windows 机器上启动 DataGrip。点击 New Project,输入项目名称,点击 OK
  2. 点击 File > Data Sources。点击 Drivers 选项卡,滚动选择 Vertica。点击 + 号选择 Vertica,输入数据库详情,点击 Test Connection,点击 OK

    工具自带的默认驱动是 9.2.0。如需使用其他版本,可从 Data Sources 的 Drivers 选项卡导入 JDBC JAR 文件。

  3. 在工具栏菜单中,点击 Git > Create Git Repository,输入名称和位置,点击 OK
  4. 点击 Git > Enable Version Control Integration 启用 Git 操作。从下拉列表中选择 Git,点击 OK
  5. 点击 Git > Clone,提供 Git 远程和本地仓库详情,点击 Clone
  6. 输入用户名和密码,点击 Log In

推送 Vertica SQL 文件到 GitLab 远程目录

  1. 在 Windows 机器的本地仓库中创建 factorial.sql 文件(内容同上)。
  2. 在工具栏菜单中,点击 Git > Commit。选择所需文件,输入提交消息,点击 Commit(仅提交)或 Commit and Push(提交并推送)。或者点击 Git > Push 推送更改到远程仓库。

从 GitLab 远程目录拉取 Vertica SQL 文件

  1. 在 GitLab Web 环境的远程仓库中创建 callfactorial.sql 文件:
    CALL public.factorialSP(5);
    
  2. 在 DataGrip 中点击 Git > Pull 从远程仓库获取更改到本地仓库。选择本地 Git 仓库分支,点击 Pull
  3. 提供 Git 登录凭据,点击 Log In

更多信息


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