疫情大屏-精选数据集项目

项目设计

总体流程

1

数据血缘关系

2

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

biz_covid19

数据表说明

数据字典

字段名称 字段中文释义 字段类型 数据样例
index 记录编号 BIGINT 1
data_day 记录日期 TEXT 2019-12-01
name TEXT 湖北
chirdren_name TEXT 武汉市
total_confirm 总确诊人数 BIGINT 10
total_heal 总治愈人数 BIGINT 1
total_dead 总死亡人数 BIGINT 1
today_confirm 当日确诊人数 DOUBLE 1
today_dead 当日死亡人数 DOUBLE 1
today_heal 当日治愈人数 DOUBLE 1
today_newConfirm 当日新增确诊人数 DOUBLE 2

biz_cov19_articles

数据表说明

数据字典

字段名称 字段中文释义 字段类型 数据样例
article_title 新闻标题 VARCHART [安徽] 45万人取消春节假期 安徽卫健系统全力应对疫情
publish_time 新闻发布时间 VARCHART 2020-01-24
article_text 新闻摘要 TEXT 为应对当前新型冠状病毒感染的肺炎疫情,1月23日深夜,省卫生健康委发出《动员令》,宣布全省卫生健康系统取消2020年春节放假。各市、县卫生健康委、医疗卫生机构以及疾控中心在春节期间将照常上班。  省卫健委相关负责人表示,此举是为确保春节期间全省卫生健康系统疫情防控措施得到有效落实,让全省群众度过一个安定祥和的新春佳节。  目前,省立医院感染病院、安医大一附院、安医大二附院、蚌医一附院、皖医弋矶山医院、安医大附属巢湖医院等省级定点医院和安中医一附院、省第二人民医院、省胸科医院、安医大附属阜阳医院、省儿童医院等省级定点后备医院均已取消春节放假,正常上班。
source 新闻发布网站 VARCHART 安徽省卫生健康委员会网站
create_timestamp 记录创建时间 DATETIME 2022-01-27 08:26:26
update_timestamp 记录修改时间 DATETIME 2022-01-27 08:26:26

数据处理过程数据

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: 采集疫情原始数据,完成数据计算、导出

采集:疫情病历数据

首先:使用数据库采集步骤,把疫情统计数据采集至本机构大数据组件 Hive 中

5

6

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

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

7

8

数据计算-1:湖北省内外疫情对比

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

drop table if exists ads_hubei_vs_others;

create table if not exists ads_hubei_vs_others (
`index` BIGINT ,
`data_day` STRING,
`name` STRING,
`today_confirm` INT,
`today_dead` INT,
`today_heal` INT,
`total_newConfirm` INT,
`total_confirm` INT,
`total_dead` INT,
`total_heal` INT
);

insert into table ads_hubei_vs_others
select ROW_NUMBER() OVER () as index, a.data_day as data_day, a.prov as name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from
(select *,
case name when '湖北' then '湖北省'
else '湖北省外' end as prov from biz_covid19_data where name is not null) a
group by a.data_day, a.prov

数据计算-2:全国各省疫情趋势

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

drop table if exists ads_prov_by_prov;

create table if not exists ads_prov_by_prov (
`index` INT,
`data_day` STRING,
`name` STRING,
`today_confirm` INT,
`today_dead` INT,
`today_heal` INT,
`total_newConfirm` INT,
`total_confirm` INT,
`total_dead` INT,
`total_heal` INT
);

insert into table ads_prov_by_prov
select ROW_NUMBER() OVER () as index, a.data_day as data_day, a.name as name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from
(select * from biz_covid19_data ) a
group by a.data_day, a.name

数据计算-3:湖北省疫情趋势

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

drop table if exists ads_hubei;

create table if not exists ads_hubei (
`index` INT,
`data_day` STRING,
`chirdren_name` STRING,
`today_confirm` INT,
`today_dead` INT,
`today_heal` INT,
`total_newConfirm` INT,
`total_confirm` INT,
`total_dead` INT,
`total_heal` INT
);

insert into table ads_hubei
select ROW_NUMBER() OVER () as index, data_day, chirdren_name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from biz_covid19_data
where name='湖北' and chirdren_name is not NULL
group by data_day, chirdren_name

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

9

数据导出-1:导出湖北省内外疫情对比数据

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

数据导出-2:导出全国各省疫情趋势数据

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

数据导出-3:导出湖北省疫情趋势数据

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

part2: 采集新闻报道,完成心态、词频,文本聚类分析

采集:疫情新闻文章

首先,把公共数据源中的疫情新闻报道采集到机构数据库(Mysql)中

10

11

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

舆情分析:心态对比

