Database-Design

如何在 OLAP RDBMS 中處理“多列”

  • September 4, 2013

我有一個事實,有大約 1K 不同的數字屬性(即列)。我想將其儲存到面向列的數據庫中並對其執行多維數據集分析。

我試圖設計一個星型模式,但我不確定如何處理這麼多列。規範化聽起來是錯誤的,但我也不能只有平列。屬性的組合也太多樣化了,以至於沒有一個簡單的維度表,即使我將數值減少到類別(範圍),這是一個選項。我曾考慮將它們儲存為每行的 XML 或 JSON,但這聽起來也不是很好。

如果有幫助,我計劃將 Amazon 的 redshift 用於數據庫。

注意:我們對 RedShift 有強烈的偏好,因為它至少非常適合我們對此數據執行的其他少數操作。因此,如果可能,我想避免使用 HBase 等其他技術。

關於您為什麼要這樣做,假設您想查看客戶電子郵件中的哪些單詞/片語與昂貴的維修相關,並且您希望能夠使用 OLAP 對此進行分析。對許多文件進行標記/語法化可能會很昂貴,因此您可能希望以 OLAP 伺服器可以理解的形式(即列)儲存標記/語法。

考慮 MonetDB,它允許幾乎無限數量的列。

Redshift 的最大列數為1600 列

另一種選擇是使用主成分分析並僅選擇前 1600 個成分,但這會使解釋變得困難。

另一種選擇是使用 Postgres 並將標記化的字元串或 n-gram 儲存在字元串數組欄位中,但您的 OLAP 伺服器需要支持它。

引用自:https://dba.stackexchange.com/questions/41292