开发手册 欢迎您!
软件开发者资料库

Q语言 - 磁盘上的表

Q磁盘上的语言表 - 使用这个初学者教程,简单易学地学习KDB +,包括从概述,架构,Q编程语言,类型转换,时态数据,列表,索引,词典,表格,动词和副词开始的基础知识到高级知识,联接,函数,内置函数,查询,进程间通信,消息处理程序(.Z库),属性,功能查询,表算法,磁盘上的表,维护功能。

硬盘上的数据(也称为历史数据库)可以保存为三种不同的格式和减号;平面文件,显示的表和分区表.在这里,我们将学习如何使用这三种格式来保存数据.

平面文件

平面文件已完全加载到内存中,这就是为什么它们的大小(内存占用)应该很小.表完全保存在磁盘上(因此大小很重要).

用于操作这些表的函数是 set/get :

 `:path_to_file/filename set tablename

让我们举一个例子来演示它是怎么回事work :

 q)tables`. `s#`t`tab`tab1 q)`:c:/q/w32/tab1_test set tab1 `:c:/q/w32/tab1_test

在Windows环境中,平面文件保存在位置和减号; C:\ q\w32

Windows环境

从磁盘(历史数据库)获取平面文件并使用 get 命令,如下所示 :

q)tab2: get `:c:/q/w32/tab1_testq)tab2   sym    |   time           price   size--------- | -------------------------------  APPLE   | 11:16:39.779   8.388858   12  MSFT    | 11:16:39.779   19.59907   10  IBM     | 11:16:39.779   37.5638    1 SAMSUNG  | 11:16:39.779   61.37452   90  APPLE   | 11:16:39.779   52.94808   73

创建一个新表 tab2 ,其内容存储在 tab1_test file.

Suseded Tables

如果表中的列太多,那么我们以splayed格式存储这些表,即我们保存它们位于目录中的磁盘上.在目录中,每个列都保存在一个单独的文件中,名称与列名相同.每个列都保存为kdb +二进制文件中相应类型的列表.

当我们必须频繁访问其中的几列时,以splayed格式保存表非常有用列.显示的表目录包含 .d 二进制文件,其中包含列的顺序.

就像平面文件一样,表格可以通过使用保存为显示设置命令.要将表保存为splayed,文件路径应以反斜结尾减去;

 `:path_to_filename/filename/set tablename

为了阅读显示的表格,我们可以使用 get 函数 :

  tablename:get`:path_to_file/filename

注意 : 对于要保存为展开的表,它应该是非键控和枚举的.

在Windows环境中,您的文件结构将显示如下 :

文件结构

分区表

分区表提供高效意味着管理包含大量数据的大型表.分区表是分布在更多分区(目录)上的splayed表.

在每个分区中,一个表将拥有自己的目录,其中包含一个splayed表的结构.这些表可以按日/月/年进行拆分,以便提供对其内容的优化访问.

要获取分区表的内容,请使用以下代码块 :

q)get `:c:/q/data/2000.01.13              // "get" command used, sample folderquote| +`sym`time`bid`ask`bsize`asize`ex!(`p#`sym!0 0 0 0 0 0 0 0 0 0 00 0 0….trade| +`sym`time`price`size`ex!(`p#`sym!0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 ….

让我们尝试获取交易表的内容 :

q)get `:c:/q/data/2000.01.13/trade   sym    time            price     size    ex--------------------------------------------------    0   09:30:00.496    0.4092016    7      T    0   09:30:00.501    1.428629     4      N    0   09:30:00.707    0.5647834    6      T    0   09:30:00.781    1.590509     5      T    0   09:30:00.848    2.242627     3      A    0   09:30:00.860    2.277041     8      T    0   09:30:00.931    0.8044885    8      A    0   09:30:01.197    1.344031     2      A    0   09:30:01.337    1.875        3      A    0   09:30:01.399    2.187723     7      A

注意&minu s;分区模式适用于每天有数百万条记录的表格(即时间序列数据)

Sym文件

sym文件是一个kdb +二进制文件,包含所有splayed和分区表中的符号列表.它可以用,

  get`:sym

par .txt文件(可选)

这是一个配置文件,在分区分布在多个目录/磁盘驱动器上时使用,并包含磁盘分区的路径.