然后,使用 JupyterNote book,做疫情分析:心态对比

12

13

14

  1. 点击进入,把以下代码进行复制粘贴

一个代码块复制进入一个单元格

安装完必要模块后,一般需要重启一下 kernel 让模块生效

pip install jieba -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install pymysql -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install mysql-connector==2.2.9 -i https://nx.linktimecloud.com/repository/pypi-group/simple/
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import jieba, re, random, json

import mysql.connector

from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import HashingVectorizer


from sqlalchemy import create_engine
import pymysql
  1. 当copy到下面这段代码块的时候需要进行修改 :host,user,password,database 中的 xxxx 为当前机构mysql数据库的(参考part0-第2步)
#table 
table = 'biz_covid19_articles'
#db
host = 'xxxxxxxxxx'
user = 'xxxxxxxxxx'
password = 'xxxxxxxxxx'
database = 'xxxxxxxxxx'
def write_data(year):
mydb = mysql.connector.connect(
host=host,
user=user,
password=password,
database=database)

mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM {table} where type = '1' and substr(publish_time, 1, 4)={year} limit 50 ")
myresult = mycursor.fetchall() # fetchall() 获取所有记录
mycursor.close()
mydb.close()


cut_words = []

for x in myresult:
seg_list = jieba.cut(x[3],cut_all=False)
line = ""
for seg in seg_list:
line = line + " " + seg
cut_words.append(line.strip())

#print(len(cut_words))
# 将文本中的词语转换为词频矩阵 矩阵元素a[i][j] 表示j词在i类文本下的词频
vectorizer = CountVectorizer()
# 该类会统计每个词语的tf-idf权值
transformer = TfidfTransformer()
# 第一个fit_transform是计算tf-idf 第二个fit_transform是将文本转为词频矩阵
tfidf = transformer.fit_transform(vectorizer.fit_transform(cut_words))
# 获取词袋模型中的所有词语
word = vectorizer.get_feature_names()
# 将tf-idf矩阵抽取出来 元素w[i][j]表示j词在i类文本中的tf-idf权重
weight = tfidf.toarray()

#print('Start Kmeans:')
from sklearn.cluster import KMeans
clf = KMeans(n_clusters=2)
pre = clf.fit_predict(weight)
#print(pre)
#中心点
#print(clf.cluster_centers_)
#print(clf.inertia_)

from sklearn.decomposition import PCA
pca = PCA(n_components=2) #输出两维
newData = pca.fit_transform(weight) #载入N维

x = [n[0] for n in newData]
y = [n[1] for n in newData]

result = []
i = 0
for new in newData:
x_value = round(new[0], 3)
y_value = round(new[1], 3)
temp = [x_value,y_value, int(pre[i])]
result.append(temp)
i += 1





lst = np.array(result).reshape(len(result), 3).tolist()
point = [[x[0], x[1], int(x[2])] for x in lst]




return point

sqlEngine = create_engine(f'mysql+pymysql://{user}:{password}@{host}:3306/{database}')
dbConnection = sqlEngine.connect()

rslt = []
for yr in [2020, 2021]:#
print(yr)
df = pd.DataFrame(columns=['point', 'year'])
df.loc[0, 'point'] = [i for i in write_data(yr)[:200]]
df['year'] = yr
rslt.append(df)
df = pd.concat(rslt, ignore_index=True)
df['point'] = df['point'].apply(lambda x: json.dumps(x))
frame = df[['point', 'year']].to_sql('ads_cov19_kms', dbConnection, index=False, if_exists='replace')
dbConnection.close()
  1. 保存 Notebook(可以重命名为:心态对比)
  2. 点击 kernel,选择 restart kernel and run all cells

15

舆情分析:疫情词云

再创建一个 JupyterNote book 步骤 在里面创建一个 JupyterNote,做疫情分析:疫情词云

  1. 点击进入,把以下代码进行复制粘贴

一个代码块复制进入一个单元格

pip install jieba -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install pymysql -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install mysql-connector==2.2.9 -i https://nx.linktimecloud.com/repository/pypi-group/simple/
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import jieba, re, random, json
import jieba.analyse
from re import match


import mysql.connector

from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import HashingVectorizer


from sqlalchemy import create_engine
import pymysql
  1. 当copy到下面这段代码块的时候需要进行修改 :host,user,password,database 中的 xxxx 为当前机构mysql数据库的(参考part0-第2步)
#table 
table = 'biz_covid19_articles'
#db
host = 'xxxxxxxxxx'
user = 'xxxxxxxxxx'
password = 'xxxxxxxxxx'
database = 'xxxxxxxxxx'
def write_data(year):
c = {}

mydb = mysql.connector.connect(
host=host,
user=user,
password=password,
database=database)

mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM {table} where type = '1' and substr(publish_time, 1, 4)={year} limit 100")
myresult = mycursor.fetchall() # fetchall() 获取所有记录
mycursor.close()
mydb.close()


result = []
cut_words = ""

r='[\W]'
list = [',','。','、',]
for x in myresult:
seg_list = jieba.cut(x[3],cut_all=False)
for seg in seg_list:
if len(seg) > 1 and match(r,seg) is None:
cut_words = cut_words + " " + seg
if seg in c:
c[seg] +=1
else:
c[seg] = 1

for key in c.keys():
temp = (key,c[key])
result.append(temp)



df = pd.DataFrame(result, columns=['word', 'count'])
df['year'] = year




return df

sqlEngine = create_engine(f'mysql+pymysql://{user}:{password}@{host}:3306/{database}')
dbConnection = sqlEngine.connect()

rslt = []
for yr in [2020, 2021]:
print(yr)
data = write_data(yr)
rslt.append(data)
df = pd.concat(rslt, ignore_index=True)
frame = df.to_sql('ads_cov19_wordcount', dbConnection, index=False, if_exists='replace')
dbConnection.close()
  1. 点击保存(可以重命名为:疫情词云)
  2. 点击 kernel,选择 restart kernel and run all cells

15

舆情分析:文本聚类

再创建一个 JupyterNote book 步骤 在里面创建一个 JupyterNote,做疫情分析:文本聚类

  1. 点击进入,把以下代码进行复制粘贴

一个代码块复制进入一个单元格

pip install jieba -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install pymysql -i https://nx.linktimecloud.com/repository/pypi-group/simple/
pip install mysql-connector==2.2.9 -i https://nx.linktimecloud.com/repository/pypi-group/simple/
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import jieba, re, random, json
import jieba.analyse
from re import match


import mysql.connector

from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import HashingVectorizer


from sqlalchemy import create_engine
import pymysql
  1. 当copy到下面这段代码块的时候需要进行修改 :host,user,password,database 中的 xxxx 为当前机构mysql数据库的(参考part0-第2步)
#table 
table = 'biz_covid19_articles'
#db
host = 'xxxxxxxxxx'
user = 'xxxxxxxxxx'
password = 'xxxxxxxxxx'
database = 'xxxxxxxxxx'
def write_data(year):
c = {}

mydb = mysql.connector.connect(
host=host,
user=user,
password=password,
database=database)

mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM {table} where type = '1' and substr(publish_time, 1, 4)={year} limit 100")
myresult = mycursor.fetchall() # fetchall() 获取所有记录
mycursor.close()
mydb.close()


result = []
cut_words = ""

r='[\W]'
list = [',','。','、',]
for x in myresult:
seg_list = jieba.cut(x[3],cut_all=False)
for seg in seg_list:
if len(seg) > 1 and match(r,seg) is None:
cut_words = cut_words + " " + seg
if seg in c:
c[seg] +=1
else:
c[seg] = 1

keywords = jieba.analyse.extract_tags(cut_words,
topK=50,
withWeight=True,
allowPOS=('a','e','n','nr','ns', 'v')) #词性 形容词 叹词 名词 动词

result_keyword = []
for keyword in keywords:
temp_keyword = (keyword[0],keyword[1])
result_keyword.append(temp_keyword)



df = pd.DataFrame(result_keyword, columns=['word', 'score'])
df['year'] = year




return df

sqlEngine = create_engine(f'mysql+pymysql://{user}:{password}@{host}:3306/{database}')
dbConnection = sqlEngine.connect()

rslt = []
for yr in [2020, 2021]:
print(yr)
data = write_data(yr)
rslt.append(data)
df = pd.concat(rslt, ignore_index=True)
frame = df.to_sql('ads_cov19_cluster', dbConnection, index=False, if_exists='replace')
dbConnection.close()
  1. 点击保存(可以重命名为:文本聚类)
  2. 点击 kernel,选择 restart kernel and run all cells

15

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

16

# 步骤名称 步骤类型
1 1.1 采集:疫情病例数据 数据库采集
2 1.2 采集:疫情新闻文章 ETL程序
3 2.1 数据计算:湖北省内外疫情对比 Hive程序
4 2.2 数据计算:全国各省疫情趋势 Hive程序
5 2.3 数据计算-3:湖北省疫情趋势 Hive程序
6 2.4 数据导出:湖北省内外疫情对比 ETL程序
7 2.5 数据导出:全国各省疫情数据趋势 ETL程序
8 2.6 数据导出:湖北省疫情趋势 ETL程序
9 3.1 舆情分析:心态对比 JupyterNotebook
10 3.2 舆情分析:疫情词云 JupyterNotebook
11 3.3 舆情分析:文本聚类 JupyterNotebook
12 4.1 API-1:地图数据 API
13 4.2 API-2:省内省外 API
14 4.3 API-3:省内数据 API
15 4.4 API-4:心态对比 API
16 4.5 API-5:文本聚类 API
17 4.6 API-6:词云 API
18 5.1 疫情大屏发布 Docker应用(通过配置)

