项目目标

熟练使用shell,数据库,简单的帆软报表制作

项目要求

通过对数据库的中某个业务,不断进行数据治理,获得最终结果,并从帆软报表展示为柱状图

配置管理

svn服务器

http://192.168.10.14:8089/svn/bd2024/trunk/finereport
finereport:

  • sql
  • shell
  • README

    oracle服务器地址

    测试环境

    123456@192.168.10.7"">bd2024test/123456@192.168.10.7/xe

开发环境

123456@192.168.10.7"">bd2024dev/123456@192.168.10.7/xe

生产环境

123456@192.168.10.7"">bd2024prod/123456@192.168.10.7/xe

创建用户

create user bd2024test identified by 123456;
grant connect,resource to bd2024test;

create user bd2024dev identified by 123456;
grant connect,resource to bd2024dev;

create user bd2024prod identified by 123456;
grant connect,resource to bd2024prod;

数据库结构

和dalian01的订单表一样

帆软报表

做成柱状图,显示订单数为前10的客户,

分类: 客户
系列: 运货商
分值: 订单量

数据更新速度

系统每5分钟支插入100条订单数据。
SQL: 使用Insert into, random 函数进行插入
crontab:

开发环境

测试环境 魏启明

  • 配置好账户,oracle账户
  • linux 的服务器为192.168.10.71

生产环境 zeen

  • 配置好账户,oacle

  • linux 192.168.10.83

    任务和计划

严老师: 生产bd2024source 5分钟生成100个新订单。

shell代码

# 文件名称 gen_order.sh
export NLS_LANG=American_America.AL32UTF8
sqlplus -S system/oracle@192.168.10.7:1521/xe <<EOF
    INSERT  INTO BD2024SOURCE.ORDERS o2
    SELECT * FROM (
                    SELECT
                            (
                            CAST(
                            DBMS_RANDOM.value (
                                      (SELECT max(订单ID) FROM BD2024SOURCE.ORDERS o ),
                                      (SELECT max(订单ID) FROM BD2024SOURCE.ORDERS o )+1000
                                      )
                                       AS number(10)
                                       )
                             ) 订单ID ,
                             (
                                     SELECT 客户ID
                                        FROM (
                                          SELECT 客户ID
                                          FROM dalian01.客户
                                          ORDER BY DBMS_RANDOM.RANDOM()
                                        ) t
                                        WHERE ROWNUM = 1 AND  DBMS_RANDOM.RANDOM()>0
                             ) 客户ID ,
                             (
                                 SELECT 雇员ID
                                        FROM (
                                          SELECT 雇员ID
                                          FROM dalian01.雇员
                                          ORDER BY DBMS_RANDOM.RANDOM()
                                        ) t
                                        WHERE ROWNUM = 1
                             ) 雇ID,
                             (
                                    sysdate - DBMS_RANDOM.VALUE(1000,4000)
                              ) 订购日期 ,
                            (
                                    sysdate - DBMS_RANDOM.VALUE(1000,4000)
                             ) 到货日期  ,
                            (
                                    sysdate - DBMS_RANDOM.VALUE(1000,4000)
                             ) 发货日期 ,
                              (
                                    CAST ( DBMS_RANDOM.VALUE(1,4) AS number(3) ) - 1
                             ) 运货商ID ,
                            '9' 运货费 ,
                            '' 货主名称,
                            ''  货主地址,
                            ''  货主城市,
                            ''  货主地区,
                            ''  货主邮政编码,
                            '中国' 货主国家,
                            '' 是否已付,
                            ''  货主省份,
                            '0'  应付金额,
                            '0'  是否达标,
                            '1'  不达标
                                    FROM dual
    )t
    CONNECT BY LEVEL < 100 ;
EOF

cron

*/5 * * * * /root/bin/gen_order.sh

魏启明: 把我生成数据导入的db2024test用户下

insert into bd2024test.orders s
select * from bd2024soucce bs
where bs.订单ID not in ( select 订单ID from bd2024test  )

3-57/5

zeen: 把魏启明生成数据导入的bd2024dev用户下
7-53/5

部署帆软报表

  • Linux安装帆软服务器
    省略

  • 将做好的cpt 复制的帆软服务器下
    webroot/WEB_INF/reportlets/

并且在帆软服务器上增加数据源,名称和cpt中相同,部署成功

作者:严锋  创建时间:2024-05-05 11:08
最后编辑:严锋  更新时间:2025-05-09 15:48