Casa Finanza personale Transizione da un modello RDBMS a HBase - dummies

Transizione da un modello RDBMS a HBase - dummies

Video: Paper Province, un modello da seguire nella transizione verso la crescita verde 2025

Video: Paper Province, un modello da seguire nella transizione verso la crescita verde 2025
Anonim

Se stai affrontando la fase di progettazione per la tua applicazione e ritieni che HBase possa essere una buona soluzione, quindi progettando le tue chiavi di riga e lo schema per adattarle al modello di dati e all'architettura di HBase è il giusto approccio. Tuttavia, a volte ha senso spostare un database originariamente progettato per un RDBMS in HBase.

Uno scenario comune in cui questo approccio ha senso è un'istanza di database MySQL che ha raggiunto i suoi limiti di scalabilità. Esistono tecniche per il ridimensionamento orizzontale di un'istanza MySQL ( sharding, in altre parole), ma questo processo è solitamente macchinoso e problematico perché MySQL semplicemente non è stato originariamente progettato per il sharding.

La transizione dal modello relazionale al modello HBase è una disciplina relativamente nuova. Tuttavia, alcuni modelli di pensiero stabiliti stanno emergendo e si sono unificati in tre principi chiave da seguire quando ci si avvicina a una transizione. Questi principi sono denormalizzazione, duplicazione, e chiavi intelligenti (DDI) .

  • Denormalizzazione: Il modello di database relazionale dipende da a) uno schema di database normalizzato eb) unisce le tabelle per rispondere alle operazioni SQL. La normalizzazione del database è una tecnica che protegge dalla perdita di dati, dalla ridondanza e da altre anomalie man mano che i dati vengono aggiornati e recuperati.

    Ci sono un certo numero di regole che gli esperti seguono per arrivare a uno schema di database normalizzato (e la normalizzazione del database è un intero studio stesso), ma il processo di solito comporta la divisione di tabelle più grandi in tabelle più piccole e la definizione di relazioni fra loro. La denormalizzazione del database è l'opposto della normalizzazione, in cui tabelle più piccole e specifiche vengono unite in tabelle più grandi e più generali.

    Questo è uno schema comune quando si passa a HBase perché i join non vengono forniti tra le tabelle e i join possono essere lenti poiché comportano costose operazioni su disco. Proteggere dall'aggiornamento e dalle anomalie nel recupero è ora il compito dell'applicazione client HBase, poiché le protezioni garantite dalla normalizzazione sono nulle.

  • Duplicazione: Mentre denormalizzi lo schema del tuo database, probabilmente finirai con la duplicazione dei dati perché può aiutarti a evitare costose operazioni di lettura su più tabelle. Non preoccuparti dell'archiviazione extra (ovviamente ovviamente); puoi sfruttare la scalabilità automatica di HBase a tuo vantaggio.

    Tuttavia, tieni presente che sarà necessario un ulteriore lavoro dall'applicazione client per duplicare i dati e ricordare che nativamente HBase fornisce solo operazioni atomiche a livello di riga non incrociate (con l'eccezione descritta nella HBIR-5229 JIRA) o cross tavolo.

  • Chiavi intelligenti: Poiché i dati memorizzati in HBase sono ordinati per chiave di riga e la chiave di riga è l'unico indice nativo fornito dal sistema, un'accurata progettazione intelligente della chiave di riga può fare un'enorme differenza. Ad esempio, la tua chiave di riga potrebbe essere una combinazione di un numero di ordine di servizio e il numero ID del cliente che ha inserito l'ordine di servizio.

    Il design di questa riga chiave consente di cercare i dati relativi all'ordine di servizio o di cercare i dati relativi al cliente utilizzando la stessa chiave di riga nella stessa tabella. Questa tecnica sarà più veloce per alcune query ed eviterà costosi join di tabelle.

Per chiarire questi particolari schemi di pensiero, prendere una tabella di informazioni sul contatto con il cliente e inserirla nel contesto di un tipico database di ordini di assistenza. La figura mostra come potrebbe essere uno schema di database di un ordine di servizio normalizzato.

Seguendo le regole della normalizzazione RDBMS, impostare la tabella delle informazioni di contatto del cliente in modo che sia separata dalla tabella dell'ordine di servizio per evitare di perdere i dati dei clienti quando gli ordini di servizio vengono chiusi ed eventualmente cancellati. Adottare lo stesso approccio per la tabella Prodotti, il che significa che è possibile aggiungere nuovi prodotti al database aziendale fittizio indipendentemente dagli ordini di servizio.

Facendo affidamento sulle operazioni di join RDBMS, questo schema supporta query che rivelano il numero di ordini di servizio che vengono aperti rispetto a un particolare prodotto insieme alla posizione del cliente in cui il prodotto è in uso.

Va tutto bene e dandy, ma è uno schema che useresti con RDBM. Come si passa questo schema a uno schema HBase? La figura seguente illustra un possibile schema HBase, uno che segue il modello di progettazione DDI.

La tabella delle informazioni sul contatto con il cliente è stata denormalizzata includendo il nome del cliente e le informazioni di contatto al posto delle chiavi esterne utilizzate in precedenza. Inoltre, i dati vengono duplicati mantenendo la tabella Informazioni contatto cliente così com'è. Ora i join tra la tabella dell'ordine di servizio e la tabella di informazioni sul contatto con il cliente non sono necessari.

Inoltre, è stato utilizzato un design intelligente della riga di comando che combina il numero del prodotto con il numero cliente per formare il numero dell'ordine di servizio (A100 | 00001, ad esempio). Usando questa chiave intelligente, la tabella degli ordini di servizio può fornire rapporti vitali sulle carenze del prodotto e sui clienti che attualmente stanno riscontrando problemi con il prodotto.

