本文将简单介绍 Logdb 数据库中各个数据表和表字段的含义。
表
名称
fine_record_fdl_exec_info
FDL任务/节点/算子运行记录
fine_record_login
登录表
fine_record_logout
登出表
4.0.20 及之后版本,该表已弃用
fine_record_email
邮件表
fine_record_write
填报表
fine_record_error
执行出错日志表
fine_record_param
常用参数组合表
fine_record_sms
短信发送表
fine_record_operate
管理日志表
fine_record_sql
SQL 执行表
fine_record_gc
GC 记录表
fine_record_conf
部分配置信息表
fine_record_lock
用户锁定日志表
fine_tpl_info
模板属性表
fine_container_entity
容器信息表
fine_function_process
功能点信息表
fine_operation_process_log
云端运维操作日志表
fine_operation_shutdown_record
信号量信息表
fine_plugin_usage
插件信息表
fine_schedule_record
定时任务执行日志表
fine_intelli_focus_point
fine_real_time_usage
应用实时情况表
fine_intelli_consume_point
性能信息表
执行出错日志
FDL任务/节点/算子运行记录:用于记录 FDL 任务/节点/算子的运行情况。
其各个字段对应的含义如下表所示:
字段名
含义
备注
数据格式
uuid
用户的唯一标识字段
-
VARCHAR
id
执行ID
任务/节点/算子ID
category
一级分类
区分任务、节点、 算子
0:任务
1:节点
2:算子
INTEGER
二级分类
区分任务、节点、算子的类型
对应关系请参见下方表格
DATE
1)任务/算子:
SUCCESS
FAILED
2)节点:
EXECUTOR_LINE_NOT_MATCH
用 json 数据结构记录以下信息:
user:执行用户(仅任务包含,定时调度触发或作为子任务被调用时值固定为SYSTEM、手动运行时值为对应用户)
errDetail:错误详情(仅失败任务包含)
throughput:执行吞吐量
readRows:读取数据行数
writeRows:写入数据行数
updateRows:更新数据行数
deleteRows:删除数据行数
errorRows:错误数据行数
表中字段 category 和 type 之间的关系如下表所示:
SCHED:定时任务
DATA_SYNC:数据同步
DATA_FLOW:数据转换
SQL:SQL脚本
PARAM:参数赋值
CONDITION:条件分支
VIRTUAL:虚拟节点
SUB_WORK:调用任务
MESSAGE:消息通知
LOOP:循环容器
SHELL:Shell脚本
仅包含数据输入、数据输出、参数输出类算子
格式:
数据源_READER、数据源_WRITER、PARAM_OUTPUT
举例:
MYSQL_READER
SQLSERVER_WRITER
PARAM_OUTPUT
报表(BI)执行表:报表访问/导出/打印日志,即如果报表访问/导出/打印的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
字段
字段类型
主键
tname
模板名称
reportlet 下的完整路径
displayName
挂载到平台的目录名称
记录目录全路径
如果直接访问链接则为空
type
报表访问方式
具体列举在下面的表格中
范围0~105,目前已使用33个编码
param
参数
ip
执行报表的 IP 地址
username
执行报表的用户
userrole
执行报表的用户角色
consume
执行耗时
包括 SQL 执行时间和报表计算时间
单位为ms
BIGINT
time
日志开始时间
sql
SQL 语句
sqlTime
SQL 执行的总时间
browser
客户端访问报表所用的浏览器版本
可通过该字段中的terminal判断访问终端
browser:浏览器类型和版本
OSInfo:操作系统,分为Windows、Mac、Unix
terminal:客户端标识,分为PC、App、H5
PC:访问终端为PC 端
App:访问终端为帆软App/HTML5端访问公共链接
H5:HTML5端访问非公共链接模板
memory
报表占用内存,单位 B
若因宕机等情况计算中断,记录的是报表开始计算到计算中断所占用的内存(根据格子数估算,一格子占用0.2KB)
当模板 complete 字段值为0时,这里记录为0
若计算完成,记录的数据除200之后返回的是报表从开始计算到计算完成所生成的格子数
reportId
模板编号
userId
用户 ID
complete
是否计算完成
若因宕机等情况计算中断,记录为0
若计算完成,记录为1
source
访问方式
integration:通过 URL 访问
single:平台访问的
sessionID
会话 ID
用于与性能埋点表中(fine_intelli_consume_point)的前端渲染耗时相关埋点进行关联
node
加载模板的节点名
需导出treasure包,详情请参见:云端运维使用步骤
error
模板执行过程中第一个报错信息
webInfo
模板执行信息
webResolution:当前模板执行在前端访问时的分辨率,记录格式为x*y
fullScreen:当前模板执行在前端访问时是否是全屏模式,记录格式为1/0
lastMod
模板上次改动时间
detail
详细信息
用于记录被分享的仪表板明细信息
fineMarkId
预览模板使用的设备 ID
注:userId、complete、visitType、resource 字段需要更新到 2019-5-20 及之后版本的 JAR 包。
node、error、webInfo 字段需要更新到 2021-03-17 及之后版本的 JAR 包。
字段 type 具体含义:
编码
类型
0
分页预览
page
1
在线分析
view
2
填报预览
write
3
决策报表预览
form
4
行式引擎
layer
5
在线编辑
edit
6
新填报
write_plus
7
新引擎预览
page_plus
8
大屏FVS预览
9
开发者调试预览
10
Excel 分页导出
excel
11
Excel 原样导出
excelO
12
Excel整页导出,对应场景包括:
1)大数据集导出插件导出Excel
2)Excel分页导出、原样导出启用了行式引擎的报表
excelL
13
Excel 分页分 sheet 导出
excelS
14
PDF 导出
pdf
15
Word 导出
word
16
SVG 导出
svg
17
CSV 导出
csv
18
文本导出
text
19
JPG 图片导出
jpg
20
PNG 图片导出
png
21
GIF 图片导出
gif
22
BMP 图片导出
bmp
23
WBMP 图片导出
wbmp
24
内置数据集导出模板
cpt
25
HTML 导出
html
26
填报 HTML 导出
write_html
27
BI 导出 Excel
30
Flash 打印
print_flash
31
PDF 打印
print_pdf
32
Applet 打印
print_applet
33
零客户端打印
print_noclient
34
本地软件打印
print_native
101
查看BI模板
bi_view
102
编辑BI模板
1)记录逻辑:点开一张仪表板进入编辑状态,等待页面全部加载完毕,无论做多少操作或不做操作,记录一次;下次再点模板进去编辑或者刷新网页记录第二次
2)同一张仪表板,每次编辑都会有记录
bi_edit
103
分享BI模板
bi_share
104
创建BI公共链接
bi_create_publink
105
查看BI公共链接
bi_view_share
106
BI 模板全局导出 PDF
bi_template_export_pdf
107
BI 模板全局导出 Excel
bi_template_export_excel
108
BI 组件导出 Excel
bi_component_export_excel
109
BI模板另存为
201
关闭浏览器或者 Tab 页(BI)
202
编辑自助数据集
203
分享自助数据集
bi_analysis_table_share
204
关闭分享自助数据集
205
关闭分享BI模板
206
关闭BI公共链接
302
编辑组件
401
预览Excel插件模板
402
编辑Excel插件模板(预留)
403
分享Excel插件模板
404
创建Excel插件公共链接
405
通过公共链接访问Excel插件模板
408
Excel组件导出Excel
409
Excel仪表板另存为
登录表:用户登录日志,用于记录用户的登录信息。
登录时间
登录 IP 地址
登录的用户
登录的用户角色
注:4.0.20 及之后版本,该表已弃用。
登出表:用户登出日志,用于记录用户的登出信息。
用户退出平台时间
登出 IP 地址
登出平台的用户名
登出平台的用户角色
邮件表:邮件发送日志(只包含工具栏中的“邮件”),即如果报表发送邮件的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
sender
发件人用户名
receiver
收件人用户名
mail
收件人邮箱
发送邮件的IP地址
发送邮件的用户
仪表板存放路径
仪表板的实际名称,非「目录管理」中仪表板的名称
content
邮件内容
发送时间
result
是否发送成功
BIT
详情
填报表:记录填报日志信息,即如果报表进行填报的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
填报报表的用户
填报时间
是否填报成功
填报报表的IP地址
执行耗时,包括 SQL 执行时间,报表计算时间
body
1)key:请求的固定标志
2)value:(times, max,min,avg)
times:该类请求出现次数,单位:次
max:该类请求最大响应时长,单位:ms
min:该类请求最小响应时长,单位:ms
avg:该类请求平均响应时长,单位:ms
执行出错日志表:即如果报表执行的过程中报错的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录,记录全部 error 和 fatal 级别的报错信息。
注:FineBI5.1.19 及之后版本,fine_record_error不再使用,报错信息记录到fine_template_error 表中。
msg
错误信息
出错记录时间
出错的仪表板存放路径
如果不是模板出错,则 tname 记录为“非模板触发错误”。
trace
错误路径
errorcode
错误码
无错误码时记为空
platformDisplay
是否在平台中显示
1-是
0-否
有记录到此表的错误日志,此字段记为1,反之此字段记为0
平台日志的错误日志中过滤展示,只展示 platformDisplay=1 的记录。
常用参数组合表:记录常用参数组合日志信息。
注:fine_record_param 表是FR的常用参数表
templateid
仪表板 ID
用户
pgroup
参数,值以数组形式展示:
{参数 1:参数值,参数 2:参数值}
2020-02-28 及之后的 JAR ,pgroup 字段值加密显示
记录时间
短信发送表:记录短信发送日志信息,即如果发送短信的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录.。
mobile
接收人手机号
管理日志表:即用户对模块进行操作的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
模块(存国际化的 key)
item
设置项
resource
被访问资源
operate
操作
用户名
用户 IP 地址
用户操作时间
requestParam
请求参数
平台展示级别
status
本次操作的成败
具体需要记录的场景如下表所示:
TYPE-模块
ITEM-设置项
RESOURCE-被访问资源
OPERATION-操作
DETAIL-详情
目录管理
节点
“节点全路径”
增/删/改
模板
链接
上报标签
用户管理
全局设置
改
“姓名(用户名)”
部门
“部门全路径”
部门下职位
“职位全路径”
增/删
职位
"职位名称"
职位下人员
“职位名称”-“姓名(用户名)”
角色
“角色名称”
角色下人员
“角色名称”-“姓名(用户名)”
平台使用用户
BI仅查看用户
BI编辑用户
移动平台用户
权限管理
权限设置
“部门/角色/姓名(用户名)”
权限项:“目录/数据连接/业务包/可管理部门角色” 类型:查看/授权/编辑
权限复用
“生效对象【部门/角色/姓名(用户名)】”
复用
来源:“部门/角色/姓名(用户名)” 类型:“权限项”
系统管理
登录
单一登录
开/关
单一登录设置
上次登录信息提示
忘记密码
短信验证
常规
常规参数
BI参数
打印
打印设置
短信
短信平台
账号绑定
邮箱
发件人账户
备份还原
全局配置
平台配置
自动备份
备份文件
增/删/还原
报表模板
BI模板
jar包
插件
更新升级
jar包更新
更新
jar包还原
还原
备份jar包
删
平台日志
日志设置
访问明细
导出
用户行为
模板热度
性能监控
内存管理
智能预警
内存会话
“姓名(用户名)”-“模板路径”
结束
智能释放
模板限制
生命周期
数据连接
“数据连接名”
注册信息
公有云认证/私有云认证/上传lic文件
安全管理
sql防注入
禁用特殊关键字
已禁用的特殊关键字
转义字符
已转义的字符
定时调度
定时任务
“任务名称”
多级上报
上报流程
“流程名”
上报任务
“任务名”
移动平台
授权设备
二维码配置
模板认证
权限项:“模板路径” 类型:查看/填报
远程设计权限
改后权限项:“模板路径”
插件管理
“插件名”
安装/删除/启用/禁用/更新
SQL 执行表:记录 SQL 的执行情况。
注:fine_record_sql 表不会存储 BI 模板的 sql 记录,以及数据开发、数据管道中使用的 sql 记录,只会存储报表引擎的 sql 计算过程。
columns
数据集规模
记录列数
dsname
数据集的名称
executeid
执行批次 ID
每次预览/查询时,执行的一批 SQL 共用一个批次 ID
rows
记录行数
sqltime
SQL 执行时间
单位:毫秒
connection
数据连接名
connectionID
数据连接标识ID
与功能埋点表(fine_intelli_focus_point)中的数据源连接相关埋点进行关联
GC 记录表:记录系统的 GC 信息。
heapBeforeUsed
GC 前堆使用内存
heapAfterUsed
heapBeforeCommitted
GC 后堆申请内存
heapAfterCommitted
gcStartTime
GC 开始时间
duration
GC 持续时间
gcCause
GC 的原因
常见原因有:
System.gc()
Allocation Failure
humongous
Metadata GC Threshold
Ergonomics
GCLocker Initiated GC
gcType
GC 类型
分为GC和Full GC
metaspaceBeforeUsed
metaspace GC 前使用内存
metaspaceBeforeCommitted
metaspace GC 前申请内存
metaspaceAfterUsed
metaspace GC 后使用内存
metaspaceAfterCommitted
metaspace GC 后申请内存
balancePromoterScore
中止分值
youngBeforeUsed
年轻代 GC 前使用内存
youngBeforeCommitted
年轻代 GC 前申请内存
youngAfterUsed
年轻代 GC 后使用内存
youngAfterCommitted
年轻代 GC 后申请内存
loadScore
整体负载分值
用户命名的节点名
单机下为空
oldBeforeUsed
老年代 GC 前使用内存
oldBeforeCommitted
老年代 GC 前申请内存
oldAfterUsed
老年代 GC 后使用内存
oldAfterCommitted
老年代 GC 后申请内存
pid
进程 pid
releasePromoterScore
释放分值
记录fine_conf_entity中的部分配置信息。
配置项
value
配置项值
记录用户锁定的日志
入库时间
lockItem
锁定对象
lockTime
锁定时间
autoUnlockTime
自动解锁时间
记录模板属性
注:该表已无实际用途,仅作为备用。因此不会在表中记录任何数据。
序号
tid
模板id
物理模板名称
记录 reportlet 下的完整路径
cnums
条件属性个数
formnums
公式个数
sheetnums
sheet个数
dsnums
数据集个数
compformnums
复杂公式的个数
包括层次坐标、sql、value公式
submitnums
内置提交的个数
isfrozen
是否使用了冻结
isfoldtree
是否使用了折叠树
widgetnums
控件个数
tsize
模板总大小
imgsize
模板里图片的大小
execute0
引擎情况汇总0
execute1
引擎情况汇总1
execute2
引擎情况汇总2
execute3
引擎情况汇总3
execute4
引擎情况汇总4
mem0
内存情况汇总0
mem1
内存情况汇总1
mem2
内存情况汇总2
mem3
内存情况汇总3
mem4
内存情况汇总4
sql0
sql情况汇总0
sql1
sql情况汇总1
sql2
sql情况汇总2
sql3
sql情况汇总3
sql4
sql情况汇总4
filternums
过滤个数
injectnums
参数注入个数
formula
模板内公式使用情况
jsapi
模板内JS API使用情况
recordtime
模板检测时间
记录容器信息
节点名
记录功能点信息
function
功能点
记录云端运维操作日志
节点名称
process
日志内容
记录信号量信息
注:fine_operation_shutdown_record和fine_plugin_usage整合到了fine_intelli_focus_point 表
进程ID
startTime
开始时间
upTime
截止时间
signalName
信号名
记录插件信息
plugin
插件名
version
插件版本
API
插件中接口使用情况
operation
插件运行情况
register
插件注册情况
enable
插件是否启用
记录定时任务执行信息
UUID
creator
创建者
detailMessage
filePath
生成附件路径
预留字段,未使用
logMessage
日志信息
logTime
任务执行时间
日志打印时间
logType
日志类型
0-失败
1-成功
2-跳过
nextFireTime
下一次记录时间
runType
附件处理类型
0-快照生成
1-邮件发送
2-FTP上传
3-消息推送
4-文件打印
5-短信发送
6-平台挂载
7-自定义类
8-定时填报
9-客户端通知
10-SFTP上传
taskName
任务名称
taskID
任务ID
功能埋点表:用来保存所有公共的埋点信息。
埋点 ID 编号
记录的主要内容
埋点来源
-1-没有定义来源(UNDEFINED)
1-内置 JAR 包的功能点(EMBED)
2-插件功能点(PLUGIN)
4- FineReport 的功能点(REPORT)
8- FineBI 的功能点(BI)
时间
转码处理,超管用户为 0
出发埋点的 IP
title
标题,埋点是什么
一个 JSON 数据结构
根据功能点 ID 存放不同功能点的信息
次要信息,可能为空
字段 id 格式说明:
例如:FR-P1001
FR 前缀,表示是 FR 的埋点。
第一位字母表示功能/性能:F-功能、P-性能。
第二位数字表示分类:1-数据源、2-前台、3-报错、4-智能运维、5-设计器。
表中字段 id 和 body 之间的关系如下表所示:
作用
FR-P1001
id:数据连接标识
version:数据源版本
driver:连接驱动信息
times:使用次数
connecttime:创建连接的时间
用于记录数据连接相关的信息
FR-F3001
记录具体的报错堆栈
记录工程启动失败报错原因
FR-F4001
初版插件记录示例:{node:2,memory:16,situation:normal,inform:1,type:auto}
node 为推荐节点数(推荐单机时记为1)
memory 为推荐单机/单节点内存
situation 为推荐的情况:记为"normal"时为正常推荐,"error"时为推荐值异常情况,"inequacy"时为运行数据不足情况,"nonsupport"时为不支持推荐配置。其中"normal"情况下 node 与 memory 有值,其余情况 node 与 memory 记为空
inform 为是否进行了通知,记为1代表已通知,记为0代表未通知
type 为推荐的类型,记为"auto"为根据一自然日运行数据进行推荐的结果,记为"manual"为用户访问接口链接推荐的结果
内存配置推荐数值
FR-F4002
记录示例:{sessionid: xxxxxx, reason: release, detail: row count, load: high load, cell num: 100000, survival time: 600000}
sessionid: 被清除的会话 id
reason: 会话被清除的原因大类。包括 life(生命周期),limit(模板限制),release(智能释放)三项
detail: 会话被清除的详细原因
reason 记为 life 时,此项记录为空。
reason 记为 limit 时,此项记录为:row count(单数据集行数限制),cell count(单模板单元格限制),sql time(sql执行时长限制),excel cell count(导入Excel单元格限制),commit row count(提交记录数限制),cartesian(填报笛卡尔积限制)
reason 记为 release 时,此项记录为:stop calculating
load: 会话被杀时的系统的负载状况。包括endanger(危险状态),terrible load(超高负载),high load(高负载),normal load(中低负载)
cell num:已计算的单元格个数
survival time:存活时间
记录会话因生命周期、模板限制被清除以及高负载时停止计算的情况
FR-F4003
记录示例:{type: high load kill, kill num time: 50, kill num cell: 50, session num: 300, load: terrible load}
type: 包括high load kill(小杀),terrible load kill(大杀),remove all(超杀清除所有会话)
kill num time: 因未更新时间过长被杀的会话数,type 为 removeAll 时记为空
kill num cell: 因格子数过多被杀的会话数,type 为 removeAll 时记为空
kill num sum: 被杀的会话数求和
session num: 释放会话之前的会话总数
load: 会话被杀时的系统的负载状况。包括 endanger(危险状态),terrible load(超高负载),high load(高负载),normal load(中低负载)
记录 GC 回调触发的释放会话情况
FR-F5001
记录示例:{disk_beforegc:50, disk_aftergc:50}
记录模板版本管理 GC 清理情况
FR-F5002
node:节点名
time:进程关闭时间
pid:进程 pid
startTime:进程开始时间
upTime:进程持续时间
signalName:信号量
系统关闭记录:记录系统关闭前后的进程信息以及关闭类型
FR-F5003
containerMem:容器设置的内存大小
cpu:CPU 核数
disk:磁盘总空间
diskUsed 磁盘已使用空间
jdkVersion:JDK 版本
containerVersion:Web容器版本
machineMem:物理机内存
system:服务器操作系统
systemNum:服务器操作系统位数
arch:处理器架构,如x86_64、x86
diskSpeed:磁盘存取速度
FRbuildNO:FR的 jar 包版本
BIbuildNO:BI 的 jar 包版本(记录 BI 的 jar 包版本,未使用 BI 则记为空)
serverType:服务器类型(cloud代表云服务器,local代表本地服务器)
gcType:垃圾收集器类型
容器配置情况:应用所在容器、服务器的配置信息。每日记录一次
FR-F5004
licType:注册类型
expireTime:注册到期时间
CTRID:合同 ID
companyId:公司 ID
productVersion:产品版本
platformUserNum:用户人数
用户基本信息:用户的注册信息等内容。每日记录一次
FR-F5005
tid:模板 ID
tName:物理模板名字(reportlets下的完整路径)
cNums:条件属性个数
formNums:公式个数
sheetNums:多 sheet 个数
dsNums:数据集个数
compFormNums:复杂公式的个数(包括层次坐标、SQL、Value公式)
submitNums:内置提交的个数
isFrozen:是否使用了冻结
isFoldTree:是否使用了折叠树
widgetNums:控件个数
filterNums:过滤个数
injectNums:参数注入个数
formula:模板内公式使用情况
jsAPI:模板内JS API使用情况(限制记录为255字符)
tSize:模板总大小
imgSize:模板里图片的大小
lineEngine :是否启用行式引擎(1为启用,0为未启用)
execute0-execute4:执行时间的5级的分段记录
mem0-mem4:内存使用量的5级的分段记录
sql0-sql4:SQL 执行时间的5级的分段记录
模板属性信息:记录模板的各项信息,每张模板每日输出一条记录
FR-F5006
id:数据在配置中的位置
value:数据值
配置信息:每日将 FineDB 中的 fine_conf_entity 表中的特定信息记录一次
FR-F5007
plugin:插件名
version:插件版本
API:插件中所用接口情况
opration:插件运行情况
register:插件注册情况
enable:插件是否启用
插件使用情况:插件的使用情况,每个插件在每日记录一次
FR-F5008
function:功能点购买情况
功能点购买情况:功能点购买情况,每日记录一次
应用实时情况表:记录应用实时情况。
2019-05-20 及之后 JAR 新增字段
cpu
CPU 利用率
DOUBLE
当前 JVM 内存情况
记录时间,每分钟一条
sessionNum
存活会话数
onlineNum
系统在线人数
进程 PID
templateRequest
正在计算的模板请求数
httpRequest
总的正在处理的 http 请求数
sessionRequest
正在处理的带 sessionid 的请求数
fineIO
fineIO 占用堆外内存大小
单位 KB
2020-08-04 及之后 JAR 新增字段
NIO
NIO 占用堆外内存大小
bufferMemUse
堆外使用总内存
directMem「nio」和mappedMem
physicalMemUse
物理内存已使用空间
physicalMemFree
物理内存空闲空间
性能信息表:记录性能相关信息。
String
Long
埋点 id 编号
BI 为 X961
资源内容
可以是模板名字,分析表名字等。BI 未使用该字段
Original 类里面
embed:表示当前系统的
plugin:表示插件的埋点
undefined:表示没有定义来源
Int
操作者
操作 IP
资源 ID
可以是模板 ID,分析表 ID,表 ID 等
frFullVersion
FR版本
biFullVersion
BI版本
cloudVersion
云端运维版本
finish
结束时间
FR 有效字段、BI 为 0,BI 未使用该字段
耗时 单位 ms
内存大小 单位 byte
操作类型
可以表明是进行了哪种操作。BI 未使用该字段
comment
资源备注
可以是更具体一些的信息,需要直接分析的数据。BI未使用该字段
埋点具体信息
一个 JSON 数据结构,根据不同的埋点里面存放不同的信息
挂载到平台的目录名称,平台前端处理为国际化
noPath:表示非挂载访问
出错的物理模板名字(reportlet下的完整路径)
执行模板的用户,平台前端处理为国际化
notLogged:未登录访问
fromSchedule:定时调度
执行模板的IP地址(定时调度为空)
错误信息,不包含具体错误位置等,基本和错误代码匹配(比如单元格死循环,不显示具体的单元格)
错误堆栈
长度1000字符,超过截断
code
错误代码
para
出错时的查询参数
是否成功预览
1:预览成功
0:预览失败
platfromDisplay
展示级别
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy