图书馆数据仓库

目录

1.数据仓库的数据来源为业务数据库(mysql)

       初始化脚本

   init_book_result.sql

2.通过sqoop将mysql中的业务数据导入到大数据平台(hive)

 导入mysql数据到hive中

3.通过hive进行数据计算和数据分析 形成数据报表

4.再通过sqoop将数据报表导出到mysql 

5.使用FineReport制作数据报表


1.数据仓库的数据来源为业务数据库(mysql)

        包含 图书表 t_book_info,

                借书表 t_borrow_info,  

                用户表 t_user_info  38条数据

                图书类别表 dim_books_type 5条

       初始化脚本

        init_mysql.sql

        

-- 设置sql_mode
set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';-- 创建数据库library
create database library;-- 切换数据库
use library;-- 创建用户信息表
CREATE TABLE t_user_info(user_id        varchar(100) not null,user_name      varchar(100) not null,sex            varchar(10)  not null,age            int not null
)DEFAULT CHARSET='utf8';-- 创建图书表
CREATE TABLE t_book_info(book_id        varchar(100) not null,book_name 	   varchar(100) not null,type_id        varchar(100) not null
)DEFAULT CHARSET='utf8';-- 创建图书类别表
CREATE TABLE dim_books_type(type_id    varchar(100) not null,type_name  varchar(100) not null
)DEFAULT CHARSET='utf8';-- 创建借书表
CREATE TABLE t_borrow_order(user_id        varchar(100) not null,book_id   varchar(100) not null,create_time    varchar(100) not null
)DEFAULT CHARSET='utf8';-- 用户信息表插入数据
insert into t_user_info values ('114', '王小名', '男', 22);
insert into t_user_info values ('115', '张美丽', '女', 27);
insert into t_user_info values ('116', '李华', '男', 30);
insert into t_user_info values ('117', '陈晓红', '女', 35);
insert into t_user_info values ('118', '赵伟', '男', 24);
insert into t_user_info values ('119', '周小燕', '女', 29);
insert into t_user_info values ('120', '吴强', '男', 33);
insert into t_user_info values ('121', '郑丽', '女', 26);
insert into t_user_info values ('122', '王刚', '男', 28);
insert into t_user_info values ('123', '黄芳', '女', 31);
insert into t_user_info values ('124', '刘涛', '男', 36);
insert into t_user_info values ('125', '杨静', '女', 25);
insert into t_user_info values ('126', '张杰', '男', 32);
insert into t_user_info values ('127', '陈莉', '女', 23);
insert into t_user_info values ('128', '赵勇', '男', 38);
insert into t_user_info values ('129', '周敏', '女', 30);
insert into t_user_info values ('130', '吴浩', '男', 29);
insert into t_user_info values ('131', '郑薇', '女', 34);
insert into t_user_info values ('132', '王林', '男', 27);
insert into t_user_info values ('133', '黄梅', '女', 26);
insert into t_user_info values ('134', '刘军', '男', 37);
insert into t_user_info values ('135', '杨慧', '女', 25);
insert into t_user_info values ('136', '张明', '男', 33);
insert into t_user_info values ('137', '陈霞', '女', 31);
insert into t_user_info values ('138', '赵海', '男', 28);
insert into t_user_info values ('139', '周兰', '女', 36);
insert into t_user_info values ('140', '吴飞', '男', 24);
insert into t_user_info values ('141', '郑敏', '女', 27);
insert into t_user_info values ('142', '王磊', '男', 35);
insert into t_user_info values ('143', '黄蓉', '女', 30);
insert into t_user_info values ('144', '刘丽', '女', 26);
insert into t_user_info values ('145', '杨勇', '男', 32);
insert into t_user_info values ('146', '张华', '男', 29);
insert into t_user_info values ('147', '陈敏', '女', 34);
insert into t_user_info values ('148', '赵丽', '女', 31);
insert into t_user_info values ('149', '周刚', '男', 25);
insert into t_user_info values ('150', '吴丽', '女', 37);
insert into t_user_info values ('151', '郑强', '男', 28);
insert into t_user_info values ('152', '王芳', '女', 33);
insert into t_user_info values ('153', '黄伟', '男', 27);
insert into t_user_info values ('154', '刘静', '女', 36);
insert into t_user_info values ('155', '杨华', '男', 24);
insert into t_user_info values ('156', '张敏', '女', 31);
insert into t_user_info values ('157', '陈军', '男', 30);
insert into t_user_info values ('158', '赵敏', '女', 26);
insert into t_user_info values ('159', '周强', '男', 35);
insert into t_user_info values ('160', '吴红', '女', 32);
insert into t_user_info values ('161', '郑丽', '女', 29);
insert into t_user_info values ('162', '王伟', '男', 34);
insert into t_user_info values ('163', '黄静', '女', 31);
insert into t_user_info values ('164', '刘涛', '男', 25);
insert into t_user_info values ('165', '杨敏', '女', 37);
insert into t_user_info values ('166', '张勇', '男', 28);
insert into t_user_info values ('167', '陈芳', '女', 33);
insert into t_user_info values ('168', '赵军', '男', 27);
insert into t_user_info values ('169', '周丽', '女', 36);
insert into t_user_info values ('170', '吴华', '男', 24);commit;-- 图书表插入数据
-- Book Type: 散文随笔 (a)
insert into t_book_info values ('a001', '珠江潮汐美', 'a');
insert into t_book_info values ('a002', '晨曦的低语', 'a');
insert into t_book_info values ('a003', '山间小路', 'a');
insert into t_book_info values ('a004', '秋叶之歌', 'a');
insert into t_book_info values ('a005', '夜色中的琴声', 'a');
insert into t_book_info values ('a006', '城市边缘的诗人', 'a');
insert into t_book_info values ('a007', '冬日里的暖阳', 'a');
insert into t_book_info values ('a008', '海边的沉思', 'a');
-- book type: 世界名著 (b)
insert into t_book_info values ('b001', '悲惨世界', 'b');
insert into t_book_info values ('b002', '百年孤独', 'b');
insert into t_book_info values ('b003', '双城记', 'b');
insert into t_book_info values ('b004', '战争与和平', 'b');
insert into t_book_info values ('b005', '简爱', 'b');
insert into t_book_info values ('b006', '飘', 'b');
insert into t_book_info values ('b007', '堂吉诃德', 'b');
insert into t_book_info values ('b008', '呼啸山庄', 'b');
-- book type: 少儿童书 (c)
insert into t_book_info values ('c001', '小王子的星球', 'c');
insert into t_book_info values ('c002', '魔法森林的秘密', 'c');
insert into t_book_info values ('c003', '海底两万里', 'c');
insert into t_book_info values ('c004', '勇敢的小火车头', 'c');
insert into t_book_info values ('c005', '神奇的种子', 'c');
insert into t_book_info values ('c006', '月亮上的兔子', 'c');
insert into t_book_info values ('c007', '彩虹桥下的秘密', 'c');
insert into t_book_info values ('c008', '会说话的石头', 'c');
-- book type: 历史小说 (d)
insert into t_book_info values ('d001', '三国演义', 'd');
insert into t_book_info values ('d002', '水浒传', 'd');
insert into t_book_info values ('d003', '大明王朝', 'd');
insert into t_book_info values ('d004', '清朝末年', 'd');
insert into t_book_info values ('d005', '大唐盛世', 'd');
insert into t_book_info values ('d006', '宋朝风云', 'd');
insert into t_book_info values ('d007', '明朝那些事儿', 'd');
insert into t_book_info values ('d008', '清朝宫廷秘史', 'd');
-- book type: 国学入门 (e)
insert into t_book_info values ('e001', '论语解读', 'e');
insert into t_book_info values ('e002', '道德经注释', 'e');
insert into t_book_info values ('e003', '易经初探', 'e');
insert into t_book_info values ('e004', '诗经选读', 'e');
insert into t_book_info values ('e005', '孟子精讲', 'e');
insert into t_book_info values ('e006', '庄子心解', 'e');
insert into t_book_info values ('e007', '大学中庸', 'e');
insert into t_book_info values ('e008', '孝经新解', 'e');commit;-- 图书类别表插入数据
insert into dim_books_type values('a','散文随笔');
insert into dim_books_type values('b','世界名著');
insert into dim_books_type values('c','少儿童书');
insert into dim_books_type values('d','历史小说');
insert into dim_books_type values('e','国学入门');commit;-- 借书表插入数据
insert into t_borrow_order values('114','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('115','e002','2022-11-08 09:23:54');
insert into t_borrow_order values('114','b003','2022-11-08 09:23:54');
insert into t_borrow_order values('116','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('114','c001','2022-11-08 09:23:54');
insert into t_borrow_order values('115','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('117','b004','2022-11-08 09:23:54');
insert into t_borrow_order values('118','a007','2022-11-08 09:23:54');
insert into t_borrow_order values('118','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('119','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('119','d001','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('121','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('123','b006','2022-11-08 09:23:54');
insert into t_borrow_order values('124','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('125','e004','2022-11-08 09:23:54');
insert into t_borrow_order values('126','b002','2022-11-08 09:23:54');
insert into t_borrow_order values('127','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('124','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('122','b001','2022-11-08 09:23:54');
insert into t_borrow_order values('128','a001','2022-11-08 09:23:54');
insert into t_borrow_order values('129','a006','2022-11-08 09:23:54');
insert into t_borrow_order values('125','d008','2022-11-08 09:23:54');
insert into t_borrow_order values('123','e008','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('130','b007','2022-11-08 09:23:54');
insert into t_borrow_order values('131','a007','2022-11-08 09:23:54');
insert into t_borrow_order values('132','a008','2022-11-08 09:23:54');
insert into t_borrow_order values('133','e004','2022-11-08 09:23:54');
insert into t_borrow_order values('135','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('133','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('136','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('138','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('139','d001','2022-11-08 09:23:54');
insert into t_borrow_order values('133','e001','2022-11-08 09:23:54');
insert into t_borrow_order values('133','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('132','e002','2022-11-08 09:23:54');
insert into t_borrow_order values('131','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('141','b003','2022-11-08 09:23:54');
insert into t_borrow_order values('140','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('142','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('142','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('146','b006','2022-11-08 09:23:54');
insert into t_borrow_order values('144','d006','2022-11-08 09:23:54');
insert into t_borrow_order values('148','d007','2022-11-08 09:23:54');
insert into t_borrow_order values('144','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('142','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('143','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('149','d004','2022-11-08 09:23:54');
insert into t_borrow_order values('150','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('151','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('151','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('154','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('153','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('156','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('155','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('157','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('158','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('159','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('154','c006','2022-11-08 09:23:54');
insert into t_borrow_order values('153','d007','2022-11-08 09:23:54');
insert into t_borrow_order values('152','c004','2022-11-08 09:23:54');
insert into t_borrow_order values('154','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('151','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('152','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('162','c003','2022-11-08 09:23:54');
insert into t_borrow_order values('161','a001','2022-11-08 09:23:54');
insert into t_borrow_order values('166','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('163','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('167','c003','2022-11-08 09:23:54');
insert into t_borrow_order values('169','a005','2022-11-08 09:23:54');
commit;

   init_book_result.sql

-- 设置sql_mode
set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';-- 创建数据库result,并进行切换
create database book_result;use book_result;-- 创建图书类别浏览量表
CREATE TABLE t_books_type_borrow_count(type_name        varchar(100) not null,borrow_count        int not null
)DEFAULT CHARSET='utf8';

2.通过sqoop将mysql中的业务数据导入到大数据平台(hive)

在hive中建立映射的数据库

init_hive.sql

create database library;
use library;-- 创建用户信息表create table t_user_info (user_id STRING    comment "用户id",   user_name STRING  comment "用户姓名", sex STRING        comment "用户姓名",       age INT           comment "用户性别"
) 
comment "用户信息表"
row format delimited fields terminated by ','
stored as textfile;-- 创建图书表create table t_book_info (book_id STRING    comment "图书id",   book_name STRING  comment "书名", type_id STRING    comment "类别id"
) 
comment "图书表"
row format delimited fields terminated by ','
stored as textfile;-- 创建图书类别表create table dim_books_type (type_id STRING    comment "类别id",   type_name STRING  comment "类别名"
) 
comment "图书类别表"
row format delimited fields terminated by ','
stored as textfile;-- 创建借书表create table t_borrow_order (user_id STRING     comment "用户id",    book_id STRING     comment "图书id",    create_time STRING comment "创建时间"
) 
comment "借书表"
row format delimited fields terminated by ','
stored as textfile;

source /opt/sql/library/init_hive.sql;

 导入mysql数据到hive中

此次mysql与hive中的表名都相同

sqoop import \

                                     虚拟机      端口号 mysql中的数据库名

--connect jdbc:mysql://bigdata004:3306/mall \  

--username root \

--password root123 \

           mysql中的表名

--table t_user_info \

--num-mappers 1 \

--hive-import \

--fields-terminated-by "," \

--hive-overwrite \

导入dim_books_type


sqoop import \
--connect jdbc:mysql://bigdata004:3306/library \
--username root \
--password root123 \
--table dim_books_type \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table library.dim_books_type

3.通过hive进行数据计算和数据分析 形成数据报表


--切换数据库
use library;--创建图书类别借阅表
--从借书表中获取图书id 
--从图书表中获取图书id的类别id
--从类别表中获取类别名
--表中显示 类名 和 该类名的总数()create table if not exists library.dws_borrow_books_type_count
asselect t3.type_name,count(t2.type_id) as borrow_count from (select book_id from t_borrow_order) t1inner join t_book_info t2 on t1.book_id=t2.book_idinner join dim_books_type t3 on t2.type_id=t3.type_idgroup by t3.type_name;

4.再通过sqoop将数据报表导出到mysql 

-- sqoop导出数据到mysql

sqoop export \

                                   主机名                 数据库
--connect jdbc:mysql://bigdata004:3306/result \
--username root \
--password root123 \

                    mysql上的表名
--table  t_city_sale_total \
--num-mappers 1 \

                    hdfs上的数据库位置
--export-dir /user/hive/warehouse/mall_bigdata.db/dws_sale_order_city_total \
--input-fields-terminated-by  "\001"

-- sqoop导出数据到mysqlsqoop export \
--connect jdbc:mysql://bigdata004:3306/book_result \
--username root \
--password root123 \
--table t_books_type_borrow_count \
--num-mappers 1 \
--export-dir /user/hive/warehouse/library.db/dws_borrow_books_type_count \
--input-fields-terminated-by "\001"

5.使用FineReport制作数据报表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【matlab】智能优化算法——求解目标函数

智能优化算法在求解目标函数方面发挥着重要作用,它通过迭代、筛选等方法来寻找目标函数的最优值(极值)。以下是关于智能优化算法求解目标函数的详细介绍: 一、智能优化算法概述 智能优化算法是一种搜索算法,旨在通过…

设置单实例Apache HTTP服务器

配置仓库 [rootlocalhost ~]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vi rpm.repo仓库代码: [BaseOS] nameBaseOS baseurl/mnt/BaseOS enabled1 gpgcheck0[AppStream] nameAppStream baseurl/mnt/AppStream enabled1 gpgcheck0挂载 [rootlocalhost …

2.4G无线收发芯片 XL2401D,SOP16封装,集成单片机,高性价比

XL2401D 芯片是工作在2.400~2.483GHz世界通用ISM频段,片内集成了九齐 NY8A054E单片机的SOC无线收发芯片。芯片集成射频收发机、频率收生器、晶体振荡器、调制解调器等功能模块,并且支持一对多组网和带ACK的通信模式。发射输出功率、工作频道以及通信数据…

网络基础:IS-IS协议

IS-IS(Intermediate System to Intermediate System)是一种链路状态路由协议,最初由 ISO(International Organization for Standardization)为 CLNS(Connectionless Network Service)网络设计。…

Vue 前端修改页面标题无需重新打包即可生效

在public文件夹下创建config.js文件 index.html页面修改 其他页面的标题都可以用window.title来引用就可以了!

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】认证服务03—分布式下Session共享问题

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】分布式下Session共享问题 session原理分布式下session共享问题Session共享问题解决—session复制Session共享问题解决—客户端存储Session共享问题解决—hash一致性Session共享问题…

ASUS/华硕飞行堡垒8 FX506L FX706L系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 ,安装结束后带隐藏分区,一键恢复,以及机器所有驱动软件。 系统版本:Windows10 原厂系统下载网址:http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意:仅支持以上型号专用…

基于.NET开源游戏框架MonoGame实现的开源项目合集

前言 今天分享一些基于.NET开源游戏框架MonoGame实现的开源项目合集。 MonoGame项目介绍 MonoGame是一个简单而强大的.NET框架,使用C#编程语言可以创建桌面PC、视频游戏机和移动设备游戏。它已成功用于创建《怒之铁拳4》、《食肉者》、《超凡蜘蛛侠》、《星露谷物…

【IT领域新生必看】Java中的对象创建魔法:小白也能掌握的五种方法

文章目录 引言为什么需要创建对象?创建对象的五种常见方式1. 使用 new 关键字示例: 2. 使用反射示例: 3. 使用克隆示例: 4. 使用序列化和反序列化示例: 5. 使用工厂方法示例: 选择合适的对象创建方式总结 引…

Spring容器Bean之XML配置方式

一、首先看applicationContext.xml里的配置项bean 我们采用xml配置文件的方式对bean进行声明和管理,每一个bean标签都代表着需要被创建的对象并通过property标签可以为该类注入其他依赖对象,通过这种方式Spring容器就可以成功知道我们需要创建那些bean实…

comsol随机材料参数赋值

comsol随机材料参数赋值 在comsol中定义外部matlab函数 在comsol中定义外部matlab函数 首选项,安全性,允许 材料中,将杨氏模量更改为变量函数 计算 应力有波动,可见赋值成功 也可以看到赋值的材料参数:

植物大战僵尸杂交版V2.1+修改器+融合版

植物大战僵尸杂交版v2.1 新增新植物,全新模式与玩法! 内含窗口放大工具与修改器 主播同款游戏,下载使用即可! 链接: https://pan.baidu.com/s/1znjbqgBSdqTJWZLBOhe5hA?pwdj6ra 提取码: j6ra

vulnhub--IMF

环境 攻击机:192.168.96.4 靶机:ip未知 主机探测 确定靶机ip为32的主机 端口扫描 访问80端口 外围打点 在contact.php页面源码中找到了flag1 之后没啥突破 但查看网络后发现contact.php页面请求的三个js文件的文件名很有特点,猜测是base64编码…

模型优化调参利器贝叶斯优化bayesian-optimization实践

早在之前很多项目尤其是预测类型的项目中,就已经比较广泛地在实用贝叶斯优化库了,这是一个非常出色的纯python实现的项目,地址在这里,如下所示: 写这篇文章主要有两个目的,一方面是觉得这个工具库挺不错的值…

零基础做项目---五子棋对战---day01

创建项目 这里使用阿里云服务器 https://start.aliyun.com/ 勾选 MyBatis Framework (在SQL分类下)MySQL Driver (在SQL分类下)WebSocket (在Messaging分类下)Spring Web (在Web分类下) 项目结构 消息发送机制 按照当前已有的知识,主要是HTTP HTTP自身是难以实现这…

c++ 里如何检测内存泄露:比如用了 new ,但没有用 delete

(1 方法一) 用 MFC 框架的 F5 不带断点的调试。可以在输出窗口提示是否有内存泄露。 (2 方法二) ,在 main 函数中添加如下代码,用 F5 不带断点的调试: int main() {_CrtSetDbgFlag( _CRTDBG_A…

vue.js微商城后台管理系统

一.需要运行的效果 20240701-231456 二.代码(解析) 首先,为项目添加依赖: yarn add element-plus --save yarn vue-router4 --save 新建一个项目包,然后命名为商品管理,在components中新建几个vue文件。 …

C++新特性

C新特性主要体现在语法改进和标准库扩充两个方面。以下是一些主要的C新特性: 语法改进 统一的初始化方法:C11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型。这种定义…

【C语言】指针(1)--入门理解

目录 一、内存和地址 二、指针变量和地址 三、指针变量类型的意义 一、内存和地址 只要讲指针就离不开内存 因为指针就是访问内存的 计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数 据也会放…

PY32F030高性能单片机,主频高达48M,最大64 KB 闪存,8 KB SRAM

PY32F030是普冉的一颗32位高性能MCU,采用32 位 ARM Cortex-M0 内核,高达16~64 Kbytes Flash 和 2~8 Kbytes SRAM 存储器,最高 48 MHz 工作频率。PY32F030 单片机的工作温度范围为 -40 ~ 105 C,工作电压范围为1.7 ~ 5.5 V&#xff…