Tutte queste query possono essere supportate da HBase in modo atomico a livello di riga per l'applicazione. Poiché tu sai che HBase ordina le chiavi di riga e le ordina in modo lessicografico, la tua applicazione può fare alcune ipotesi plausibili sulla località dei dati durante l'emissione di scansioni per la segnalazione. (Tutti i numeri dei prodotti della serie A * verranno memorizzati insieme, ad esempio.)

Il database degli ordini di servizio rappresentato dallo schema HBase è un esempio relativamente semplice, ma illustra come HBase, in alcuni casi, può intersecarsi con il mondo RDBMS e fornire un valore significativo. Se la società fittizia ha terabyte o anche petabyte di dati sulle chiamate di servizio da archiviare, HBase farebbe un'enorme differenza in termini di costi, affidabilità, prestazioni e scalabilità.

È possibile, ovviamente, progettare lo schema di HBase in diversi modi. Indubbiamente, il design dipende interamente dalle query che devono essere supportate, ma si ha la possibilità di trasferire alcuni database relazionali in applicazioni HBase molto potenti per l'uso di produzione, purché si lavori da una solida conoscenza dell'architettura HBase e del modello di progettazione DDI.

Questo esempio ha presupposto che le query siano state eseguite da un'applicazione Java sfruttando le API del client HBase, o forse tramite un'altra lingua usando Apache Thrift. Questo modello di applicazione può adattarsi perfettamente ai requisiti e fornire utili prestazioni e opzioni di personalizzazione per la società di servizi fittizi.

Transizione da un modello RDBMS a HBase - dummies

Scelta dell'editore

Come leggere dal file in PHP per la programmazione HTML5 e CSS3 - manichini

Come leggere dal file in PHP per la programmazione HTML5 e CSS3 - manichini

Se puoi scrivere dati in un file in PHP, sarebbe logico che tu possa leggere da quel file anche per la programmazione HTML5 e CSS3. Il readContact. programma php recupera i dati salvati nel programma precedente e li visualizza sullo schermo. Non è difficile scrivere un programma per leggere ...

Come usare una classe PHP in uno script - dummy

Come usare una classe PHP in uno script - dummy

Il codice classe PHP deve essere inserito lo script che usa la classe. Più comunemente, la classe viene archiviata in un file di inclusione separato ed è inclusa in qualsiasi script che utilizza la classe. Per usare un oggetto, devi prima creare l'oggetto dalla classe. Quindi quell'oggetto può eseguire qualsiasi metodo che ...

Scelta dell'editore

Come usare lo strumento Timbro clone di Photoshop - manichini

Come usare lo strumento Timbro clone di Photoshop - manichini

Puoi usare lo strumento Timbro clone in Photoshop per rimuovere gli angoli e altri difetti copiando una porzione dei pixel circostanti, che dovrebbero avere un colore e una consistenza simili, sopra la parte malata dell'immagine. Per utilizzare lo strumento Timbro clone, attenersi alla seguente procedura: Selezionare lo strumento Timbro clone dallo strumento ...

Come disinstallare e reinstallare Photoshop Lightroom - dummies

Come disinstallare e reinstallare Photoshop Lightroom - dummies

Se si nota un problema con Lightroom la prima volta che si avvia esso, qualcosa potrebbe essere andato storto durante il processo di installazione. Disinstallare e quindi reinstallare potrebbe essere tutto ciò che è necessario per correggere il problema. Il processo è diverso per ogni sistema operativo, quindi ecco i passaggi separati per ciascuno. Su Windows: Chiudi tutto ...

Fotografia For Dummies Cheat Sheet - dummies

Fotografia For Dummies Cheat Sheet - dummies

La fotografia è un hobby divertente e gratificante che può renderti molto popolare tra la gente nelle tue foto - o molto impopolare. Per ottenere il massimo da una fotocamera "inquadra e scatta", digitale o meno, la prima abilità da padroneggiare è bloccare l'attenzione. Puoi perfezionare le tue abilità fotografiche in modo che le tue foto siano ...

Scelta dell'editore

Agire per aumentare le emozioni edificanti - manichini

Agire per aumentare le emozioni edificanti - manichini

Al fine di elevare le tue emozioni, il primo passo è diventare consapevoli di quale emozioni che hai Diventa consapevole di ciò che ti innesca: cosa ti mette in agitazione e ti fa arrabbiare e ciò che ti rende molto eccitato. Un trigger sta guardando alcuni programmi televisivi e consente alle emozioni di questi programmi di permeare ...

Come le aziende ti convincono ad acquistare i loro prodotti - manichini

Come le aziende ti convincono ad acquistare i loro prodotti - manichini

Quasi tutti i media commerciali destinati alle donne ottengono la loro pubblicità entrate dalle industrie del cibo, della bellezza, della dieta e della moda. Solo l'industria della dieta stessa è un'impresa commerciale da 33 miliardi di dollari l'anno. E, naturalmente, queste industrie hanno bisogno di clienti in modo continuativo per continuare a avere successo. È nel loro interesse per ...

Come si forma l'immagine del corpo nella tua gioventù - dummies

Come si forma l'immagine del corpo nella tua gioventù - dummies

In generale, ciò che hai vissuto con la tua famiglia quando stavano crescendo ha avuto un effetto diretto sui pensieri e le sensazioni che hai avuto sul tuo corpo. Ripensa ai tuoi anni più giovani. Quanto attentamente le seguenti affermazioni descrivono la tua famiglia? Nessuno ha esercitato. L'auto è stata utilizzata anche per viaggi brevi. Cibo pesante e da ingrasso ...