跳到主要内容

创建数据帧

数据帧是一种列式数据结构,可以高效地查询大量数据。由于数据帧是为 Grafana 开发数据源和其他插件时的核心概念,本指南将介绍一些使用数据帧的方法。

DataFrame 接口包含一个 name 和一个 fields 数组,其中每个字段包含该字段的名称、类型和值。

注意

如果你想迁移现有插件以使用数据帧格式,请参阅迁移到数据帧

创建数据帧

如果你构建数据源插件,那么你很可能想将外部 API 的响应转换为数据帧。我们来看看如何实现。

我们从创建一个表示时间序列的简单数据帧开始。创建数据帧最简单的方法是使用 toDataFrame 函数。

// Need to be of the same length.
const timeValues = [1599471973065, 1599471975729];
const numberValues = [12.3, 28.6];

// Create data frame from values.
const frame = toDataFrame({
name: 'http_requests_total',
fields: [
{ name: 'Time', type: FieldType.time, values: timeValues },
{ name: 'Value', type: FieldType.number, values: numberValues },
],
});
注意

表示时间序列的数据帧至少包含一个时间字段和一个数字字段。按照约定,内置插件将 TimeValue 用作包含时间序列数据的数据帧的字段名称。

从示例中可以看出,要创建这样的数据帧,你的数据必须已经以列式数据存储。如果你已经有以对象数组形式存在的记录,那么你可以将其传递给 toDataFrame。在这种情况下,toDataFrame 会根据数组中对象的类型和名称尝试猜测模式。以这种方式创建复杂的数据帧时,请务必验证你获得的模式是否符合预期。

const series = [
{ Time: 1599471973065, Value: 12.3 },
{ Time: 1599471975729, Value: 28.6 },
];

const frame = toDataFrame(series);
frame.name = 'http_requests_total';

另请参阅