
- KDB+ 教程
- KDB+ - 首頁
- Q 程式語言
- Q 程式語言
- Q 語言 - 型別轉換
- Q 語言 - 時間資料
- Q 語言 - 列表
- Q 語言 - 索引
- Q 語言 - 字典
- Q 語言 - 表格
- Q 語言 - 動詞 & 副詞
- Q 語言 - 連線
- Q 語言 - 函式
- Q 語言 - 內建函式
- Q 語言 - 查詢
- Q - 程序間通訊
- Q - 訊息處理器(.Z 庫)
- KDB+ 有用資源
- KDB+ - 快速指南
- KDB+ - 有用資源
- KDB+ - 討論
Q 語言 - 磁碟上的表格
硬碟上的資料(也稱為歷史資料庫)可以儲存為三種不同的格式 - 平面檔案、擴充套件表和分割槽表。這裡我們將學習如何使用這三種格式儲存資料。
平面檔案
平面檔案完全載入到記憶體中,因此其大小(記憶體佔用)應該很小。表格完全儲存在磁碟上的一個檔案中(因此大小很重要)。
用於操作這些表格的函式是set/get -
`:path_to_file/filename set tablename
讓我們舉個例子來演示它是如何工作的 -
q)tables `. `s#`t`tab`tab1 q)`:c:/q/w32/tab1_test set tab1 `:c:/q/w32/tab1_test
在 Windows 環境中,平面檔案儲存在以下位置 - C:\q\w32

從磁碟(歷史資料庫)獲取平面檔案,並使用get命令,如下所示 -
q)tab2: get `:c:/q/w32/tab1_test q)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檔案中。
擴充套件表
如果一個表中有太多列,那麼我們將這些表儲存為擴充套件格式,即我們將其儲存在磁碟上的一個目錄中。在目錄中,每列都以與列名相同的名稱儲存在一個單獨的檔案中。每列都作為對應型別的列表儲存在 kdb+ 二進位制檔案中。
當我們需要頻繁訪問其眾多列中的一些列時,將表儲存為擴充套件格式非常有用。擴充套件表目錄包含.d二進位制檔案,其中包含列的順序。
與平面檔案非常類似,可以使用set命令將表儲存為擴充套件格式。要將表儲存為擴充套件格式,檔案路徑應以反斜槓結尾 -
`:path_to_filename/filename/ set tablename
要讀取擴充套件表,我們可以使用get函式 -
tablename: get `:path_to_file/filename
注意 - 要將表儲存為擴充套件格式,它必須是未加鍵且已列舉的。
在 Windows 環境中,您的檔案結構將如下所示 -

分割槽表
分割槽表提供了一種有效的方法來管理包含大量資料的巨大表格。分割槽表是分佈在多個分割槽(目錄)中的擴充套件表。
在每個分割槽內,一個表將有自己的目錄,其結構與擴充套件表相同。可以根據天/月/年對錶格進行拆分,以便最佳化對其內容的訪問。
要獲取分割槽表的內容,請使用以下程式碼塊 -
q)get `:c:/q/data/2000.01.13 // “get” command used, sample folder quote| +`sym`time`bid`ask`bsize`asize`ex!(`p#`sym!0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 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
注意 - 分割槽模式適用於每天有數百萬條記錄的表格(即時間序列資料)
Sym 檔案
Sym 檔案是一個 kdb+ 二進位制檔案,包含所有擴充套件表和分割槽表中的符號列表。可以使用以下方法讀取它,
get `:sym
par.txt 檔案(可選)
這是一個配置檔案,當分割槽分佈在多個目錄/磁碟驅動器上時使用,幷包含磁碟分割槽的路徑。