海南旅游大屏-精选数据集项目

项目设计

总体流程

1

数据血缘关系

2

原始业务数据(精选公共数据源)

biz_hainan_visits

数据表说明

biz_hainan_attr

数据表说明

biz_hainan_news

数据表说明

数据处理过程数据

part0 准备工作

1.切换角色:为机构admin(或者机构devop)

切换为机构角色后: 1. 可以创建机构项目 2. 可以多个人合作协作进行编辑

3

2.查询自己的机构信息

每一个机构都有自己独立的一整套信息

4

5

3.获取本机构 Mysql 的链接信息

每一个机构,系统都为其会内置一套数据存储组件(Mysql,Hive等等),机构角色可以获得机构Mysql的链接方式如下:

1)切换到「数据管理」菜单

2)选择数据源链接

3)任意点击数据采集/数据导出/数据服务子菜单

4)在列表中可见预置数据源,点击获取地址

6

复制后得到以下格式的数据库信息

按照格式拆解后

4.创建一个数据工程项目

7

7

5.查看公共数据集的数据

9

part1: 采集旅游原始数据,完成数据计算、导出

10

11

采集:海南来访数据

  1. 数据源
    1. 选择public_mysql_readonly
    1. biz_hainan_visits
  2. 数据范围
    1. 选择全量
  3. 导出字段
    1. 默认全选
  4. 下一步
  5. 是否需要对数据进行分区
    1. 取消勾选(本案例先不考虑数据分区的情况)
  6. Hive数据库名称
    1. 保持默认(默认就会选择机构Hive)
  7. Hive表名称
    1. 填写:biz_hainan_visits(为保证后续使用教程的方便,建议使用教程时候填写此表名)
  8. 保存
  9. 运行

采集:海南景点数据

  1. 数据源
    1. 选择public_mysql_readonly
    1. biz_hainan_attr
  2. 数据范围
    1. 选择全量
  3. 导出字段
    1. 默认全选
  4. 下一步
  5. 是否需要对数据进行分区
    1. 取消勾选(本案例先不考虑数据分区的情况)
  6. Hive数据库名称
    1. 保持默认(默认就会选择机构Hive)
  7. Hive表名称
    1. 填写:biz_hainan_attractions(为保证后续使用教程的方便,建议使用教程时候填写此表名)
  8. 保存
  9. 运行

采集:新闻数据

  1. 数据源
    1. 选择public_mysql_readonly
    1. biz_hainan_news
  2. 数据范围
    1. 选择全量
  3. 导出字段
    1. 默认全选
  4. 下一步
  5. 是否需要对数据进行分区
    1. 取消勾选(本案例先不考虑数据分区的情况)
  6. Hive数据库名称
    1. 保持默认(默认就会选择机构Hive)
  7. Hive表名称
    1. 填写:biz_hainan_news(为保证后续使用教程的方便,建议使用教程时候填写此表名)
  8. 保存
  9. 运行

然后:使用Hive程序,对采集进来的数据做清洗、切分以及计算(3个计算步骤)

12

13

数据计算-1:自驾路线

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_routes;

create table if not exists ads_hainan_routes (
`index` INT,
`date` STRING,
`region` STRING,
`routes` INT
);

insert into table ads_hainan_routes
select ROW_NUMBER() OVER () as index, `date`, region, count(routes) as routes from biz_hainan_visits
where routes is not null
group by `date`, region
order by `date`, region ASC

数据计算-2:景点到访

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_attr_visits;

create table if not exists ads_hainan_attr_visits (
`index` INT,
`date` STRING,
`region` STRING,
`attr_scale` INT,
`attr_hc` INT
);

insert into table ads_hainan_attr_visits
select ROW_NUMBER() OVER () as index, `date`, region, attr_scale, attr_hc
from biz_hainan_attractions

数据计算-3:来琼航班

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_flights;

create table if not exists ads_hainan_flights (
`index` INT,
`date` STRING,
`region` STRING,
`flights` INT
);

insert into table ads_hainan_flights
select ROW_NUMBER() OVER () as index, `date`, region, count(flights) as flights from biz_hainan_visits
where flights is not null
group by `date`, region
order by `date`, region ASC

