# FirstBlood **Repository Path**: xiaohan2013/FirstBlood ## Basic Information - **Project Name**: FirstBlood - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-15 - **Last Updated**: 2021-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 精简版ETL数据转换工具 ========== ## 功能 1.数据同步(目前只支持MySQL) 2.执行SQL脚本 (后期开发) 3.定时执行 ## 安装(两种方法) ### 1.Docker 镜像安装 #### 系统已打包成docker镜像,3个多G,可以直接使用 1.1 拉取镜像 docker pull hanson001/first_blood:v1 1.2 运行容器 docker run -itd --privileged -p 10028:22 -p 9028:9000 -p 3328:3306 -p 8080:8080 --name FirstBlood_test hanson001/first_blood:v1 /usr/sbin/init 10028映射centos系统ssh连接端口,用户名root 密码 123.com 3328映射MySQL数据库端口,用户名root 密码123.com 8080映射内部websocket端口 9028映射内部系统访问端口,登录地址:http://服务器IP:9028 用户名 admim 密码123456.com ### 2.源码配置安装 #### 准备环境 1.python 环境 2.7 2.安装requirements.txt里的依赖包,若运行时还报缺少模块的错误,再安装缺少的模块。 3.创建日志目录 cd <项目路径/FirstBlood> mkdir log #### 建表 整个项目所需要的表,关于用户认证、权限控制等等使用django自带的,而项目其它功能模块使用原生SQL语句创建。 涉及到项目功能模块增删改查,全部使用原生SQL语句。 涉及到用户认证、权限控制等等,使用Django的orm。 1.create_table.sql 执行建表语句,创建项目中各个模块所需要的表 2.执行 python manage.py migrate,创建项目用户认证、权限控制所需要的表(Django自带) #### 运行其它服务 由于项目使用到定时任务和异步实时查询日志功能,所以需要使用到celery和websockted。 这两个服务的启动和运行全部交给supervisord托管,所以需要配置好supervisord配置文件。 supervisord配置文件分两个,dev为开发环境的配置文件,pro为生产环境的配置文件。 里面的路径需要根据自己实际的环境配置。 1.配置完成后执行以下命令,启动celery和websocketed服务 supervisord -c 项目路径/FirstBlood/supervisord/FirstBlood_pro.conf (开发环境使用FirstBlood_dev.conf文件) 2.根据配置文件里的日志路径查看是否报错,有报错百度、Google。 如果错误不影响功能的使用,则忽略。 #### settings配置文件 由于项目的settings配置文件,需要根据开发环境、生产环境来连接不同环境的数据库,所以需要在开发环境添加变量。 settings文件里就可以通过development_environment变量,选择是连接生产数据库,还是开发环境数据库。 1.1 修改 bash_profile 文件 vim ~/.bash_profile # 程序根据不同环境变量加载测试或生产的配置文件 development_environment=1 export development_environment #### 下载阿里开发数据同步工具datax 5.1 下载datax工具,放在项目目录下 项目路径/FirstBlood/datax 5.2 创建日志目录 由于项目的数据同步,底层使用的datax,而datax产生的日志文件名是固定长度,且以datax的 json配置文件名命名, 当配置文件名超过日志文件名的固定长度时,datax将会以固定长度截取配置文件名,来命名日志文件名称。所以无法以 datax的自生的日志来实时显示同步日志。所以需要新创建日志目录 web_log,以任务ID+13位时间戳命名日志文件名, 将datax产生的日志导入web_log目录里。 操作命令: cd 项目路径/FirstBlood/datax/ mkdir web_log ## 启动 以上步骤执行完成后,就可以运行项目。若有错误,百度Google。 ## 使用 大部分功能操作参照博客 databaseinfo 表,需要预先导入生产库的表信息