こんな感じのテーブルは対象
c | t f a ----------------| ----- sym | s datetime | z bidPrice | f askPrice | f targetTypes | S <-- これが問題 targetTimes | Z ...□ kxwiki - cookbook
http://code.kx.com/wiki/Cookbook/SplayedTables - Enumerating nested varchar columns in a table
□ やり方 通常は.Q.en[dbdir;data] でsymファイルが更新されるが、nested sym lists は手動でやれと書いてある。
> .Q.en does not enumerate nested sym lists; you have to do those manually
kxwikiの例では、symファイルのディレクトリを直接書いてるので、以下のような関数を作成してみた。
enumerateSymList: {[symdir; data] (` sv dbdir,`sym)?raze data; `sym$'data }; // example (/db/sym に作成する場合) // enumerateSymList[`:/db] (data) // こんな感じでつかう dbdir: `:/data/kdb; writepath: .Q.par[dbdir;2014.01.06;`$("tt","/")]; writepath set .Q.en[dbdir] update enumerateSymList[dbdir] targetTypes from tt; writepath set .Q.en[dbdir] update enumerateSymList[dbdir] targetTypes from select from tt where (`date$datetime)=2014.01.06;splayed tableではEnumerated Typeになるようだ。
c | t f a ----------------| ----- sym | s datetime | z bidPrice | f askPrice | f targetTypes | <-- metaで表示できない targetTimes | Z ... q) type first value first select targetTypes from tt 20h
0 件のコメント:
コメントを投稿