查看数据看板和图表结果

从看板列表取得看板 ID,读取图表定义,再查询指定图表的执行结果。

准备

  1. 配置 SDK 和个人访问令牌。

  2. 选择工作区并获取工作区 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())
}

根据图表的执行状态和错误信息检查查询结果。继续列出看板时,将返回的下一页标记传入列表请求,并保持其他查询条件不变。

最后更新于