Press "Enter" to skip to content

GOTO 2012 • NoSQL Distilled • Pramod Sadalage


va bene grazie per il mio nome
promotore lavoro per parlare di opere facendo a
molti dati
al lavoro non necessariamente come il tipo DBA
lavoro, ma come si memorizzano i dati cosa fanno
si fa con esso come si usa e per
quale scopo e quali sono i più
modi efficaci per immagazzinare portandoli
fuori e refactoring loro a lungo
span perché le applicazioni vanno e vengono così
su un arco della compagnia stessa
non pensare all’applicazione la compagnia
i dati sono di per sé preziosi quindi
l’applicazione può andare e venire ma i dati
deve sopravvivere in modo che tu possa usarlo
correttamente per ulteriori analisi e tutti
quel tipo di cose così nel periodo I
opere di pensiero che ho scritto un paio di
libri uno di loro è stato scritto a
refactoring dei database così in un maturo
banca dati come si fa a refactoring e che
tipo di roba un altro essere come fai tu
fare database e integrazione continua
il mio ultimo libro insieme a Martin Fowler
non è SQL distillato perché pensiamo che
nessun movimento SQL è arrivato allo stadio in cui a
molte persone ci stanno pensando e
pensando a come non usare SQL così questo
libro ti dà una presentazione in
senti che come devi cambiare
la tua mente quando non pensi a SQL
come se non si potesse applicare la stessa modellazione
cose che hai fatto con il nostro DBMS per infastidire
distorce la tecnologia L e spero che succeda
eseguire meglio giusto solo perché è
bello andare così come mi piace farlo
è se hai domande proprio lì
allora e chiedi in modo che possiamo avere un
conversazione invece di me semplicemente dumping
un sacco di contenuti su di esso, così possiamo
adattalo al modo in cui le domande sono
andando invece di seguire solo le diapositive
quindi ogni volta che hai una domanda basta chiedere
e se non capisci nessun termine
Sto parlando di chiederlo a like
Non capisco cosa stai dicendo
il nostro diritto va bene così la prima domanda è
perché nessun diritto SQL quindi conosciamo lo schema
i cambiamenti sono difficili , non è facile
soprattutto se si dispone di un tipo 24/7
ambiente grandi set di dati che si desidera
rinomina una tabella rinomina una colonna aggiungi a
colonna rimuove un indice in pratica si blocca
il backup del database e poi si deve
in pratica porta giù la tua app o le persone
fai questo genere di cose padrone / schiavo
un sacco di giocoleria in giro solo per fare
questo schema di modifica funziona correttamente
c’è disadattamento di impedenza quindi sviluppiamo
negli oggetti ma memorizziamo in relazione
tavoli che crea tutti i tipi di
cose interessanti che l’ORM fa da sfondo
si sta pensando su di esso o la ricerca
i modelli cambiano e tutto il resto
roba da matti accade e per cui
il codice diventa davvero complicato e
cambiare il codice per cambiare i requisiti
poi diventa difficile
è qui che gli effetti del cambiamento dello schema
c’è disadattamento di impedenza proprio allora
il prossimo è come se fossimo abituati a pensare
sui database di integrazione come lì
sono un sacco di applicazioni per la corsa
in cima al nostro database e poi al
database diventa il tuo imbottigliamento perché
se cambi qualcosa per il tuo
database delle applicazioni che influenza
tutti gli altri a destra quindi questo è questo è
come siamo bloccati da questa parte qui
perché il database di integrazione è
dove si spostano le informazioni
invece di passare attraverso il servizio web
strato o uno strato riposante o qualcosa
così e poi l’applicazione può
decidere cosa fare con il database
giusto così se sei dalla parte giusta
una specie di situazione quindi la tua
l’applicazione può decidere cosa fare con
la modifica della modifica del refactoring del database
tutto ciò di cui ha bisogno di fare a meno
che colpisce i clienti esterni del
dati in sé proprio così nell’integrazione
modello di database se si modifica qualcosa
per la tua applicazione molto probabilmente lo sei
andando a influenzare gli altri e quella paura di
influenzare gli altri ti impedisce di fare
cose al database o fare meglio
cose al database in quel momento
c’è anche questo in esecuzione sul cluster così
di nuovo su qualsiasi tipo di DBMS e
un cluster è una cosa che non è quella
facile è costoso
come il cluster di applicazioni Oracle 8 lo farà
ti costa da qualche parte verso l’alto di sette
figura gli oratori proprio così in esecuzione
i cluster sono davvero difficili in un precedente
DBMS non duro come tecnicamente ferito ma
finanziariamente tutto bene e al giorno d’oggi con
l’intera faccenda del web sta arrivando e
c’è gente che vuole seguire
tutto o tutti i tipi di dati ci sono
tutta questa nozione di dati non strutturati
e la struttura dei dati stessi
continua a cambiare su di te così vai e
Riforma lo schema per adattarlo al nuovo
struttura quanto velocemente puoi farlo
è di nuovo in discussione, giusto e anche
c’è questo tasso di crescita come quello
l’ idea della capacità di massa che pianifica qualsiasi cosa
Le persone di tipo BBS credono in questo
o pianificano questa crescita lineare come
Una crescita di 40 porzioni all’anno pianifichiamo
per questo hanno una SAN in atto e tutto
quel genere di cose al giorno d’ oggi tassi di crescita
sono totalmente distorti perché a volte
il tuo prodotto me ne vado colpito in virale e in due
giorni avrai come terabyte di roba
venendo a te e in un mese o giù di lì
qualcosa di nuovo arriva e la gente no
visita il tuo sito più giusto così
succede e il tasso di crescita è alto e
giù così devi pensarci
tecnologie che possono adattarsi a questo
modello di andare su e giù o salire
molto veloce e che caster giusto così
tasso di crescita è importante anche
detto questo entriamo in questo
pensando a come ci si modella per questo
nessun momento di scala così ora non penso
sui valori chiave documenta qualcosa di simile
quella
pensa al tuo oggetto come sei
modellando quell’oggetto e come i dati
quell’oggetto piacerà a questo
generalmente come lo sarebbe il tuo modello di oggetto
assomigliamo e prendiamo quell’oggetto
modello e questo è il modo in cui i tuoi dati vorrebbero
sembra nel database giusto, quindi pensa
della prima diapositiva di disallineamento di impedenza
hai visto e questo è quello che sta succedendo
come il modello si riflette come
righe nel database a destra
complesso abbastanza veloce e ha come Eric
Stavo parlando di questo come nel taxi
siamo appena entrati parlando di questo
come le relazioni non sono finite
il posto e non ti ha delimitato
puoi continuare a percorrere fino a dove vuoi
e non viene limitato
correttamente giusto in modo che il modello crei tutto
tipi di complessità centrale e lotti
di ORN edek, proprio in realtà c’è a
carta che dice che più di m è il
vietnam di computer science da qualche parte
forse è una buona lettura da fare ma
è qui che tutta questa nozione di
il modello aggregato entra come Eric Evans
parla del design guidato da domini
prima sul dominio e poi puoi farlo
pensa a come archiviare tali dati in
modi diversi , giusto
quindi in questo qui stiamo dicendo il
il cliente è aggregato così come il
l’ordine è un aggregato quindi averlo preso
quella
puoi quindi trovare un JSON
rappresentazione dell’aggregato stesso
giusto quindi abbiamo clienti con l’idea
di uno e il nome di Martin e a
indirizzo di fatturazione di qualcosa e in
ordini aggregati abbiamo l’ordine
stesso come tutti gli ordini del cliente
mai collocato con tutti i dipendenti
cose incorporate al suo interno proprio così una volta
inizi a pensare in modo aggregato
allora puoi anche iniziare a pensare
come questi aggregati devono essere correlati
perché a volte puoi guardare a
cliente e vogliono ottenere tutto loro
ordini o a volte potresti voler guardare
a un ordine e ottenere i clienti
informazione giusto questo è dove puoi
anche bisogno di pensare a opzioni di come
molto ricevo dati per riferimento e come
molto ottengo incorporando proprio così tu
conosco SQL di cui molte persone parlano
incorporare dati e riferimenti
dati giusti e questi riferimenti non lo sono
applicato da nessun prodotto SQL come se
per esempio qui ho un ID cliente di
1 e nei clienti ho un’idea di 1
se metti l’ID 2 ora non importa a nessuno
come un database relazionale dove qualcuno
come se si spera che tu abbia una chiave straniera
si definisce quindi il database sarà baruffo
la voce attiva in chiave esterna non si incontra
il requisito non c’è niente come
che conosci SQL così devi pensare
di quello che può fare anche un riferimento
a volte se i tuoi dati non sono separati
c’è un bug da qualche parte e tu hai
riferimenti sbagliati nessuno arriverà e
ti dico che questo riferimento non è valido
giusto così devi vedere come puoi fare
ma una volta che lo fai, allora la vita
diventa molto più facile perché ora sei
pensando in aggregati e quello
aggregato stesso può essere spostato
senza doversi preoccupare di dove i dati
perché la dipendenza viene da perché
tale aggregato sé è un
cosa autosufficiente , quindi pensaci
come dover impostare come dati di test in
il tuo database proprio nel nostro DBMS tu
direi oh ho bisogno di ordine che significa I
bisogno di una riga nella tabella di ordine quattro righe
negli articoli cinque file nel prodotto uno
fila in personalizzato o una riga e devi
quella catena qui non c’è catena c’è
un Jason e questo è proprio con questo è
contenuti di sé in modo che semplifica un sacco di
cosa giusta in modo da poter avere diversi
modelli aggregati ancora come nel
il precedente modello di modifica era il cliente
così come l’ordine giusto puoi anche
scendere un altro percorso di essere cliente
l’ aggregato di livello più alto che incorpora
altri aggregati al suo interno proprio questo è
dove nessun SQL ti aiuterà anche perché
potresti fare prototipi rapidi di questo
non c’è bisogno di venire con il modello
che ti corrisponde perfettamente nel primo
iterazione potresti fare più turni
questo e poi mentre cresci puoi pensare
come va bene quel modello aggregato
mi andava meglio di questo o forse
è qui che questo è carente posso venire
con un modello aggregato diverso e
cose del genere proprio in modo da poter scegliere
quello e poi ora il JSON totalmente
le modifiche sono una volta che ottieni JSON
tutto viene come il cliente
tutti i suoi ordini e tutto è in uno
pacchetto che ritorna dal database
giusto così non devi fare più cose
entra nel database giusto così ecco
come un’immagine più semplice della stessa cosa
diciamo per esempio che avevi avuto un
cliente come chiave e il valore è giusto
un oggetto e all’interno di quell’oggetto valore
ci sono più oggetti come il
oggetto del cliente l’indirizzo di fatturazione il
ordini è una raccolta di ordini e il
l’ordine stesso ha l’indirizzo di spedizione
il pagamento dell’ordine tutto quello incorporato
all’interno della chiave dell’ID cliente così
una volta ottenuta la chiave e il suo valore
il database tutto è dentro di te
non è necessario tornare al database
di nuovo per qualcos’altro, giusto e
L’applicazione può quindi scomporlo
e mettilo nel tuo oggetto e poi fallo
tutto ciò che devi fare con esso è possibile
hanno anche riferimenti all’interno del
aggregare così per esempio qui abbiamo a
ID cliente e il valore è oggetto
riguardo ai clienti ha una lista di
riferimenti agli ID ordine corretti
e poi c’è anche un oggetto per ciascuno
ordinare all’interno di quella lista proprio così ogni volta
Metto un nuovo ordine come esistente
cliente creo una nuova chiave per questo
ordina l’ID e continua il resto a
allo stesso tempo aggiungere alla lista di ordini
nei riferimenti per i clienti
Giusto, ecco come faccio una doppia destra
uno per gli ordini e l’altro per il
cliente basta aggiungere gli elenchi di ordine
ID così ovviamente questo ha fatto alcuni
aspetti negativi perché come sai la maggior parte no
I database SQL non supportano l’acido
transazioni in modo che il tuo ordine possa ricevere
scritto e il tuo diritto cliente potrebbe fallire
allora hai problemi di riferimento o il tuo
l’ordine potrebbe fallire e il cliente potrebbe averlo
scritto così devi farlo sul
cose lato applicazione come se il
scrittura non riesce riprovare o qualcosa di simile
o fare in modo che l’altro fallisca qualcosa
così devi pensare a questo
a livello architettonico non puoi
spero solo che funzionerà bene così
è un importante compromesso che stai facendo
pur facendo la scelta di dividere il
aggregare correttamente in modo da poter utilizzare lo stesso
tipo di riferimenti con documenti JSON
ecco una rappresentazione JSON della stessa
cosa giusta quindi cosa fa aggregare
l’orientamento ti dà ragione una cosa è
gli ID BMS stessi non sono aggregati
di dove sono come Adam e Missus
avere questo concetto di visioni materializzate
ma che vista diavolo è ancora una riga
giusto non puoi avere una visione materializzata
con un ID cliente e tre indirizzi
avrai bisogno di tre serie di colonne
quattro indirizzi per quella di presentarsi
correttamente puoi sempre prendere xml e
inseriscilo in una colonna nel database
per una chiave e un valore nell’ID – ma
quindi stai facendo l’idea di comportarsi male
come un negozio di valore chiave giusto così è
la differenza tra aggregato
cosa pensante e non aggregata o
cosa relazionale giusto una volta che inizi
pensando di aggregare il tutto
nozione di tipo di conformità dell’acido di
diventa una priorità minore, perché
ora è una lettura singola e una singola
scrivi che hai bisogno di acido nel database come
pietre principalmente perché stai scrivendo
quattro o cinque diversi tavoli come pensi
sul persistere di un ordine che stai aggiungendo
alla tabella degli ordini che stai scrivendo al
ordina la tabella degli articoli, magari stai scrivendo
la tabella delle scorte di magazzino perché tu
ha fatto una sottrazione quindi quei molti diritti
è qui che l’ asset diventa molto
importante perché se qualcuno di loro
fallisce vuoi fallire il resto
proprio qui stai scrivendo un singolo
aggregato se l’aggregato fallisce
tutto fallisce perché è giusto perché
è un singolo aggregato ok, quindi è così
dove molte persone hanno queste
domande di oh no SQL senza acido
Ho delle domande come posso usarlo così
cambia il tuo modo di pensare in termini di
aggregati e che faranno pensare
su come SQL è davvero più facile, giusto
una volta che vai al modello aggregato
correre su grappoli diventa più facile
perché ora è solo un aggregato è
un’unità autonoma che è possibile memorizzare
ovunque tu voglia giusto
una volta sono oltre le decine di migliaia di ore
i server non contano davvero perché
è solo un aggregato eppure ottiene
immagazzinato
ovunque nei database relazionali come
i grappoli lo rendono molto difficile perché poi
si deve pensare a righe correlate
dove vanno e quel tipo di cose
ecco l’aggregato stesso è a
unità singola che può essere spinta ovunque
vuoi che venga spinto giusto così ora
arrivando alle basi di dati il valore chiave
memorizza database di documenti e colonne
i negozi di famiglia sono tutti basati su aggregati
secondo noi giusto così un valore chiave
memorizzare solo come una chiave e un valore il
valore è l’aggregato nel documento
database anche tu hai una chiave e a
valore che lo accompagna
il valore è compreso dal database
sicuro di poter interrogare su parti del valore
ma è ancora una chiave e un valore il
il valore è visibile al database giusto
e la famiglia di colonne arriva nello stesso modo
modella fuori c’è una fila e la fila ha
colonne ma lo stato della riga è un
aggregato a livello aggregato a destra
così quando inizi a pensare a nessun SQL
i database pensano se sei nel
campo aggregato o campo non aggregato
e poi dovrai anche pensare
su come database di grafici che sono a
completamente diversa bestia del tutto
quindi parleremo di ogni tre di questo
parliamo anche di database di grafici
proprio così nel grafico un dispositivo la modellazione
cambia totalmente ogni nodo è acceso
proprio e il nodo ha relazioni
con altri nodi, quindi pensa a come
una semplice app di e -commerce in cui il tuo
il cliente ha effettivamente acquistato un prodotto
giusto e gli è stato addebitato un dato
indirizzo era parte dell’ordine e quello
tipo di cose e queste relazioni
avere nomi e questi nomi possono avere
valori – come una coppia di valori chiave allegata
a quel rapporto giusto così puoi farlo
modellazione di domini molto ricca su questi nodi
così come le relazioni giuste e
è qui che l’attraversamento diventa molto
importante quindi se sei veramente
interessato a dati connessi come come
i dati sono collegati tra loro e
cosa mi dà la connessione?
termini di intelligence sui dati
e le azioni che le persone stanno facendo
dove inizi a pensare al grafico
database un esempio più facile da pensare
su questo sarebbe come diciamo te
volevo guardare alla condivisione della conoscenza
all’interno di una data organizzazione come Let’s
dì la tua azienda a cui stai pensando
analizzando come le persone condividono la conoscenza
giusto come le persone interagiscono con ciascuna
altro e quel tipo di cose che potresti
facilmente passare attraverso i tuoi archivi di posta elettronica
e vedi chi ha scritto a chi
su quale argomento giusto e in che cosa
dove sono stati, io posso fare tutto
tipi di modellazione e poi decidere come
qual è la larghezza di banda più alta
tra due gruppi di persone va bene
ciò può essere fatto usando i database di grafici
quello che ti dà è come ciò che sono le
bloccanti quali sono i fattori abilitanti per
migliore comunicazione giusta, quindi è così
dove useresti il ​​tipo di grafico
modellazione giusta quindi i punti chiave sono
inter relazioni complesse difficili da
sostengono che è quello che stavo dicendo come
se usi riferimenti e uno dei
le operazioni falliscono quindi non si sa
quale riuscì quale quale il
i riferimenti potrebbero essere fuori sincrono così da te
dovrò farlo sull’applicazione
lato nel senso se qualcosa fallisce
riscriverlo o fallire l’ intera transazione
la nostra intera operazione fallita sul
le applicazioni sono prive di schemi per tutti
piace senza schema senza SQL ma il
lo schema è ancora implicito nel tuo codice
questo è il più grande viaggio che ho visto
le persone fanno è come penseranno
senza schema, non ho bisogno di preoccuparmi
schema paio di iterazioni dopo di loro
non è possibile accedere ai dati perché lo schema
è cambiato ora alcune delle righe sono
alcuni dei documenti che vengono restituiti
non è possibile analizzare il vecchio schema
più e quel tipo di cose così se
stai pensando che ehi schema gratis non lo faccio
devi preoccuparti di smetterla
pensando proprio ora devi farlo
preoccuparsi perché è privo di schemi
solo nel database è lo schema
il lato applicativo giusto, quindi parleremo
circa un paio di tecniche su come
fai questo schema migrazione di più oggetti
versioning e quel genere di cose nel
base aerea e come ho detto grafico
i database funzionano in modo particolare con i complessi
dati connessi che si desidera analizzare
quindi ho detto che entriamo nel
dettagli di ciascuno di questi tipi di
database giusto per cui l’archivio dei valori chiave è a
chiave semplice e un valore giusto facciamolo
questo lavoro è una chiave semplice e un valore
al database non interessa davvero cosa sia
nel valore potrebbe essere un JPEG o esso
potrebbe essere un JSON o XML, in realtà non lo è
cura che non sappia nemmeno cosa c’è dentro
metti una chiave insieme al valore in
nel database si ottiene una chiave e un valore
indietro e tu saresti responsabile
decodificare o decifrare qualunque cosa sia
contenuto giusto quindi se sei come una macchina
tipo di società con o almeno
pensando di fare qualcosa con le auto
come essere una chiave che è un veicolo
il numero di identificazione è una chiave naturale
per quel valore giusto e poi dentro
che potresti immagazzinare tutti i tipi di cose
è un’estensione o una chiave naturale
valore alcuni di questi prodotti sono
reattivo un esempio Redis è un esempio
Voldemort è un esempio di memcache molto
di persone sanno che memcache è un esempio
è svanito tutto bene quando ha fatto la chiave
negozi di valore che devi veramente pensare
sulla separazione delle chiavi o sulla chiave simile
spazi dei nomi se stai facendo come per
ad esempio si desidera avere più
oggetti uno per il veicolo
numero di identificazione al momento dell’acquisto
quali sono state le cose che sono state installate
sulla macchina se questa è una delle tue chiavi e
valore se l’ altra chiave e valore è
l’olio d’acqua cambia le volte che vengono aggiunte
cambio dell’olio e manutenzione sulla macchina
quindi la tua chiave può scontrarsi quindi è necessario
progetta la tua chiave correttamente potrebbe essere VIN
sottolineatura nuova o vinci underscore in
opzioni installate in fabbrica e la seconda
sarebbe vincere la manutenzione di sottolineatura
qualcosa del genere devi pensare
sulla chiave o sul design del namespace
quando stai parlando di fare la chiave
alcuni dei prodotti come reagire hanno
questo concetto noto come secchi in modo che tu possa
creare secchi separati con lo stesso
tasto giusto in modo da chiamare un secchio
come opzioni installate in fabbrica e così
avrebbe lo stesso cestino , ma il
il valore sarebbe la stessa cosa giusta
andrebbe in un secchio diverso, quindi è così
una tecnica di separazione spaziale chiave che
hanno che è chiamato benne destra
ma bisogna pensare a come se si
sono la memorizzazione di più oggetti si deve
pensa a come faresti quella chiave
separazioni quindi ci piace confrontare
alla nostra conoscenza conosciuta proprio così se
è reagire che sarebbe il tuo come a
secchio che è dove dico tasca
giusto, ecco i termini su
reagirebbe lato sarebbe e in Oracle
lato questo è ciò che sarebbero i termini
giusto quindi c’è un valore chiave uno a
valore è opaco ai database destra
non importa ciò che immagazzini
ed è proprio come l’hash, quindi se lo sei
usato per usare hash in Java è una chiave
e un valore e qualunque sia il contenuto
non importa davvero tutto bene
e perché è un modello basato su aggregati
allora puoi distribuire diventa più facile
sì, passiamo a Mongo
database che è il database dei documenti
per lo più la gente pensa a Mongo, giusto
ma i database dei documenti ci sono molti di
loro e
mi piace se pensi che la modella sia la stessa
qui come dico valori chiave e
i database dei documenti sono l’unica differenza
o la grande differenza è che il valore
è capito dal database giusto e
arrivano a questo fatto forzando il
valore per essere JSON o XML come
MarkLogic è un esempio che ha XML come
il contenuto vero e proprio così di nuovo andando
tornando allo stesso esempio abbiamo il nostro ID
come numero di identificazione del veicolo e
il documento è fondamentalmente un mucchio di auto
fatti come se fosse un JSON qui come uno
cose come i database di documenti qui
sono MongoDB Raven e poi tu
hanno terroristi couchdb o Orion DB
proprio così come per esempio se prendi
MongoDB in MongoDB puoi avere questo
underscore ID che è la chiave effettiva di
il documento e se non lo fornite
un database verrà effettivamente creato
uno se ne fornite uno sarà il database
sovrascrivi quel valore e dai il tuo
chiave per il valore dell’ID sottolineatura proprio così
ecco un esempio come ad esempio raw
L’ID in Oracle sarebbe l’ ID di sottolineatura ma
in Oracle non è possibile modificare l’ID riga
in Mongo puoi cambiare la riga
sottolineatura del valore ID sovrascrivendolo
con tutto quello che hai
naturalmente molti periodi come i tempi
la gente chiede perché dovrei ignorare anche il
underscore ID perché il database è
fornendomi a volte come in
situazioni ad alte prestazioni l’indice
che MongoDB funziona nel modo migliore
avere l’intero indice in memoria per farlo
avere scansioni appropriate se il tuo indice non lo è
tutti in memoria quindi MongoDB
a volte esegue non esegue come
beh, come tu vuoi che tu possa prendere
sopra lo spazio ID di sottolineatura in memoria
dandogli la tua chiave così sei
salvando questo spazio in memoria usando il
ID di sottolineatura per la tua chiave proprio così
per esempio l’ID di underscore che penso sia
un valore di 16 byte o qualcosa di simile
quello predefinito fornito se tu avevi il tuo
proprio ID che era l’ID del cliente o
qualunque cosa se tu
sostituisci lo scambio che fondamentalmente faresti
salva lo spazio indice che si adatta alla RAM
per quel valore ID di sottolineatura perché tu
avrebbe un alto indice sull’ID cliente
sul documento qualsiasi cosa per accedere a quelli
Giusto, quindi pensaci quando indicherai
disegno sulla memoria giusto ma ancora in corso
di nuovo qui l’istanza è una MongoDB
FEMA è una tabella di database è una raccolta
row è un documento e l’ID di riga è
corretta
di nuovo c’è un valore chiave
il valore è visibile al database così
puoi fare query intelligenti su
Documento JSON trovami tutti i documenti
dove il nome è come tutto ciò che può
essere fatto esattamente come un DBMS standard
interrogare il valore può essere interrogato è possibile
mettere documenti JSON o XML in là tutto
Giuste tutte le domande finora
Sto andando piuttosto bene, quindi muoviamoci
giusto per i negozi di famiglia di colonne
la famiglia di colonne ha di nuovo ID e una colonna
famiglie e queste famiglie di colonne hanno
come una fila che ha colonne al suo interno
e ogni colonna ha un valore chiave così è
tipo di hash in un hash tipo di a
modello giusto quindi di solito una famiglia di colonne
modello di dati è molto difficile da cogliere nel
prima vai ma pensaci una riga come
colonne e colonne hanno valori chiave
dentro quel genere di cose lo rende un po ‘
più facile capire bene Cassandra
sono ipo tabella e HBase Apache HBase
esempi di questi prodotti una cosa a
Pensa a questo quando scrivi a
colonna la colonna viene adorata
non viene cancellato correttamente, quindi diciamo
il precedente valore è stato nominato e il
il valore era John e il nuovo che scrivi
è il nome il cui valore è Robert the John
il valore è ancora intorno a non ottenere
cancellato è per questo che mi piace la dimensione dei dati
cresce esponenzialmente quindi devi andare
indietro e fare una riparazione sul database
tipo un po ‘come offline che compatta
questi dati sono corretti in modo che tu veda lo stesso
roba che succede anche in CouchDB come
i dati crescono esponenzialmente perché
non cancella tutto ciò che conserva
versioni di cose e se non ti interessa
sulle vecchie versioni che sono solo compatte o
sono stupiti e va via così
se vedi un aumento esponenziale del disco
l’utilizzo in uno di questi prodotti è sicuro
capisci la riparazione o il
la concorrenza ci sono algoritmi utilizzati da
queste cose in un database di famiglia di colonne
come paragonare a Oracle come
istanza sarebbe un cluster un database
è uno spazio chiave un tavolo è una colonna
famiglia e una fila o fila che è
un po ‘ di confusione, ma è così
è la vecchia grande differenza di essere in a
dato una riga o in una data tabella tutti
le colonne nel giorno sono DBMS o del
stesso tipo giusto se dici int è tutto
oltre ogni fila ci deve essere un int
ma questo non è vero con una famiglia di colonne
database o cassandra almeno giusto così
puoi avere la stessa media della colonna
cose diverse è quello che ero
dicendo che ogni colonna ha dati di versione e
puoi espirarli puoi persino metterne un
data di scadenza su di loro come diciamo quando
scrivi che John è stato cambiato in Robert e
puoi mettere in scadenza Giovanni dicendo dopo
tre giorni questo va via e
è qui che puoi mostrare più cose
versioni se la gente voleva piacere venire
indietro e quindi confrontare i dati e selezionare
quale è corretto come il manuale
intervento o cose come quella colonna
negozio di famiglia sarebbe un esempio esatto
essere come si voleva fare eventi in tempo reale
i diritti per esempio giusto così roba è
proveniente dalla roba web viene da
il tuo sistema interno sta arrivando
dai vostri fornitori di terze parti che lo sono
usando i tuoi widget o qualsiasi altra cosa
gli eventi ti stanno arrivando ad un livello più alto
vota quindi vuoi solo mettere come a
servizio di riposo nella parte anteriore e quindi scrivere
fuori perché fonte di famiglia di colonne
supportare volumi più alti a destra perché
non fanno nessuna cancellazione che continuano a mantenere
scrivere con nuove versioni giusto e poi
la dimensione dei dati va e nel back-end
puoi quindi comprimerli correttamente e
puoi anche scrivere diversi tipi di
quello che mi piace chiamarli come te
aggregazione di dati online
nel senso in cui un evento entra e
tu metti l’evento così com’è ma alla fine
la stessa transazione che poi aggreghi
Dicendo ok, conta il numero di
i clienti incrementati di un conteggio il
il numero di prodotti venduti aumenta di uno
tutto quel tipo di segnalini può essere fatto
tempo reale nel senso in cui il
l’evento arriva e quindi puoi usarlo
mostra da qualche parte che dice oh nell’ultimo
ora
54 clienti hanno acquistato questo articolo tre
centodue volte quel genere di cose
è un ottimo esempio di utilizzo della colonna
la famiglia va bene così sul grafico
database neo4j è un esempio di noi
avere il grafico infinito Ori e DB e iper
grafico G è un database grafico può essere utilizzato
per tutto ciò che effettivamente è giusto così
non significa necessariamente che deve essere un
tipo di grafico di un problema perché ciascuno
il nodo può avere il proprio valore chiave
memorizzare come ogni nodo può avere più
imposta più valori in modo che tu possa acquistare
roba un sacco di dati in là non solo
il Nord anche il bordo o il
la relazione può avere i suoi valori chiave
giusto quindi diciamo per esempio che io sono
in relazione con lui e potrei avere
quando l’ ho conosciuto, qual era l’ultimo?
volta che l’ho incontrato, qual’era l’ultima volta
cenato con lui tutto quel colpo di tosse
le informazioni possono essere effettivamente messe sul
edge non solo nota bene perché è così
la proprietà del bordo non del nodo
giusto perché la mia proprietà con lui può
essere totalmente diverso perché questo è il
proprietà del rapporto proprio così
allora potresti fare query intelligenti come
dammi tutte le persone che ho cenato
con nell’ultimo anno o due o due
l’ anno scorso che sono legati a me
Questo è noto come attraversamento di un grafico
può essere fatto qui come per esempio tu
posso fare una domanda qui dammi tutto il
nodi che nessun Martin ha ragione e no
Elenco SQL in qualcosa del genere giusto così
non stai solo interrogando i nodi ma
come pure i rapporti lo fa
ha senso, quindi grafico quel prezzo
è fondamentalmente un grafico multi relazionale
le relazioni sono cittadini di prima classe
come nel nostro DBMS, pensiamo alla relazione
è un database relazionale quindi
le relazioni possono essere importanti solo
applica le relazioni che non lascia
attraversi le relazioni che hai
scrivere sequel complessi per attraversare il
relazioni che non ti permettono di fare cosa
database di grafici che fai perché tu
può attraversare le relazioni nel modo
ottengono questo è scrivendo il nodo
proprietà così come il bordo
proprietà in una memoria separata che è
perché è più efficiente per dieci nodi
il tempo di interrogazione e per un milione di nodi
il tempo di interrogazione è lo stesso in neo4j
perché scrivono informazioni diverse
è ottimizzato in scrittura non al ritorno in
il nostro DBMS ottimizzi il giusto ma non
ottimizzare la lettura perché lo sei
attraversare se cambia devi
scrivere musica giusta quindi ci sono anche a
molti algoritmi di attraversamento disponibili
che puoi applicare al grafico stesso
i bordi destro e nord possono contenere dati
che è fondamentalmente coppie di valori chiave
quindi vediamo alcuni buoni casi per u6
questi negozi di valore chiave sono così importanti
valori sono buoni per l’archiviazione di sessione
come browser di sessione qualunque tu
desidera archiviare le cache di sessione
profili come voglio io ho un ID utente
per esempio una piattaforma di blogging o simili
un’app di e-commerce o qualcosa di simile
quella
Ho un ID utente che voglio ottenere il suo
profilo come nome e qualsiasi altra cosa
indirizzo di fatturazione dell’indirizzo di spedizione email
tutto ciò che è tutto può essere farcito sotto
l’ID utente come chiave e tutto il resto
è un valore giusto se ne ottieni uno tutto
viene con esso
allo stesso modo sarebbero le preferenze così simili
dimensione del carattere del colore dello schermo o qualsiasi altra cosa
vuoi che le preferenze possano andare tutte
sotto lo stesso o il carrello è a
buon esempio come uno shopping scalabile
carrello come per esempio se si usa reagire
potresti mettere l’ underscore dell’ID cliente
ID ordine come chiave e valore
sii quello che le persone stanno comprando in questo
tempo e la cosa ti ha salvato così
puoi recuperarlo quando arriva il cliente
indietro a causa della perdita della cache di sessione o
qualcosa
proprio in un database di documenti che potresti
usalo per il prototipo di registrazione degli eventi
lo sviluppo è un grande modo per ottenere ottenere
le tue iterazioni senza dover
pensa a come schema o implementazione
complessità o tutto quel genere di cose
si può avere prototipi rapidi e fuori
una volta che il prototipo è maturo, allora tu
può pensare bene come faccio a fare questo come
che tipo di tecnologie differenti faccio
bisogno di aggregati giusto e-commerce web
l’app è un buon esempio per la famiglia di colonne
come il grande volume giusto come dico
potresti usarlo per la gestione dei contenuti
puoi usarlo per l’e-commerce
applicazioni corrette e il grafico
database che possono essere utilizzati per la connessione
il routing dei dati come come faccio a instradare il mio
camion di consegna dal punto A al punto Z
con tre fermate tra ciò che è il
modo più efficiente allora puoi avere il
si ferma come nodi e una distanza tra
li come i tuoi bordi e poi puoi semplicemente
chiedi al database grafico di darti il
percorso più breve e ti darà il
percorso più breve senza dover pensare
su di esso servizi di posizione giusta è possibile
persino eseguire motori di raccomandazione per
esempio i clienti che acquistano questo prodotto
di solito compra questo altro team di prodotti è
molto facile nel senso del database grafico
dì che va bene così quelli sono alcuni
casi di uso generale delle quattro categorie
dei database di cui stiamo parlando
Grazie
ovviamente sta tornando allo schema
meno così abbiamo detto database o schema
meno, ma lo schema è implicito nel
senti che il tuo codice sta dicendo okay put
questo JSON lì dentro e quando ho letto di nuovo
Devo essere in grado di analizzare la marca JSON
qualche senso del JSON lo ha convertito
ai miei oggetti Java o cosa sono gli altri
gli oggetti che hai e poi lavora con esso
se la struttura del JSON cambia
poi, ovviamente, non sta andando a mappare
il tuo oggetto, ecco dove è l’attrito
è invece nel database è ora
al tuo livello di mappatura proprio così ovviamente
quando dici libero schema posso cambiare
lo schema in qualsiasi modo non significhi
non hai la migrazione dei dati tutto bene
quindi immagina di avere un oggetto cliente
che aveva un nome e un indirizzo come i suoi due
campi ora si cambia il nome
tu dici il nome del cliente per esempio così il
quelli nuovi che lo memorizzano come cliente
nome ma i vecchi che ci sono
ancora lì come nome giusto così quando tu
digita un back parziale che devi analizzare
entrambi loro giusto così se c’è
il nome del cliente lo usa se non c’è
nome del cliente usa il nome giusto così hai
per avere questo schema nel parser JSON
questo ha detto okay queste due mappe allo stesso modo
cosa giusta, ecco dove sono i dati
la migrazione arriva e cambiamo ogni
documento Devo essere il nome del cliente
invece del nome giusto
è una proposta costosa e va
torna allo stesso modello relazionale come
se cambio il nome di una colonna influisce
ogni riga è proprio dove sono le persone
allontanarsi dal nostro DBMS perché loro
non voglio occuparci di ciò che siamo
cambiando il nome della colonna e influenzando
tutto così puoi fare tecniche come
migrazione pigra proprio così nel senso
quando leggi, leggi entrambe le colonne
ma quando lo scrivi, scrivi
con il nuovo giusto così che tu sia
sostanzialmente aggiornando un documento in a
tempo o un valore alla volta questo dato
la tua media raggiunge entrambi e
fa la giusta mappatura quando scrive
indietro scrive un nuovo modo di fare
le cose giuste questo è un modo per farlo
l’altro modo di farlo è scrivere il
stessa linea logica e va in fondo
un documento alla volta e non lo fa
influenzare qualsiasi altra cosa e il nuovo codice
può quindi essere schierato una volta il tutto
la cosa è fatta o può essere schierata in
parallelo in qualunque altro modo ti piaccia
dipende tutto dalla dimensione dei dati, se tu
hanno come byte di dati della stampante quindi
avrà un lungo periodo di tempo in modo da avere a
pensa a come entrambi possono andare in parallelo se
non hai così tanti dati di te
può forse eseguirlo offline e quindi distribuirlo
la nuova tazza va bene, ma il tuo nuovo codice
ha bisogno di capire le strutture dei dati
in modo che possano passarli correttamente tutti
destra
non andare solo con la sensazione che oh
schema-less
Posso cambiare non importa che lo farai
perdere i dati perderete i dati in un certo senso
non sarai in grado di leggere i dati
questo è lì perché la struttura ha
cambiato perché lo schema è implicito in
codice e quando si modifica questo implicito
schema e il codice che sei
i dati dovevano anche essere conformi al nuovo
schema giusto tanti progetti dove io
abbiamo lavorato sul modo in cui lo abbiamo fatto
sono le sonde scritte nell’applicazione
codice stesso che andrebbe solo a scegliere
casuale per i documenti e vedere se
si conforma e se non viene da noi
sarebbe venuto tornare e dire ok il
il database non corrisponde a quello che sto cercando
per allora vorremmo tornare indietro e poi scrivere
come offline in un documento alla volta
un’altra cosa devono tornare indietro e
cambia tutto di quelli a senso unico
basta segnalare dicendo ok l’applicazione
e il database non combacia
questa è una cosa molto buona di no
SQL è tutto ciò che i dati non devono essere
migrato allo stesso tempo perché
diversi documenti possono avere diversi
struttura così posso fare uno alla volta e
in realtà non influenza la disponibilità o
qualsiasi tipo di altri scenari proprio così
questo porta tutta questa nozione di
persistenza poliglotta perché pensiamo
l’ applicazione richiede diversi tipi di
conservare la memoria per l’ordine
la persistenza è totalmente diversa da
la memoria del motore di raccomandazione è totalmente
diverso da stoccaggio sessione è
totalmente diverso da qualsiasi altro tipo
di segnalazione e segnalazioni su di te
bisogno o cura di giusto così perché noi
utilizzare la stessa tecnologia stessa memoria
motore per tutte queste esigenze proprio così
perché non usare ciò che è adatto per questo
scopo particolare di fare i compiti
invece di ribaltare tutto dentro
la stessa cosa può essere corretta
la stessa applicazione e può essere trasversale
l’intera impresa, ad esempio, lo farei
avere un motore di raccomandazione in esecuzione per
la vecchia impresa nel database grafico
e schiaffeggiarlo schiaffeggiarlo sopra
e potrebbe essere un servizio per il tutto
impresa che dice entra questo è come
fai un condizionamento o potrei fare il
stessa cosa che una sessione di archiviazione tua
servizio di archiviazione di secessione fai un cancello
e una messa al servizio e lo faremo
gestisci tutto nella parte posteriore e nessuno
delle altre app che scriverai nella tua
tutta l’impresa non ha bisogno di preoccuparsi
sull’archiviazione delle sessioni più giusto
potrebbe fare questo tipo di servizio troppo a destra
non deve essere che non devi
pensare solo nel contesto di
applicazione che puoi estrapolare a
il livello di impresa per scrivere così è
dove il concetto chiave di
ottenere l’accesso ai dati attraverso i servizi
entra è ho solo un servizio che
fa quello che il nostro si suppone di fare e in
le fasi iniziali sono solo una prova di
concetto potremmo persino scrivere su una scrivania o
qualcosa di diverso e quindi migrare lentamente
in una memoria migliore come usare una chiave
valore o qualcosa del genere o qualsiasi altra cosa
invece ha senso abbinare i bisogni
di scrivere tutti nello stesso database
giusto così sì come un modo semplice di
mostrandolo giusto quelli sono servizi
seduto in cima ai database proprio così
la memoria di sessione andrà a un valore chiave
la persistenza dell’ordine del negozio può andare a
documento che stai leggendo inventario e
prezzo e tutto quel genere di cose da un
database relazionale che è legacy
questo è dove tutti i tuoi sistemi di back-end
hanno ragione e tu potresti scrivere il
roba di raccomandazione del cliente in arrivo
da un database di grafici proprio come si potrebbe
anche lì più modelli di questo
questo non è per dire un solo modello
giusto potresti anche fare come il tuo
i dati del carrello possono ancora andare qui
i dati di sessione possono ancora andare qui perché
questo è quello a cui sei abituato ma
la ricerca sta diventando un dolore per me
perché devo scrivere sequel complessi
solo per trovare i dati potrei pompare il
dati attraverso come un solare e farlo
tipo di roba
perché i dati stanno andando da qui
nutrito qui e sto solo postando la fonte
le richieste in alto a destra sono un’altra
modalità in modo da poter avere tutti i tipi di modello
qui pensa a quello che posso avere
questo e con questo ne ha anche uno in più
per questo grafico roba in cui i dati sono in corso
alimentato dal nostro DBMS a un grafico
database e sto solo facendo domande
contro il database grafico per
raccomandazioni che possono essere fatte
non c’è bisogno di impazzire come questo in
il primo codice che puoi fare più lentamente
iterazioni su quel diritto quindi qui Martin
in realtà bloggato su questo poliglotta
elaborare questo è un uso totalmente speculativo
tutto sotto il sole tipo di modello
qui ma stiamo facendo come le sessioni utente
in Redis dati finanziari che è già
provenienti da sistemi di back-end nel nostro DBMS
carrello della spesa sta per reagire rapidamente
le raccomandazioni sono nuove per J
il catalogo delle parti viene di nuovo da Mongo
la segnalazione ad hoc sta per un DBMS
l’analisi sta per utente di Cassandra
i registri delle attività vanno a Cassandra
giusto così questo è totalmente come l’uso di
e assicurati che tutto venga elaborato a
usando la stessa cosa, ovviamente, il
l’ultima domanda che vorresti è come fare
Io scelgo proprio ce ne sono quattro ampi
categorie più di 20 prodotti cosa faccio
scegli quello giusto per cui puoi scegliere
produttività del programmatore giusto e allora
farà la mia attrito di salvare questo e
tornare il più semplice possibile
scegliere per quello se prendendo il prodotto a
il mercato è il tuo singolo più grande
preoccupazione come lasciami provare se questo funziona
allora puoi scegliere per quello che puoi
scegliere per le prestazioni di accesso ai dati giusto
come per esempio se le relazioni e
le raccomandazioni sono importanti per te
avrebbe scelto per la prestazione giusta oggi
Ho 10 clienti domani o un anno
da ora ho 5 milioni di clienti saranno
mia scala motore di raccomandazione va bene
puoi scegliere con quelle domande in
bada puoi scegliere con hey I am
lavorando già con questo mi piace perché tu
non penserò a cose nuove che sono a
scelta che puoi fare bene puoi anche
testare le aspettative giusto così ho fatto
questo progetto per il Democratic National
Comitato che è il Partito Democratico
è il tipo di sede nel 2010
ish e abbiamo effettivamente eseguito test come tutti
tipi di test perché la maggior parte di questo è
open-source in realtà non paga un
dime da installare ed eseguire tutto bene
quindi installiamo questi dati di roba qualunque
dovevamo fare e dovevamo
fornire un milione di visite all’ora
la prova che può gestire tale quantità di
volume in modo che in realtà abbiamo eseguito il codice lì
e test delle prestazioni su di esso e poi
ottimizzato e quindi scelto che ok questo
funziona bene in modo che tu possa testare il tuo
le aspettative sono così simili a noi in generale
scegliere in base alla lettura di alcune cose
da qualche parte e assicurandomi che
partite con il nostro contesto o il nostro problema
impostare e se corrisponde si sceglie
a volte non corrisponde perché
qualcuno sta parlando di app web
e stai costruendo qualcos’altro allora
in realtà lo codifica come fare un picco corto
su di esso e prestazioni prova e vedere
come funziona bene perché non è così
costa nulla da scaricare e installare
Cassandra o Mongo o neo4j o altro
per quell’uomo giusto non ti costa
qualsiasi cosa diversa dal tempo che è
in realtà molto bene perché tu sei
investendo il tuo tempo per scoprire se il
il prodotto va bene per te come ho detto loro
sono tutti open source puoi provarli tutti
loro e vedere cosa si adatta dove e poi
prova le tue aspettative e poi puoi
scrivere test delle prestazioni contro di loro
come nel progetto che ho citato DNC
in realtà ogni check-in in realtà è andato
attraverso il check-in come allora ci è piaciuto
questa analisi del codice quindi abbiamo fatto unità
prova quindi facciamo un test di integrazione
dopo è arrivata la performance
test di riferimento che in pratica hanno preso il
codice distribuito contro il test di produzione
ambiente e ha gestito il tutto per
due ore e potremmo dire ok questo codice
passa questo e poi è stato il dispiegamento
pronto in quel momento in modo da poterlo fare
tipo di scenario – tutti i diritti che è tutto
Avevo saputo di essere a un’ora ma è così
fatto in 45 minuti che è sempre buono
quindi questo è il libro che è l’altro
i libri stanno dicendo che scrivo qui, quindi se tu
voglio andare a leggere quello che scrivo o se tu
voglio che tu possa andare così sì sicuro così là
sono cose diverse come in qnu te
non può in realtà cercare per valore
destra in modo da l’applicazione deve
prendi quel valore mettilo in un altro
indice di ricerca come solare o Endeca o
qualcosa di simile che si il diritto
il database non lo farà
al giorno d’oggi la reazione è anche indice di supporto
ricerca tipo di prodotto che si trova in cima
della base ferroviario che gli indici per voi in
il negozio di documenti che puoi effettivamente
interrogare il valore giusto ma diciamo il tuo
la query era un ritorno per il documento JSON
contenente il nome del cliente da essere
ha chiamato l’attributo per essere chiamato come
nome
e poi lo cambi giusto tu cambi
per esempio, per esempio, tu sei
query che hai restituito che abbiamo bisogno di
ora conosci le nuove cose, giusto
dove la differenza arriva è il
il database può indicizzare la colonna del nome per
voi ma modificate la colonna stessa
essere chiamato client ora così l’indice
non colpisce nemmeno la colonna del cliente in
tutto perché l’indice sta colpendo il
nome colonna quindi ora è necessario creare
un altro indice per la colonna del cliente o
l’attributo client nella colonna JSON
giusto e poi lei sarà in grado di farlo
colpisci come se cercassi il nome così come
cliente e poi ne troveresti uno
loro sì sì sì e questo è dove
I documenti JSON sono schemi autonomi
definizione dei documenti proprio così ogni JSON
il documento ha il proprio schema definito
perché puoi attraversare qualsiasi JSON
documentare usando la libreria JSONon JSON o
qualcosa di simile si può fare un diamante
traversal dinamico di esso ma se tu
cambia il documento la definizione dell’indice
non cambia con esso perché se
ci sono altre cose sconnesse giuste
quindi cambi il documento che hai archiviato a
nuovo documento su cui è stato definito l’indice
il vecchio documento usando il vecchio nome il
all’indice non interessa ancora il vecchio nome
lì anche se qualcuno del documento in
l’intero database non ha questo
colonna l’indice ancora non interessa
perché hai definito l’indice sul vecchio
colonna è quello che sta facendo proprio così
è lì che la disconnessione proviene
pensare è kima è nell’applicazione
e influisce su altre cose che fai
la stessa cosa vale per il relazionale
database – va bene che tu cambi a
nome della colonna non lo cambi
installato proc non lo si cambia
le cose innescate ti influenzeranno
in modo simile influenzerà anche qui
questo è quello che sto cercando di dire è no
basti pensare che lo schema in meno significa che non lo faccio
è necessario preoccuparsi di schema si deve
prendilo tu hai
se hai applicazioni che da
allontanarsi dal nostro DBMS per qualcosa
altro
fai un salto a te, amico, a Greenfield
non sappiamo quali sarebbero i dati
certo e questo è davvero un ottimo
luogo per iniziare con come sei dominio
modellazione giusta così quando il tuo modello di dominio
pensa agli aggregati non riguardo al
spazio di archiviazione e quando lo fai tu
puoi estrapolare dicendo okay oggi
se il mio prodotto diventa virale
Otterrò questa quantità di clienti o
qualunque cosa tu possa inventare dai clienti
ed estrapolare e testarlo correttamente
diciamo oggi ho 10 clienti come
Il primo giorno di lancio ottengo 10 clienti
e io estrapolerò in un anno che sono
otterrà 2 milioni di clienti ciascuno
di loro è un ordine di masterizzazione per i prodotti
ogni altro giorno giusto per poterlo mettere
quel tipo di calcoli e poi
calcolare che tipo di tassi di transazione
ho bisogno di correre giusto così come il
Partito Democratico stavo dicendo che non l’abbiamo fatto
avere tutti i dati reali in cui abbiamo creato i dati
il senso di cosa sono i rapporti cosa
sono i tassi che arriveranno
qual è il tipo di casualità che siamo
cercando così tutto ciò che deve essere
calcolato giusto sì sì e tu no
anche modello in anticipo per l’ennesimo
grado
hai solo bisogno che questo sia il primo
iterazione Sto cercando il modello per
la prima iterazione e poi continua
iterando su di esso perché se prima vai
vuoi dire che potresti inventare il
modello aggregato di like X e in terzo
vai potresti venire con qualcosa di completamente diverso
modello aggregato che è come si itera
troverai diverse opzioni sì
okay e arriverà a te
vikrum databases populace about
factoring di database relazionali e
basi di dati non credo che siamo in quel
fase ancora ma c’è sicuramente molto
di pensare che dovresti essere fatto
circa come il modo in cui cambi i dati così
un sacco di volte le persone sarà proprio come ok
cambiamolo nell’applicazione e
poi dopo come tre o quattro giorni
qualcuno si lamenta del mio ordine
non si presenta o è questa cosa
le informazioni sui clienti sono sbagliate allora loro
iniziare a scavare indietro così la prima parte si
bisogno di pensare è come cambio
le strutture e renderle visibili
attraverso tutti i sistemi dipendenti quindi a
molta maturità ha bisogno di venire lì è
molto innocente ora, quindi non penso
ci sono schemi che emergono ancora da scrivere
qualcosa su così lontano sì
come metterli in produzione
è quello che stai chiedendo sì sì così
molti di questi sono come non la versione 10 o
non versione 11 tipo di prodotti Oracle
giusto così tu vai con quella mentalità lì
sono un sacco di strumenti da riga di comando
giusto perché ora non ci sono molti
venditori commerciali in questo spazio qui
non ci sono strumenti di interfaccia utente, ma la maggior parte di
sono strumenti da riga di comando per la maggior parte di loro
sono open source in modo da poter effettivamente guardare
al codice e hackeralo tu stesso
destra
ci sono anche molti strumenti disponibili
che sono plugin per questo esistente
prodotti come Maggio come plugin per
Mongo per esempio giusto così vuoi
spinge allarme c’è un plug-in che tu
può collegare manga ha anche questo MMS
monitoraggio delle attività in corso che cosa
può segnalare sul cloud come il tuo
il database sta facendo per esempio o neo4j
ha anche molti altri strumenti nel
edizione commerciale hanno questo alto
cluster di disponibilità disponibile e quello
tipo di cose che hanno prodotti diversi
diversi livelli o livelli di maturità
e se vai con qualcosa che ha un
società dietro di esso come per esempio neo4j
ha nuove tecnologie 4j neo tecnologie
dietro di esso in modo da poter comprare uno spot
supporto e quel tipo di percorso roba
loro se questo è importante per qualcuno
organizzazioni perché vogliono qualcuno
chiamare e fare qualcosa con loro gentile
di cose così è possibile anche se dentro
la maggior parte delle volte la produzione come ho fatto io
corro a correre Mongo in produzione per quasi
tre anni ora è un cliente e mi piace
recente salita ed è stato come tre
settimane da quando abbiamo inserito memcached
così come la produzione di fagioli di Monte è possibile
come per lo più fanno tutto il perpetuarsi di questi
questi sono molto facilmente programmabili
un passaggio dal tipo relazionale
file relazionali come tutte le UI
l’installazione di Oracle su una riga di comando
difficile come provare a fare Oracle senza testa
gestore di installazione giusto per poterlo fare
come Mongo puoi solo scaricare le corse
c’è penitenza, quindi pensaci
anche tu puoi fare un sacco di burattini
di scritture su questo
ha appena detto che dovrei prima progettare il mio
aggregatori di dati o qualsiasi altra cosa nel mio
modello di design e poi decidere quale è il mio
stoccaggio terremoto ma se lo sapete anche questo
se io uso un database grafico ho intenzione di
tipo di abbinare il mio design in modo che si adatti
in questa P e connessioni connessioni
va bene qualcosa che mi piacerebbe tornare
e indietro, ma ho un pò come se avessi un
problema che corrisponde un po ‘di più il
problema grafico e voglio dire che ci sono
due grandi categorie il tuo aggregato e
grafico giusto così quando ti stai modellando
piacerà nel primo giorno sapere se
è aggregato o grafico che è tipo di
decisione facile, penso bene e poi
all’interno dell’aggregato quindi va bene cosa
faccio ad usare un documento di valore p o una colonna
la famiglia è una discussione più dettagliata e
scoperta che deve accadere nel
grafico quando si avvia la modellazione, quindi il
la modellazione grafica è molto diversa da
come la modellazione relazionale perché le chiavi si accendono
le chiavi dei nodi e i valori sui nodi
e chiavi e valori sui bordi il
i nomi dei bordi sono come a
discussione da soli come come fanno
Mi piace fare tutto come in arrivo
le relazioni faccio come in uscita
relazioni come faccio a query che rende
il cambiamento come anche nel grafico una volta
escogitato come una prima versione di
il tuo modello di dominio e tre o quattro
versioni successive del tuo modello di dominio
cambiare totalmente su quello che hai imparato su
il dominio e il grafico
database supportano giusta perché molti
volte andiamo d’ accordo facciamolo tutti
bordi delle foglie che puntano ai rami e
più in alto mentre vai e dopo un po ‘di tempo
posso capire come voglio davvero andare
in alto a destra in basso così tu lo farai
devi cambiare ogni spigolo che è uno
cosa interessante sui database di grafici
è se cambi il nome del bordo in
il tuo codice tutti i bordi non cambierà
automaticamente dovrai andare a
ogni nodo e crea nuovamente il bordo
che viene fornito con la migrazione dello schema, così noi
ho scritto questo nel libro è
come due nodi hanno un
chiamato come padre fuori per esempio e tu
vuoi cambiare il nome del bordo in
ti piace papà o padre biologico
fuori o qualcosa del genere che cambi
che nel codice il database no
sapere
in realtà non interessa se si interroga
per padre fuori e la domanda per questo
padre fuori non avrai la stessa nota
dovrai attraversare il database
e fare queste stesse connessioni tra
quei due a to nodi con un nuovo vantaggio e
quindi elimina il vecchio limite si si si
giusto quindi devi pensare a ciò che è
il contesto, qual è il contesto in cui ti trovi
risolvendolo sotto qual è il tuo problema
a destra posso solo stare qui e dire una usata
valore chiave o uske it sarà una specie di
stupido giusto per parte mia intendo lì
sono molti casi d’uso giusto così è come uno
la tua organizza la capacità di usare il rumore
riempire se stesso come nessun SQL viene fornito con molto
del bagaglio a sè come non è come
è dipendenza da molti blocchi
intorno a quello che dice come falliamo senza SQL
c’è un sacco di blocchi in giro se si va
leggi quello giusto dove è
prima pensavo al tuo problema
quello che stai cercando di risolvere è di più
importante quindi ho un progetto che voglio
non usare SQL è la connessione diretta
giusto sbagliato modo da avere a pensare
come si adatta al problema come sei
andando a risolverlo e quali sono i
proprietà di quel particolare prodotto
che in realtà attiri te e ciò che sono
gli aspetti negativi che potrebbero influenzarti
giusto, quindi devi pensare a quei due
e quindi prendere la decisione giusta come
esiste come per esempio te
avere questo prodotto in esecuzione nel tuo negozio
o applicazione in esecuzione nel tuo negozio per
come 20 anni con cui sta lavorando
no, non andare, lo cambio per infastidire la scuola
Domani intendo che è una risposta diretta
proprio lì come così provo qualcosa
qualcosa di nuovo Greenfield sta arrivando
è diverso in termini di problema
sta cercando di risolvere quindi vedere se il rumore
si applica è lì come non basta andare
e cambiare un’app legacy che è già
correre a usare il rumore va bene, forse il mio tempo
saggi stai facendo bene si otterrà
complesso come simile a come nel
refactoring libro di database che abbiamo parlato
su questa fase di transizione da vecchio a
nuovo e hai una fase di transizione
nel mezzo come sto per lasciar perdere
colonna in due mesi quando tutto il mio codice
si muove correttamente se sono due mesi
diventa tre anni per te lo farai
avere uno schema complesso lo stesso avverrà
capita con il tuo negozio non SQL per piacere se
non ti ripulisci abbastanza velocemente da te
avrà molti di questi strati nel
medio che dice okay name client party
nome e tutti sono tutti uguali al tuo
codice al nucleo dello strato di trasmissione e
lo stesso JSON diventerà complesso in
il senso non è più pulito simile a
come qualsiasi codice che se non si pulisce
regolarmente diventa sporco stessa cosa
si applica
no dovrai farlo da solo sì sì
non c’è niente come perché il
il database non si cura davvero di quello che tu
visto giusto per questo ogni documento può essere
diverso questo è di design giusto
si si non esiste un concetto del genere, sì
che devi farlo è per questo che lo sono
dicendo che devi fare qualcosa al riguardo
te stesso che il database non ti dà
qualsiasi modo automatico di codice
sì, quindi dovrai scrivere il tuo
query come mi dia tutti i documenti
che hanno questo vecchio nome e poi
passaci attraverso per loro e
quindi cambiali o fai tutto ciò di cui hai bisogno
per fare ho visto tre di loro nel
stesso sistema aziendale sì, devi
pensa a come farai
questo suona come gli sviluppatori hanno bisogno
una versione locale di questa roba mentre
stanno sviluppando facciamo tutti i sistemi
usando l’integrazione continua così l’IC
sistema ha bisogno di sapere il QA
il sistema deve avere un diverso
esempio giusto così la prima volta che facciamo
questo faremo come una versione marionetta
per sviluppare la nostra istanza stessa
giusto e il secondo sarebbe per l’IC
istanza dal QA in poi cambia a
poco che abbia bisogno di un diverso tipo di
sistema operativo perché il QA ha bisogno di a
cluster perché non vogliamo cluster
introdotto in produzione solo come lo è
deve essere introdotto un po ‘ prima
giusto quindi devi pensare a come farlo
lo faccio
dispiegamento che è dove l’intero DevOps
entra come messo in più marionette
versioni per distribuire diversi tipi di
sistemi e tu non vuoi una persona
manualmente seduto e facendo questo su
ad esempio, macchine diverse proprio così
puoi aggiungere nodi in modo trasparente a questi
grappoli come nel reagire si può solo aggiungere
un nodo e dire renderlo parte del
grappolo
non vuoi una persona seduta lì
e scrivendo questo ogni volta che vuoi
aggiungi una sterlina a destra, ecco dove ti trovi
bisogno di pensare a pipette o qualche tipo
di sceneggiatura non mi interessa davvero se lo è
corretto ao uno script di shell ma alcuni
tipo di script che fa per te
giusto anche su un diritto macchina sviluppatore
abbiamo avuto questo progetto DNC abbiamo avuto un rubino
script che fondamentalmente è andato al
internet scaricato le ultime cose
decomprimile li impacchettano e dicono corri
ecco l’istanza dello sviluppatore locale
pronto per andare bene in modo che tu possa farlo
anche tu non hai bisogno di piacere
fare affidamento su una parte facendo clic sul nostro
porzione manualmente come un documento
documento che dice scaricare certo modo
c’è la squadra di ops che non sa
che cosa ha fatto la DBS che non conoscono
come fare i backup di questa roba giusto
come faccio a fare un backup come faccio a ripristinare
quali sono le altre cose che vanno con
esso
non sanno cosa devono imparare
giusto così sono tutte le altre cose
quello viene con l’altra opzione quella
potresti avere è come mi occupo di
dati che è necessario per questo esterna
sistema e il sistema esterno di solito
sta colpendo direttamente nel tuo database
e leggere i tavoli proprio così
è lì che il database di integrazione
il modello entra e ora ti stai muovendo
più verso un modello basato sul servizio così
nel frattempo ciò che abbiamo fatto
questo client corrente è l’applicazione
dall’altra parte può solo invocare un periodo di riposo
chiama e la chiamata di riposo torna nel
database scarica un file CSV e quello
può leggere il diritto di backup del file CSV
questo è il modello di integrazione che abbiamo usato
è fondamentalmente come un servizio invoca
restituisce o dà a destra un file CSV
in modo da avere a dipendere come come sono il
sistemi dipendenti con cui interagire
Questo
non solo i sistemi dipendenti è anche
come i tuoi utenti esperti come loro sono loro
sono così abituati ad apprezzare il loro eccellere
a questo database o accesso al loro
database e cercando di fare tutti i tipi di
domande pazze che non possono più perché
è Mongo e loro non possono capire
JSON o qualcosa del genere come si fa
dare loro i dati di cui hanno bisogno giusto
sembra che siamo alla fine logica qui
va bene
grazie ragazzi, grazie per essere venuti e
riposando la tua serata perfettamente buona con
tutto bene grazie

Please follow and like us: