查看数据看板和图表结果¶
从看板列表取得看板 ID,读取图表定义,再查询指定图表的执行结果。
准备¶
读取看板及图表结果¶
示例读取一页看板,并查询首个看板中首个图表的执行结果。
import os
import moi_product_sdk as sdk
client = sdk.new_with_personal_access_token(
os.environ["PRODUCT_API_BASE_URL"], os.environ["PRODUCT_API_KEY"]
)
workspace_id = os.environ["WORKSPACE_ID"]
workspace = client.workspace(workspace_id)
service = client.dashboard(workspace_id)
page = service.list(sdk.DataDashboardListRequest(page_size=20))
for item in page.items:
print(item.id, item.name)
print("是否还有下一页:", page.has_more, "下一页标记:", page.next_page_token)
if not page.items:
raise SystemExit("当前页没有看板")
dashboard = service.get(page.items[0].id)
for chart in dashboard.charts:
print("图表:", chart.id, chart.name)
if not dashboard.charts:
raise SystemExit("所选看板没有图表")
execution = service.chart_result(dashboard.id, dashboard.charts[0].id)
print("执行 ID:", execution.execution_id)
print("状态:", execution.status, "错误:", execution.error)
print("查询结果:", execution.result)
package main
import (
"context"
"fmt"
"os"
sdk "github.com/matrixorigin/matrixflow/sdk/go-sdk"
)
func main() {
ctx := context.Background()
client, err := sdk.NewWithPersonalAccessToken(os.Getenv("PRODUCT_API_BASE_URL"), os.Getenv("PRODUCT_API_KEY"))
if err != nil {
panic(err)
}
workspaceID := os.Getenv("WORKSPACE_ID")
workspace, err := client.Workspace(workspaceID)
if err != nil {
panic(err)
}
_ = workspace
service := client.Dashboard(workspaceID)
page, err := service.List(ctx, &sdk.DataDashboardListRequest{PageSize: 20})
if err != nil {
panic(err)
}
for _, item := range page.GetItems() {
fmt.Println(item.GetId(), item.GetName())
}
fmt.Println("是否还有下一页:", page.GetHasMore(), "下一页标记:", page.GetNextPageToken())
if len(page.GetItems()) == 0 {
fmt.Println("当前页没有看板")
return
}
dashboard, err := service.Get(ctx, page.GetItems()[0].GetId())
if err != nil {
panic(err)
}
for _, chart := range dashboard.GetCharts() {
fmt.Println("图表:", chart.GetId(), chart.GetName())
}
if len(dashboard.GetCharts()) == 0 {
fmt.Println("所选看板没有图表")
return
}
execution, err := service.ChartResult(ctx, dashboard.GetId(), dashboard.GetCharts()[0].GetId())
if err != nil {
panic(err)
}
fmt.Println("执行 ID:", execution.GetExecutionId())
fmt.Println("状态:", execution.GetStatus(), "错误:", execution.GetError())
fmt.Println("查询结果:", execution.GetResult())
}
根据图表的执行状态和错误信息检查查询结果。继续列出看板时,将返回的下一页标记传入列表请求,并保持其他查询条件不变。
最后更新于