Database 如何使用两个不同长度的表或多个符号列创建数据库?

Database 如何使用两个不同长度的表或多个符号列创建数据库?,database,database-design,kdb,q-lang,Database,Database Design,Kdb,Q Lang,我有两张桌子: 表1从2017年1月1日到2018年1月1日 表2涵盖2017.12.01->2023.01.15(包含大部分虚假模拟数据) 我想创建一个按日期分区的历史数据库,并让用户能够向其附加其他数据(我不担心后续附加的重复数据) 表2还有两个符号列(GBP和UK->所有条目相同->当我得到真实数据时可能会改变) 我想创建一个分区表,如下所示: HDB_DATE1_TAB1 | |_TAB2 |_DATE2_TAB1 | |_TAB2 |_DATE3

我有两张桌子:

  • 表1从2017年1月1日到2018年1月1日
  • 表2涵盖2017.12.01->2023.01.15(包含大部分虚假模拟数据)
我想创建一个按日期分区的历史数据库,并让用户能够向其附加其他数据(我不担心后续附加的重复数据)

表2还有两个符号列(GBP和UK->所有条目相同->当我得到真实数据时可能会改变)

我想创建一个分区表,如下所示:

HDB_DATE1_TAB1
  |      |_TAB2
  |_DATE2_TAB1
  |      |_TAB2
  |_DATE3_TAB1
  |_DATE4_TAB1
  |      |_TAB2
  |_DATE5_TAB1
  |_DATE6_TAB1
  |      |_TAB2
  .
  . 
  .
如您所见,其中一个表的条目比另一个表的条目多(明显多)。如何在KDB中实现这种结构


此时,我从表2中删除了两个符号列。我用.Q.dpft保存了第一个,第二个就像普通的八字桌一样。当我加载数据库时,只会出现一个表(表2),我无法以任何方式查询它。你能给我指出正确的方向吗?

磁盘上的结构不是这样的,但请看一下.Q.bv[],看看它是否能满足您的需要


问题可能与上述hdb结构有关,需要在每个分区中定义表。该结构可以用螺栓固定。我按照上面的步骤创建了一个hdb,
trades
通过
.Q.dpft
保存,
quotes
通过
set
创建一个splay

tree -d db
db
├── 2007.07.25
│   ├── quotes
│   └── trades
└── 2007.07.26
    └── trades
将db加载到q会话中只返回
trade

q)\l db
q)\a
,`trades
使用
.Q.chk
将填充每个分区中缺少的表

q).Q.chk[`:.]
,`:./2007.07.26
()
q)\l .
q)\a
`quotes`trades
q)
然后可通过树验证:

tree -d db
db
├── 2007.07.25
│   ├── quotes
│   └── trades
└── 2007.07.26
    ├── quotes
    └── trades