Oracle
 sql >> Database >  >> RDS >> Oracle

Come faccio a progettare una tabella che memorizzerà dati molto grandi?

Quella dimensione ti mette nel territorio VLDB (database molto grandi). Le cose sono fondamentalmente diverse a quell'altitudine.

Non è possibile rispondere alla tua domanda senza i requisiti completi delle responsabilità della tua domanda. Devi progettare per prestazioni rispetto a ciò che la tua applicazione dovrebbe FARE con i dati.

Il mio consiglio è di coinvolgere qualcuno che abbia esperienza precedente, o sei quasi al 100% garantito per fallire.

Se utilizzi Oracle, fornisce diversi tipi di partizionamento che vorrai utilizzare con molta attenzione. Hai bisogno di partizioni per scopi amministrativi (spostamento di dati, creazione di indici, ripristino di dati) e per prestazioni di query:

  • Partizionamento dell'intervallo, ad esempio per un intervallo di date
  • Partizionamento dell'elenco, per archiviare porzioni di dati, ad esempio per paese ("SE", "US", "GB")
  • Partizionamento hash. Memorizza i tuoi dati in una delle partizioni in base a una funzione hash
  • O qualsiasi combinazione di quanto sopra

Inoltre, hai bisogno di qualcuno che sappia come costruire e configurare una macchina mostruosa con un throughput I/O davvero eccezionale. Hai bisogno di più di 1 GB/s, il che non è molto economico quando devi memorizzare anche 200 TB. In realtà, se quei 200 TB sono solo dati di tabella, dovrai raddoppiarli o triplicarli per poter creare indici, tabelle aggregate, backup ecc.

Mi dispiace non poterti fornire una soluzione pronta per l'uso, ma volevo assicurarmi che capissi che non stai solo costruendo un database di dimensioni superiori alla media. È enorme!