推 seagal:換了之後問題會很多吧 08/18 20:18
※ 引述《reader (讀者)》之銘言:
: ※ 引述《micklin (mick)》之銘言:
: : 最近在處理基因序列, 資料的儲存一直讓我很頭痛,
: : 在傳統資料處理時, 我都把column對應到feature, 把row當成一筆資料.
: : 但是現在的問題是MySQL不能處理2000個column (colon dataset),
: : 更別說另一個五萬多個基因的dataset了.
: : 轉成文字模式再用UltraEdit處理, 在4096個字元後就強迫斷行了 = =
: : 雖然可以自己用程式接起來就是了....
: : 所以我的問題是,
: : 在處理行與列的時候有沒有什麼不同呢?
: : 為什麼我們平常處理文字檔或資料庫的時候,
: : 會偏好row很多而不是column很多?
: : 是檔案結構的問題還是什麼地方的限制呢?
: : 謝謝回答.
: 比較技術性的解法,是使用 data_index, feature_index, feature 三個欄位,
: 並設定 index 在 data_index 欄位上。
: 電腦系統本來就傾向處理大量資料,而不是複雜資料,單是要處理複雜資料,就
: 會需要建立複雜的輸出入介面,大大地減低電腦對於複雜資料的處理能力。
: 如果不需要建立複雜的介面,也就等同於可以拆解資料了。
: 而且,避開極端性狀況來設計通用系統,原本就是一個有效降低軟體開發困難、
: 增加系統效能的好方法。這幾乎是所有便宜好用的系統的共同設計理念。
: 所以無論就介面、效能、開發上,多數資料系統都會傾向以處理簡單資料 (欄位
: 較少) 而不是複雜資料 (欄位較多) 為主要目的,並適度加上限制。
那麼, 假設現有有個資料庫, 並將每個table儲存為tbs,
在column很多的情況下, 能不能以標記的方式將此table的row與column轉換(轉置)?
舉個例子,
Table A是10個column配上10K個row,
Table B是10K個column配10個row的Table,
能不能將這兩個Table用一樣的檔案格式儲存起來,
然後對Table B做一個標記, 表示Table B的row與column是轉置的,
然後在進行存取的時候轉換回來?
這樣可以解決問題嗎?
: 就你的情況,使用二進位資料檔,寫程式來儲存處理,其實是比較適合的做法,
: 要有幾個欄位都隨你。
之所以會有點堅持在使用資料庫, 一部分的原因是因為要配合現有的程式,
一部份是有時候要進行簡單的column運算時, 用sql去進行運算還蠻快的,
不太想reinventing the wheel....
現在解決的方法是將兩千個feature存成row,
patient的編號則是column, 自己在程式內部進行row與column轉換,
只是對這個問題覺得很好奇~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 70.171.224.50