MattGuest
Hi,
I am more familiar with other standard database systems and I can’t seem to find any mention of using views in kdb+.
Does kdb+ have views?
kdb+ does support a form of views. You use double colon :: to assign a view of a table to a variable. The result then becomes cached in that variable and is only updated as necessary when the underlying table changes.
e.g.
`q)t:([] a:til 1000000)
q)select from t where a in 1 1000 2000
a
—-
1
1000
2000`
Create the view
`
q)myView::select from t where a in 1 1000 2000
q)myView
a
—-
1
1000
2000`
Notice time to query cached view is 0
`
q)\t do[100; select from t where a in 1 1000 2000]
377
q)\t do[100; myView]
0`
insert new value, next query costs a little
q)`t insert ([] a:999999 2000)
1000000 1000001
q)\t do[100; myView]
5
updated data shown
`
q)myView
a
—-
1
1000
2000
2000`
system “b” or \b will display the views that exist within your kdb+ process.