数据计算-4:景点活动

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_attr_act;

create table if not exists ads_hainan_attr_act (
`index` INT,
`date` STRING,
`region` STRING,
`attr_act` INT
);

insert into table ads_hainan_attr_act
select ROW_NUMBER() OVER () as index, `date`, region, attr_act
from biz_hainan_attractions

数据计算-5:明星驻场

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_attr_cel;

create table if not exists ads_hainan_attr_cel (
`index` INT,
`date` STRING,
`region` STRING,
`attr_cel` INT
);

insert into table ads_hainan_attr_cel
select ROW_NUMBER() OVER () as index, `date`, region, attr_cel
from biz_hainan_attractions

数据计算-6:区域到访

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_visits;

create table if not exists ads_hainan_visits (
`index` INT,
`date` STRING,
`region` STRING,
`visits` INT
);

insert into table ads_hainan_visits
select ROW_NUMBER() OVER () as index, `date`, region, count(*) as visits from biz_hainan_visits
group by `date`, region
order by `date`, region ASC

数据计算-7:景点空闲

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_attr_vac;

create table if not exists ads_hainan_attr_vac (
`index` INT,
`date` STRING,
`region` STRING,
`attr_vac` INT
);

insert into table ads_hainan_attr_vac
select ROW_NUMBER() OVER () as index, `date`, region, attr_vac
from biz_hainan_attractions

数据计算-8:要点新闻

  1. 粘贴复制下面HQL代码,保存步骤并运行
  2. 修改第一句:替换 「机构名称」为当前机构的真实名称(可以参考part0中的第2步)
use org_机构名称;

drop table if exists ads_hainan_news;

create table if not exists ads_hainan_news (
`index` INT,
`date` DATE,
`timestamp` TIMESTAMP,
`news` VARCHAR(200)
);

insert into table ads_hainan_news

select ROW_NUMBER() OVER () as index, b.`date` as `date`, b.`timestamp` as `timestamp`, b.news as news from

(select *, rank() over (partition by a.`date` order by a.`timestamp` desc ) as top5 from

(select cast(`timestamp` as date) as `date`,
from_unixtime(unix_timestamp(`timestamp`,'yyyy-MM-dd HH:mm')) as `timestamp`, news
from biz_hainan_news )a where `date` is not null)b
where top5 <=5

然后:使用ETL程序,清洗计算后的数据导出到数据集市待用

14

数据导出-1:导出自驾路线

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_routes
  3. Query
    1. 保持默认
  4. 下一步
  5. 数据源类型(输出源配置)
    1. Mysql
  6. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_routes
  7. 设置主键
    1. 保持默认
  8. 建表语句
    1. 点击:获取建表语句
  9. 数据变更
    1. 保持默认
  10. 下一步
  11. 点击「开始匹配」,得到匹配成功的提示
  12. 保存
  13. 运行

数据导出-2:导出景点到访

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_attr_visits
  3. Query

    1. 替换下面语句中的「机构名称」为本机构实际名称,查找办法参考part0-第二步

    2. select ROW_NUMBER() OVER () as index, *
      from
      (select distinct `date`, region, attr_scale as `景点规模`, attr_hc as `人数` from `org_机构名称`.`ads_hainan_attr_visits`) a
  4. 点击「查询字段」

  5. 下一步
  6. 数据源类型(输出源配置)
    1. Mysql
  7. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_attr_visits
  8. 设置主键
    1. 保持默认
  9. 建表语句
    1. 点击:获取建表语句
  10. 数据变更
    1. 保持默认
  11. 下一步
  12. 点击「开始匹配」,得到匹配成功的提示
  13. 保存
  14. 运行

数据导出-3:导出来琼航班

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_flights
  3. Query
    1. 保持默认
  4. 下一步
  5. 数据源类型(输出源配置)
    1. Mysql
  6. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_flights
  7. 设置主键
    1. 保持默认
  8. 建表语句
    1. 点击:获取建表语句
  9. 数据变更
    1. 保持默认
  10. 下一步
  11. 点击「开始匹配」,得到匹配成功的提示
  12. 保存
  13. 运行