part4: 创建 API

数据集市列表

# 数据表 API名称 API路径
1 ads_cov19_prov_by_prov 省份分类地图数据 /winner/country
2 ads_cov19_hubei_vs_ow 湖北省内省外数据 /winner/hubei
3 ads_cov19_hubei 湖北省内城市数据 /winner/province
4 ads_cov19_kms 心态对比数据 /winner/mentality
5 ads_cov19_cluster 文本聚类数据 /winer/tfidf
6 ads_cov19_wordcount 疫情词云 /winner/ciyun

选择使用自定义 sql

/winner/country(地图数据)

  1. API 路径:/winner/country
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
select 
name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from bdos_org_机构名称_db.ads_cov19_prov_by_prov
where data_day = ${data_day} or
data_day = concat(substr(${data_day} , 1, 4), '-', substr(${data_day} , 5, 2), '-', substr(${data_day} , 7, 2))
group by name
order by total_confirm desc
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:data_day
  5. 值:20201231
  6. 测试
  7. 发布

/winner/hubei(省内省外数据)

  1. API 路径:/winner/hubei
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
select 
name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from bdos_org_机构名称_db.ads_cov19_hubei_vs_ow
where data_day = ${data_day} or
data_day = concat(substr(${data_day} , 1, 4), '-', substr(${data_day} , 5, 2), '-', substr(${data_day} , 7, 2))
group by name
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:data_day
  5. 值:20201231
  6. 测试
  7. 发布

/winner/province(省内数据)

  1. API 路径:/winner/province
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
select 
chirdren_name,
sum(today_confirm) as today_confirm,
sum(today_dead) as today_dead,
sum(today_heal) as today_heal,
sum(total_newConfirm) as total_newConfirm,
sum(total_confirm) as total_confirm,
sum(total_dead) as total_dead,
sum(total_heal) as total_heal
from bdos_org_机构名称_db.ads_cov19_hubei
where data_day = ${data_day} or
data_day = concat(substr(${data_day} , 1, 4), '-', substr(${data_day} , 5, 2), '-', substr(${data_day} , 7, 2))
group by chirdren_name
order by total_confirm desc
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:data_day
  5. 值:20201231
  6. 测试
  7. 发布

/winner/mentality(心态对比数据)

  1. API 路径:/winner/mentality
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
SELECT point from bdos_org_机构名称_db.ads_cov19_kms where year=substr(cast(${year} as char), 1, 4)
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:year
  5. 值:2020
  6. 测试
  7. 发布

/winer/tfidf(文本聚类数据)

  1. API 路径:/winer/tfidf
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
select word,score from bdos_org_机构名称_db.ads_cov19_cluster where year = substr(convert(${year} , char), 1, 4)  ORDER BY score desc limit 50
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:year
  5. 值:2020
  6. 测试
  7. 发布

/winner/ciyun(疫情词云数据)

  1. API 路径:/winner/ciyun
  2. 下一步
  3. 数据源:DS-ds-机构名称(Mysql)
  4. 使用自定义sql
  5. 对应 sql 语句,需要把语句中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步
select word, count from bdos_org_机构名称_db.ads_cov19_wordcount where year = substr(convert(${year} , char), 1, 4)order by count desc limit 50
  1. 保存
  2. API 测试:选择高级模式
  3. 添加参数
  4. 参数:year
  5. 值:2020
  6. 测试
  7. 发布

part5 大屏发布

17

18

  1. 选择通过Dockerfile
  2. 粘贴复制下面的 dockerfile 文件
FROM dev-reg-aliyun.linktimecloud.com/openjdk:8-jdk-stretch

RUN wget https://linktime-public.oss-cn-qingdao.aliyuncs.com/Project_online/public_program/epidemic-big-screen/new/online_winner.jar

EXPOSE 8080
CMD java -jar online_winner.jar
  1. 通用配置:

    1. CPU:0.3
    2. Mem:512MB
    3. 其他默认
  2. 网络配置:

    1. 添加一项,并且把容器端口改为8080
    2. 其余默认
  3. 环境变量:

    1. 需要把value中的「机构名称」替换为本机构的机构名称,数据库获取办法见part0:准备工作第2步

    2. key:PATH_PREFIX

    3. value: /online/机构名称