2012-08-15 25 views
0

我不確定這是什麼類型的問題。PostgreSQL到關鍵值存儲區的連接表(如京都內閣)

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] 

我的首選語言是紅寶石。

+0

不知道問題是什麼。你想要一個將其作爲文本輸出的查詢?或者其他一些數據類型?逐字?或者只是價值觀? – 2012-08-15 20:42:54

+0

@ErwinBrandstetter,我更新了我的問題:Kyoto Cabinet支持哪些導入格式? – 2012-08-20 18:03:00

+0

我可以幫助Postgres,但沒有京都內閣的經驗。 – 2012-08-21 04:18:10

回答

2

爲了獲取值:

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; 
+0

這個sql查詢幫了我很大的忙。京都內閣有一個[setBulk](http://fallabs.com/kyotocabinet/rubydoc/KyotoCabinet/DB.html#method-i-set_bulk)批量插入方法。您的查詢幫助我準備好調用此數據。 – 2012-08-21 15:52:50