数据导出-4:导出景点活动

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_attr_act
  3. Query

    1. 替换下面语句中的「机构名称」为本机构实际名称,查找办法参考part0-第二步

    2. select ROW_NUMBER() OVER () as index, * from
      (select distinct `date`, region, attr_act as `景点活动` from `org_机构名称`.`ads_hainan_attr_act`) a
  4. 点击「查询字段」

  5. 下一步
  6. 数据源类型(输出源配置)
    1. Mysql
  7. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_attr_act
  8. 设置主键
    1. 保持默认
  9. 建表语句
    1. 点击:获取建表语句
  10. 数据变更
    1. 保持默认
  11. 下一步
  12. 点击「开始匹配」,得到匹配成功的提示
  13. 保存
  14. 运行

数据导出-5:导出明星驻场

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_attr_cel
  3. Query

    1. 替换下面语句中的「机构名称」为本机构实际名称,查找办法参考part0-第二步

    2. select ROW_NUMBER() OVER () as index,  * from
      (select distinct `date`, region, attr_cel as `活动次数` from `org_机构名称`.`ads_hainan_attr_cel`) a
  4. 点击「查询字段」

  5. 下一步
  6. 数据源类型(输出源配置)
    1. Mysql
  7. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_attr_cel
  8. 设置主键
    1. 保持默认
  9. 建表语句
    1. 点击:获取建表语句
  10. 数据变更
    1. 保持默认
  11. 下一步
  12. 点击「开始匹配」,得到匹配成功的提示
  13. 保存
  14. 运行

数据导出-6:导出区域到访

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_visits
  3. Query
    1. 保持默认
  4. 下一步
  5. 数据源类型(输出源配置)
    1. Mysql
  6. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_visits
  7. 设置主键
    1. 保持默认
  8. 建表语句
    1. 点击:获取建表语句
  9. 数据变更
    1. 保持默认
  10. 下一步
  11. 点击「开始匹配」,得到匹配成功的提示
  12. 保存
  13. 运行

数据导出-7:导出景点空闲

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:ads_hainan_attr_vac
  3. Query

    1. 替换下面语句中的「机构名称」为本机构实际名称,查找办法参考part0-第二步

    2. select ROW_NUMBER() OVER () as index, * from 
      (select distinct `date`, region, attr_vac as `景点使用情况` from `org_机构名称`.`ads_hainan_attr_vac`)a
  4. 点击「查询字段」

  5. 下一步
  6. 数据源类型(输出源配置)
    1. Mysql
  7. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_attr_vac
  8. 设置主键
    1. 保持默认
  9. 建表语句
    1. 点击:获取建表语句
  10. 数据变更
    1. 保持默认
  11. 下一步
  12. 点击「开始匹配」,得到匹配成功的提示
  13. 保存
  14. 运行

数据导出-8:导出要点新闻

  1. 数据源类型(输入源配置)
    1. 选择:Hive
  2. 数据源
    1. 选择:org_机构名 (机构Hive数据库,默认是下拉列表中第一个)
    1. 选择:biz_hainan_news
  3. Query
    1. 保持默认
  4. 下一步
  5. 数据源类型(输出源配置)
    1. Mysql
  6. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_news
  7. 设置主键
    1. 保持默认
  8. 建表语句
    1. 点击:获取建表语句
  9. 数据变更
    1. 保持默认
  10. 下一步
  11. 点击「开始匹配」,得到匹配成功的提示
  12. 保存
  13. 运行

数据导出-8:导出自驾线路坐标数据

  1. 数据源类型(输入源配置)
    1. 选择:MySQL
  2. 数据源
    1. 选择:public_mysql
    1. 选择:biz_hainan_visits_route
  3. Query
    1. 保持默认
  4. 下一步
  5. 数据源类型(输出源配置)
    1. Mysql
  6. 数据源
    1. export-FM-ds-机构名(选择这个机构预置的Mysql输出源,默认是下拉列表中第一个)
    1. 填写:ads_hainan_visits_route
  7. 设置主键
    1. 保持默认
  8. 建表语句
    1. 点击:获取建表语句
  9. 数据变更
    1. 保持默认
  10. 下一步
  11. 点击「开始匹配」,得到匹配成功的提示
  12. 保存
  13. 运行

