暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kdb+表是字典的转置意味着什么?

kdb中文教程 2021-02-07
406


kdb+表(table)为字典(dict)的转置,意味着:表是字典的引用。表在kdb+内部的表示方式几乎与字典相同。我们可以使用flip函数从字典创建表:

q)t: ([] a: 1 2 3; b: 4 5 6; c: 7 8 9)  /定义一个表
q)d: `a`b`c ! (1 2 3; 4 5 6; 7 8 9) /定义一个字典
q)t ~ flip d /比较表t与字典d的转置
1b
复制

实际上,字典被转置时,其底层核心数据结构并没有改变。表本身是一个简单的小对象,它指向原来的词典。通过.Q.w函数,我们可以看看一个表及其相应的字典需要多少内存:

q).Q.w[]`used    /已用内存
696768
q)x:`a`b`c!3 3#til 9 /创建一个小字典
q).Q.w[]`used   /已用内存
699152
q)x:flip x     /由字典创建表
q).Q.w[]`used   /已用内存
699168
q)699168 - 699152   /已内存存变化为16字节
16
复制

不管原有字典有多大,由字典创建表都很快,并且只需要16个字节:

q)x:`a`b`c!3 100000 # til 10
q).Q.w[]`used
3844688
q)x:flip x
q).Q.w[]`used
3844704
q)3844704 - 3844688
16
复制



注:参考https://kdbfaq.com/what-does-it-mean-for-a-table-to-be-a-flipped-dictionary/


《kdb+中文教程》

  全文链接

前言及目录
第一章  简介

第二章  数据类型

第三章  数组

第四章  字典

第五章  函数

第六章  表与qSQL

第七章  I/O操作

第八章  数据库

第九章  应用例子

第十章  问答(含参考文献)

《kdb+中文教程》

主要内容

kdb+号称是世界上最快的内存数据库,q是kdb+的内置语言。事实上kdb+/q不只是内存数据库,更是一款高性能大数据平台,它使用统一的数据库处理实时数据和历史数据,同时具备CEP(复杂事件处理)引擎、内存数据库、磁盘数据库等功能。与传统关系数据库及现代大数据平台相比,kdb+/q具有更快的速度和更低的总拥有成本,非常适合海量数据的快速采集、存储、分析、处理和检索等。kdb+/q最初主要被用于金融机构海量数据分析和高频交易,目前被广泛用于人工智能、机器学习、物联网、智能电网、航天等领域。


《kdb+中文教程》是一本关于kdb+/q的中文入门书籍,内容分为三大部分:


第一部分(第一章)为kdb+/q简介,主要介绍kdb+/q的优势及不同许可类型,同时介绍了kdb+/q的下载、安装、基本操作及数据表操作等。通过学习本章,读者可以快速了解kdb+/q的特性,同时对kdb+/q的独特、简洁等有一个初步直观感受。


第二章至第八章为第二部分,是本书的核心内容,分别为数据类型、数组、函数、字典、表与qSQL、I/O操作及数据库。首先介绍了kdb+/q的基本数据类型,然后介绍了kdb+/q的数组(列表)、函数、字典、表,最后介绍了文件I/O操作、进程间通讯、数据库构建等。通过这部分内容的学习,读者可以掌握kdb+/q的基础知识,为kdb+/q的运用打下坚实基础,逐步将kdb+应用于实际场景,同时能进一步感受kdb+/q的简洁、灵活与强大等。


第三部分包括第九章和第十章。第九章通过实例介绍kdb+在股票期货数据处理方面的常见应用,包括历史行情数据库构建、策略回测与优化、实时行情处理等,并简单介绍了企业级开源证券期货交易平台Tx。第十章把一些可能有用的知识点以问答形式列出来,方便读者需要时查找。通过这部分内容的学习,读者可以参考常见应用实例,举一反三。






文章转载自kdb中文教程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论