【问题标题】:PostgreSQL Junction Table to a key-value store (like Kyoto Cabinet)PostgreSQL 连接表到键值存储(如京都内阁)
【发布时间】:2012-08-21 02:00:27
【问题描述】:

我不确定这是什么类型的问题。

Kyoto Cabinet 支持哪些导入格式?

例如,我在 PostgreSQL 数据库中有一个联结表 t,多对多关系。 t的大小约为2.85亿。

t =
X, Y
-----
1, a
1, b
2, a
2, c
3, c
3, d
4, b
4, e

什么是最简单、最快捷的导出方式,然后导入到京都内阁等键值存储?

所以我最终得到:

db = 
db[1] = [a,b]
db[2] = [a,c]
db[3] = [c,d]
db[4] = [b,e]

我的首选语言是 Ruby。

【问题讨论】:

  • 不确定问题是什么。您想要一个将其输出为文本的查询吗?还是其他一些数据类型?逐字?还是只是价值观?
  • @ErwinBrandstetter,我更新了我的问题:Kyoto Cabinet 支持哪些导入格式?
  • 我可以在 Postgres 方面提供帮助,但对京都内阁没有经验。

标签: ruby postgresql nosql kyotocabinet


【解决方案1】:

获取值:

SELECT x, array_agg(y ORDER BY y)
FROM   t
GROUP  BY x;

产生array。如果你想要text,请使用string_agg(y, ',' ORDER BY y)
可能更快:

SELECT x, array_agg(y)
FROM  (SELECT * FROM t ORDER BY x,y) t
GROUP  BY x;

【讨论】:

  • 这个 sql 查询极大地帮助了我。京都内阁有一个setBulk 批量插入方法。您的查询帮助我准备好调用它的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多