part2: 梳理进度,规范步骤命名

15

# 步骤名称 步骤类型
1 1.1 数据库采集-1:来访 数据库采集
2 1.2 数据库采集-2:景点 数据库采集
3 1.3 数据库采集-3:新闻 数据库采集
4 1.4 Hive程序-1:自驾路线 Hive程序
5 1.5 Hive程序-2:景点到访 Hive程序
6 1.6 Hive程序-3:来琼航班 Hive程序
7 1.7 Hive程序-4:景点活动 Hive程序
8 1.8 Hive程序-5:明星驻场 Hive程序
9 1.9 Hive程序-6:区域到访 Hive程序
10 1.10 Hive程序-7:景点空闲 Hive程序
11 1.11 Hive程序-8:要点新闻 Hive程序
12 1.12 数据导出-1:导出自驾路线 ETL程序
13 1.13 数据导出-2:导出景点到访 ETL程序
14 1.14 数据导出-3:导出来琼航班 ETL程序
15 1.15 数据导出-4:导出景点活动 ETL程序
16 1.16 数据导出-5:导出明星驻场 ETL程序
17 1.17 数据导出-6:导出区域到访 ETL程序
18 1.18 数据导出-7:导出景点空闲 ETL程序
19 1.19 数据导出-8:导出要点新闻 ETL程序
20 2.1 API-1:自驾路线统计 API
21 2.2 API-2:景点到访统计 API
22 2.3 API-3:来琼航班统计 API
23 2.4 API-4:景点活动统计 API
24 2.5 API-5:明星驻场统计 API
25 2.6 API-6:区域到访统计 API
26 2.7 API-7:景点空闲统计 API
27 2.8 API-8:要点新闻 API
28 2.9 API-9:自驾路线坐标查询 API
28 3.1 Docker应用(通过配置):海南旅游大屏 Docker应用(通过配置)

part3: 创建 API

数据集市概览

# 数据表 API名称 API路径
1 ads_hainan_routes 自驾路线统计 /hainanDashboard/driving
2 ads_hainan_attr_visits 景点到访统计 /hainanDashboard/attrVisits
3 ads_hainan_flights 来琼航班统计 /hainanDashboard/flights
4 ads_hainan_attr_act 景点活动统计 /hainanDashboard/attrAct
5 ads_hainan_attr_cel 明星驻场统计 /hainanDashboard/attrCel
6 ads_hainan_visits 区域到访统计 /hainanDashboard/visits
7 ads_hainan_attr_vac 景点空闲统计 /hainanDashboard/attrVac
8 ads_hainan_news 要点新闻 /hainanDashboard/news
9 hainan_visits_route 自驾路线坐标查询 /hainanDashboard/visitsRoute

/hainanDashboard/driving(自驾路线统计)

/hainanDashboard/attrVisits(景点到访统计)

/hainanDashboard/flights(来琼航班统计)

/hainanDashboard/attrAct(景点活动统计)

/hainanDashboard/attrCel(明星驻场统计)

/hainanDashboard/visits(区域到访统计)

/hainanDashboard/attrVac(景点空闲统计)

/hainanDashboard/news(要点新闻)

/hainanDashboard/visitsRoute(自驾路线坐标查询)

select * from ads_hainan_visits_route order by route_num,point_order

大屏发布

添加数据应用-Docker应用

使用下面的填写项来进行安装

  1. 镜像地址
    1. onlinepublic/hainan-tourism-dashboard:1.0
  2. 通用配置
    1. CPU:0.1
    2. MEM:64
    3. DISK:1
    4. Instance:1
  3. 网络配置
    1. 容器端口:5000
    2. 其余:保持默认
  4. 环境变量

注意:每个机构发布的 api 地址都是不一样的,完整地址需要进行拼接

tips:如何获取一个 API 的完整地址?

16**

  1. 上传并安装
  2. 启动应用