欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 使用jenkins将airflow-dbt部署到服务器上

使用jenkins将airflow-dbt部署到服务器上

2024/10/26 3:38:32 来源:https://blog.csdn.net/weixin_42067536/article/details/142800843  浏览:    关键词:使用jenkins将airflow-dbt部署到服务器上

系列文章目录


文章目录

  • 系列文章目录
  • 课程地址YT
  • 一、jenkins服务器的初始化配置
    • 1.1 运行第一个jenkins pipeline
  • 二、编写本地dbt项目
    • 2.1 克隆git上的初始文件到本地
    • 2.2 本地创建虚拟环境
    • 2.3 创建airflow的Dockerfile
    • 2.4 安装dbt
    • 2.5 创建dbt所需要的snowflake数据库
    • 2.6 配置docker-compose.yml文件
      • 2.6.1 docker image的配置
      • 2.6.2 volumes的配置
    • 2.7 本地运行docker
      • 2.7.1 开启airflow的web服务
      • 2.7.2 编写第一个dag测试dbt
      • 2.7.2 运行dag,测试成功
  • 三、使用Jenkins打包/上传 image
    • 3.1 将jenkins里的git改为私有仓库
    • 3.2 Jenkins将代码打包
    • 3.3 将打包好的image上传到dockerhub里
      • 3.1生成dockerhub的credential
      • 3.2 编辑dockerhub上传的stage
  • 四、jenkins部署项目
    • 4.1项目运行的服务器环境部署
      • 4.1.1 添加ssh agent的credential
      • 4.1.2 将dockerhub里的image拉取到服务器
      • 4.1.3 将jenkins服务器里的项目所有代码上传到项目服务器
      • 4.1.3 部署阶段的完整代码
    • 4.2 Airflow的dags和dbt的代码处理
      • 4.2.1 使用最简单的方式进行dags的更新
    • 4.3 部署过程中出现的问题
      • 4.3.1 服务器上的airflow dag不显示
      • 4.3.2 dbt的log无法查看


课程地址YT

Complete CICD DevOps project | Git, Dockerhub, Dockerhost,Jenkins|Deploying container on web-server

一、jenkins服务器的初始化配置

1.1 运行第一个jenkins pipeline

  1. 在github里创建一个public的项目,并且复制地址
  2. 在jenkins里创建新的pipeline
  3. 编写pipeline的scripts
node{stage('github checkout'){git branch: 'main', url: 'https://github.com/CXTV/jenkins_dbt.git'       }
}
  1. 运行Pipeline,成功

在这里插入图片描述
5. 验证是否真的成功,根据Pipeline的名称,进入到服务器里的jenkins的文件夹里,查看是否有该项目

cd /var/lib/jenkins/workspace/dbt_airflow

二、编写本地dbt项目

2.1 克隆git上的初始文件到本地

  1. 克隆到本地
git clone https://github.com/CXTV/jenkins_dbt.git
  1. 创建并切换一个新的分支
git checkout -b dbtSetup
  1. 第一次提交分支
git add .
git commit -m 'initialize branch dbtsetup'
git push --set-upstream origin dbtSetup

2.2 本地创建虚拟环境

  1. 创建python 3.10的虚拟环境
pipenv --python 3.10
  1. 运行虚拟环境
pipenv shell 

2.3 创建airflow的Dockerfile

指定airflow的运行环境

  • Dockerfile
FROM apache/airflow:2.8.4-python3.10  
COPY requirements.txt requirements.txt
RUN pip install --user --upgrade pip
RUN pip install -r requirements.txt
  • requirements.txt
dbt-core
dbt-snowflake
apache-airflow-providers-snowflake
git

2.4 安装dbt

一般情况下,我们需要先在当前目录下安装一次dbt,但是由于我们已经有自己用的文件夹和组件,所以可以直接复制到我们的项目

  1. 复制dbt的核心组件
    在这里插入图片描述
  2. root里的profiles.yml解释
    在这里插入图片描述

2.5 创建dbt所需要的snowflake数据库

  1. 创建数据库信息
-- 创建角色
CREATE ROLE IF NOT EXISTS transform;
GRANT ROLE TRANSFORM TO ROLE ACCOUNTADMIN;
-- 创建数据库和schema
CREATE DATABASE IF NOT EXISTS DBT_ELT;
CREATE SCHEMA IF NOT EXISTS DBT_ELT.BASE;
CREATE SCHEMA IF NOT EXISTS DBT_ELT.STAGING;
  1. 创建一个新的账号,用于本次项目
CREATE USER IF NOT EXISTS dbtPASSWORD='shangxi123'LOGIN_NAME='dbt'MUST_CHANGE_PASSWORD=FALSEDEFAULT_WAREHOUSE='COMPUTE_WH'DEFAULT_ROLE='transform'DEFAULT_NAMESPACE='AIRBNB.RAW'COMMENT='DBT user used for data transformation';
  1. 给角色和账号授权
--授权warehouse的操作给transform
GRANT OPERATE ON WAREHOUSE CO

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com