如何将每个表导出到kdb +数据库中的csv?

Gav*_*han 3 kdb q-lang

假设我的kdb +数据库有几个表.如何将所有表导出到csv文件,其中每个csv的名称与表名相同?

小智 7

可能有很多方法可以解决这个问题,一种解决方案可能是:

 q)t1:([]a:1 2 3;b:1 2 3)
 q)t2:([]a:1 2 3;b:1 2 3;c:1 2 3)
 q){save `$(string x),".csv"} each tables[]
   `:t1.csv`:t2.csv
Run Code Online (Sandbox Code Playgroud)

参考:http://code.kx.com/q/ref/filewords/#save

如果您希望指定要保存的文件的目录,那么您可以像这样增强功能:

q){[dir;tSym] save ` sv dir,(`$ raze string tSym,`.csv)}[`:C:/Users/dhughes1/Documents;] each tables[]
  `:C:/Users/dhughes1/Documents/t1.csv`:C:/Users/dhughes1/Documents/t2.csv
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您正在讨论具有日期分区/展开表等的历史数据库,那么它会比这复杂得多. (4认同)