BulkLoad 函数

BulkLoad 函数将客户机文件中的数据装入现有时间系列。

语法

BulkLoad (ts       TimeSeries, 
           filename lvarchar,
           flags    integer default 0) 
returns TimeSeries;
ts
要将数据装入其中的时间系列。
filename
要装入的文件的路径和文件名。
flags
flags 参数值中描述了 flags 参数的有效值。缺省值为 0

描述

文件位于客户机中,可以是绝对或相对路径名。

BulkLoad 装入的文件支持两种数据格式:
  • 使用类型构造函数
  • 使用制表符

客户机文件的每一行都必须包含一个元素的所有数据。

类型构造函数的格式遵循行类型约定:在括号中括起以逗号分隔的列,且前面加上 ROW 类型构造函数。典型文件的前两行如下所示:
row(2011-01-03 00:00:00.00000, 1.1, 2.2)
row(2011-01-04 00:00:00.00000, 10.1, 20.2)
如果在行数据类型的列中包括集合,那么使用类型构造函数(SET、MULTISET 或 LIST)和括起集合值的花括号。包括行集的行格式如下:
row(timestamp, set{row(value, value), row(value, value)}, value)
制表符格式是使用制表符分隔值。仅建议不包含集合或行数据类型的单一级别的行使用。 使用此格式的典型文件的前两行如下所示:
2011-01-03 00:00:00.00000   1.1     2.2
2011-01-04 00:00:00.00000   10.1    20.2

条目之间的空格表示制表符。

在两种格式中,单词 NULL 都表示空条目。

在规则时间系列中,BulkLoad 遇到具有重复时间戳记的数据时,旧值将替换为新值。在不规则的时间系列中,BulkLoad 遇到具有重复时间戳记的数据时,以下算法将用于确定属于重复时间戳记的数据的放置位置:
  1. 将时间戳记舍入为下一秒。
  2. 向后搜索早于新时间戳记的第一个元素。
  3. 在此时间戳记加 10 微秒处插入新数据。

这与 PutElem 函数使用的算法相同,如 PutElem 函数中所述。

返回结果

包含新数据的时间系列。

示例

以下示例将 sam.dat 文件中的数据添加到 stock_data 时间系列:
update daily_stocks 
set stock_data = BulkLoad(stock_data, 'sam.dat')
   where stock_name = 'GBase';