테이블 차트¶
테이블 차트에는 그룹 테이블 차트와 시계열 테이블 차트가 포함됩니다.
그룹 테이블 차트 데이터 구조 설명¶
// 아래 demo 데이터 테이블 열은 ['host', 'host_ip', 'columnA', 'columnB']입니다.
{
group_by: ['host', 'host_ip'],
column_names: ['columnA', 'columnB'],
series: [
{
tags: {
host: 'host_1',
host_ip: '111.11.123.103',
},
values: [[null, 1,2]],
column_names: ['time', 'columnA', 'columnB'],
columns: ['time', 'columnA', 'columnB'],
},
{
tags: {
host: 'host_2',
host_ip: '111.11.123.101',
},
values: [[null, 3,4]],
column_names: ['time', 'columnA', 'columnB'],
columns: ['time', 'columnA', 'columnB'],
},
{
tags: {
host: 'host_3',
host_ip: '111.11.123.102',
},
values: [[null, 5,6]],
column_names: ['time', 'columnA', 'columnB'],
columns: ['time', 'columnA', 'columnB'],
},
{
tags: {
host: 'host_4',
host_ip: '111.11.123.106',
},
values: [[null, 7,8]],
column_names: ['time', 'columnA', 'columnB'],
columns: ['time', 'columnA', 'columnB'],
},
],
},
그룹 테이블 차트의 열 값은 group_by와 column_names를 병합하여 구성되며, group_by는 비어 있을 수 있습니다.
- 필드 설명:
| 매개변수 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| group_by | list | 테이블 열의 구성 요소로, 해당 열의 값은 series 데이터의 각 항목에 있는 tags 객체에서 매핑된 value 값을 가져옵니다. |
|
| group_by[#] | str | ||
| column_names | list | 필수 | 테이블 열의 구성 요소로, series 데이터의 column_names에서 time이 아닌 필드 값에 대응하며, 해당 열의 값은 series[#].values의 데이터를 가져옵니다. |
| column_names[#] | str | ||
| series | list | 필수 | 데이터 그룹으로, 길이는 테이블의 행 수를 나타냅니다. |
| series[#] | dict | 하나의 데이터 집합 | |
| series[#].tags | dict | group_by 테이블 열에 연결된 속성 값입니다 (group_by 부분 열의 매핑 값에 해당하며, 별칭 key 값의 매핑으로도 사용됩니다). |
|
| series[#].columns | list | 필수 | series[#].column_names와 동일합니다. ['time', ...] |
| series[#].columns[#] | str | 데이터 소스 필드 key로, 첫 번째 열 값은 반드시 time 필드여야 합니다. |
|
| series[#].column_names | list | 필수 | 데이터 소스 필드 key로, time을 제외한 나머지는 테이블 열의 참조로 사용됩니다. |
| series[#].column_names[#] | str | ||
| series[#].values | list | 데이터 그룹으로, 길이는 series[#].columns와 일치해야 합니다. (테이블 차트에서 column_names 부분 열의 매핑 값에 해당합니다.) |
|
| series[#].values[#] | list | [null, 데이터 값, ...]으로 구성됩니다. |
|
| series[#].values[#][#] | str |
외부 함수 응답 구조 예시¶
@DFF.API('함수명', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
data1_1 = 100
data1_2 = 101
data2_1 = 200
data2_2 = 201
now1 = int(time.time()) * 1000
now2 = int(time.time()) * 1000
#
return {
"content": [
{
"group_by": ['attrA'],
"columns": ["filedA","filedB"]
"column_names": ["filedA","filedB"]
"series": [
{
"tags": {"attrA":'value1'},
"columns": ["time", "filedA","filedB"],
"values": [
[now1, data1_1,data1_2],
[now2, data2_1,data2_2]
],
"total_hits": -1
}
]
}
]
}
시계열 테이블 차트 데이터 구조 설명¶
// 아래 demo 데이터 테이블 열은 ['fieldA', 'fieldB', 'fieldC', 'fieldD']입니다.
{
"query": {},
"series": [
{
"values": [
[1737365938763, 19],
[1737365938585, 20],
[1737365938874, 21],
[1737365939137, 22]
],
"columns": ["time", "fieldA"]
},
{
"values": [
[1737365938763, 30],
[1737365938585, 30.5],
[1737365938874, 31],
[1737365939137, 31.5]
],
"columns": ["time", "fieldB"]
},
{
"values": [
[1737365938763, 50],
[1737365938585, 50.5],
[1737365938874, 51],
[1737365939137, 51.5]
],
"columns": ["time", "fieldC"]
},
{
"values": [
[1737365938763, 60],
[1737365938585, 60.5],
[1737365938874, 61],
[1737365939137, 61.5]
],
"columns": ["time", "fieldD"]
}
]
}
시계열 테이블 차트의 열 값은 series[#].columns의 두 번째 열 데이터를 중복 제거하여 병합하여 구성됩니다.
- 필드 설명:
| 매개변수 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| series | list | 필수 | 데이터 그룹으로, 길이는 테이블에 있는 데이터 그룹의 수를 나타냅니다. |
| series[#] | dict | 하나의 데이터 집합 | |
| series[#].columns | list | 필수 | time과 열 이름으로 구성됩니다. 즉, ['time', 열 이름]입니다. |
| series[#].columns[#] | str | ||
| series[#].values | list | 2차원 배열로, 각 데이터는 해당 열의 서로 다른 시간 차원에 대응하는 값을 나타내며, 배열 길이는 테이블의 행에 영향을 미칩니다. | |
| series[#].values[#] | list | [타임스탬프, 데이터 값] |
|
| series[#].values[#][#] | str |
외부 함수 응답 구조 예시¶
@DFF.API('함수명', category='dataPlatform.dataQueryFunc')
def whytest_topology_test():
data1_1 = 100
data1_2 = 101
data2_1 = 200
data2_2 = 201
data3_1 = 101
data3_2 = 202
now1 = int(time.time()) * 1000
now2 = int(time.time()) * 1000
now3 = int(time.time()) * 1000
#
return {
"content": [
{
"series": [
{
"columns": ["time", "filedA"],
"values": [
[now1, data1_1],
[now2, data2_1],
[now3, data3_1],
],
},
{
"columns": ["time", "filedB"],
"values": [
[now1, data1_2],
[now2, data2_2]
[now3, data3_2]
],
}
]
}
]
}