feature(hudi-query): 完成 Hudi 表时间线查询

对于归档中的时间线查询似乎不会直接给出合并后的时间线状态,需要后续对时间线的内容进行单独处理
This commit is contained in:
2023-05-03 23:07:30 +08:00
parent a358734929
commit d47db0a096
6 changed files with 231 additions and 13 deletions

View File

@@ -659,3 +659,49 @@ function publishTypeMapping(field) {
},
}
}
function hudiTimelineActionMapping(field) {
return {
type: 'mapping',
value: `\${${field}}`,
map: {
'commit': "<span class='label label-info'>Commit</span>",
'deltacommit': "<span class='label label-info'>Delta Commit</span>",
'clean': "<span class='label label-info'>Clean</span>",
'rollback': "<span class='label label-danger'>Rollback</span>",
'savepoint': "<span class='label label-info'>Savepoint</span>",
'replacecommit': "<span class='label label-warning'>Replace Commit</span>",
'compaction': "<span class='label label-success'>Compaction</span>",
'restore': "<span class='label label-warning'>Restore</span>",
'indexing': "<span class='label label-info'>Indexing</span>",
'schemacommit': "<span class='label label-warning'>Schema Commit</span>",
'*': `<span class='label bg-gray-300'>\${${field}}</span>`
},
}
}
function hudiTimelineStateMapping(field) {
return {
type: 'mapping',
value: `\${${field}}`,
map: {
'REQUESTED': "<span class='label label-info'>已提交</span>",
'INFLIGHT': "<span class='label label-warning'>操作中</span>",
'COMPLETED': "<span class='label label-success'>已完成</span>",
'INVALID': "<span class='label label-danger'>错误</span>",
'*': `<span class='label bg-gray-300'>\${${field}}</span>`
},
}
}
function hudiTimelineTypeMapping(field) {
return {
type: 'mapping',
value: `\${${field}}`,
map: {
'active': "<span class='label label-info'>活跃</span>",
'archive': "<span class='label bg-gray-300'>归档</span>",
'*': `<span class='label bg-gray-300'>\${${field}}</span>`
},
}
}

View File

@@ -68,7 +68,7 @@ function tableTab() {
filterDefaultVisible: true,
stopAutoRefreshWhenModalIsOpen: true,
resizable: false,
perPage: 10,
perPage: 20,
headerToolbar: [
"reload",
'filter-toggler',
@@ -255,6 +255,55 @@ function tableTab() {
actionType: 'dialog',
dialog: simpleYarnDialog('compaction', '压缩详情')
},
{
label: '时间线',
type: 'action',
level: 'link',
actionType: 'dialog',
dialog: {
title: 'Hudi 表时间线',
actions: [],
size: 'lg',
body: {
type: 'crud',
api: {
method: 'get',
url: '${base}/hudi/timeline/list',
data: {
flink_job_id: '${flinkJobId}',
alias: '${tableMeta.alias}',
filter_type: 'active'
},
},
syncLocation: false,
columns: [
{
name: 'timestamp',
label: '时间点',
},
{
name: 'action',
label: '类型',
...hudiTimelineActionMapping('action'),
},
{
name: 'state',
label: ' 状态',
...hudiTimelineStateMapping('state'),
},
{
name: 'fileName',
label: '文件名',
},
{
name: 'type',
label: '来源',
...hudiTimelineTypeMapping('type'),
},
],
}
}
},
{
label: '队列',
type: 'action',