0%

分析bi数据获取流程

一:导入数据

1. bi_etl:通过定时任务脚本将数据从源数据库导出:

(1) 修改配置文件,执行dump_order.sh,导入部分测试数据
(2)其中mysqldump导出数据到文件中
(3)shell无法直接执行source,可以用bash来操作,命令:sudo bash dump_order.sh
(4)sh文件可能是在windows下面编辑的,在vim中使用set fileformat=unix 去除\M字符
(5)运行sh文件可在data目录下生成sql文件
(6)注意事项:
为什么不使用增量:因为有个中间表没有update_at,financial的表不能随意加字段

1-1修改:
(1)第一步导数据,源数据(来自于order_system)已经执行了删除五张表的三个字段,因此导出的数据结构和以前导出的数据结构是不一样的;

2. 通过jump server将bi_etl的数据文件导出到bi_new的upload中(本地无法部署)**

(1)由于本地无法直接部署jump server,直接拷贝刚才生成的文件到bi_new的upload中;
(2)load_new.sh文件读取的是data.tar.gz压缩文件,因此直接压缩整个data文件夹到upload文件夹下

3. bi_dsvcs读取数据并存入bi_new数据库

(1)修改配置文件(不修改可能会覆盖线上数据)
(2)执行脚本并去除\M字符(会读取conf文件,set ff=unix可以去除/r字符)
(2)在load_new.sh脚本中(使用了mysql的source命令)将刚才文件中的数据导入ori_new数据库中
(4)注意事项:sh文件中使用了tar -xvf 解压data文件,但是实际上没有解压成功,文件不存在,可以直接复制所有文件

3-2修改:
(1)执行sql命令直接修改ori_new的结构,命令如下:

1
2
3
4
5
6
7
8
9
10
use ori_new;
alter table `order_product` add `departure_date` date DEFAULT NULL;
alter table `order_product` add `end_date` date DEFAULT NULL;
alter table `order_product` add `product_status` int(11) NOT NULL DEFAULT '10000';
alter table `order_order_product_combine` drop column `departure_date`, drop column `end_date`, drop column `product_status`;
alter table `order_order_product_customize` drop column `departure_date`, drop column `end_date`, drop column `product_status`;
alter table `order_order_product_hotel` drop column `departure_date`, drop column `end_date`, drop column `product_status`;
alter table `order_order_product_oneday` drop column `departure_date`, drop column `end_date`, drop column `product_status`;
alter table `order_order_product_ticket` drop column `departure_date`, drop column `end_date`, drop column `product_status`;
alter table `order_order_product_tour` drop column `departure_date`, drop column `end_date`, drop column `product_status`;

4. bi_dpsvc将数据从ori_new中导入到bi库中并合并部分数据

(1)module/order.py:__get_order_product_line_table:定义了操作的五张表:
order_order_product_oneday、order_order_product_tour,order_order_product_ticket,order_order_product_hotel,order_order_product_combine
order_product_tff表从ori_new就没有导入;order_product_customize单独操作
(2)class OrderProduct

4-2修改:
(1)bi数据库的order_product表不存在end_date,departure_date两个字段;order_product_customize存在这两个字段,修改方法如下:

1
2
3
4
use bi;
alter table `order_product` add `departure_date` date DEFAULT NULL;
alter table `order_product` add `end_date` date DEFAULT NULL;
alter table `order_order_product_customize` drop column `departure_date`, drop column `end_date`, drop column `product_status`;

(2)修改代码