2017-06-05 35 views
0

如果有兩個實例:a1和a2,並且都連接到相同的hdb。我想a2連接到hdb但添加一些過濾器。例如,有一張名爲elec的表格。在kdb中加載hdb時掩蓋一些字段

我想a2開始篩選一些值。如果我編寫代碼並讓a2在啓動時加載它,是不是將這些信息加載到內存中?有什麼辦法可以在啓動a2實例時像正常的hdb一樣加載它?

基本上,問題是如何在加載hdb時掩蓋一個表中的某些字段?

+0

不太確定我遵循,你能給一個簡單的可重複的例子嗎? – terrylynch

+0

謝謝terry!例如:兩個實例加載相同的hdb數據。在hdb中有10個表。兩個來自同一目錄的加載。如果我想啓動一個加載hdb的實例,但是要過濾一個表的日期,並且只在2017.05.30之前顯示數據。我怎樣才能做到這一點? – Terry

+1

你可以看看在a2 hdb實例中設置.Q.view - 但是這將適用於所有表http://code.kx.com/wiki/JB:KdbplusForMortals/dotQ_utilities q).Q.view 2017.05。 30 –

回答

2

可以防止選擇語句返回的列在您的HDB實例中操縱表定義。以下示例具有單個日期分區表。我們將定義更新爲翻轉字典,僅定義了一部分列。然而,這是可逆的,並且不會更新您的實例中表格的元素,它仍然會顯示所有列。

q)meta trade 
c | t f a 
----| ----- 
date| d 
sym | s p 
size| j 
px | f 
side| s 

q)flip trade 
`sym`size`px`side!`trade 


q)`trade set flip `sym`size`px!`trade 
q)select from trade where date=2017.05.27 
date  sym size px 
------------------------------ 
2017.05.27 APPl 9968 92.79204 
2017.05.27 APPl 9788 94.97189 
2017.05.27 APPl 9660 27.62907 

q)meta trade 
c | t f a 
----| ----- 
date| d 
sym | s p 
size| j 
px | f 
side| s 
+0

非常感謝!這個作品!!!!通過任何機會,你知道如何在表中添加一個過濾器到日期,所以人們只能在某個日期之前查詢數據? – Terry

+0

使用.Q.view是限制可用日期的最簡單方法,但這將適用於您的HDB實例中的所有表。 – Gilmer

+0

感謝吉爾默。但是沒有辦法用別的東西來代替返回值嗎?恩。在數據字段中,有「帳戶= 1234,現金= 3456」我只想在返回時使它返回現金= 3456。我知道如何在具有查詢功能的情況下做到這一點,但不知道我是否可以在q腳本中寫入某些內容,因此當人們進行正常查詢時,賬戶信息可以被替換爲空白或其他內容。 – Terry