Perché Couchbase?
Le odierne applicazioni mission-critical richiedono supporto per milioni di interazioni con gli utenti finali. I database tradizionali sono stati creati per migliaia. Progettati per coerenza e controllo, mancano di agilità, flessibilità e scalabilità. Per eseguire più casi d'uso, le organizzazioni sono costrette a distribuire più tipi di database, con conseguente "espansione incontrollata del database" e inefficienza, tempi di commercializzazione lenti e scarsa esperienza del cliente. I tradizionali database transazionali e analitici sono antecedenti alla realtà odierna del cloud ovunque. Una piattaforma di gestione dei dati cloud-native ti offre un vero vantaggio competitivo.
Le aziende si stanno rendendo conto che i requisiti per un coinvolgimento straordinario dei clienti non possono essere soddisfatti solo a livello di app. Costruire un'app bella e ben progettata è solo l'inizio. Il database sottostante è ciò che fa la differenza. Un database di coinvolgimento alimenta molteplici interazioni ed esperienze liberando il pieno potenziale dei dati, su qualsiasi scala, su qualsiasi canale o dispositivo, al fine di promuovere una relazione più significativa.
Couchbase Server è un database di coinvolgimento NoSQL orientato ai documenti open source, distribuito. Espone un veloce archivio chiave-valore con cache gestita per operazioni di dati inferiori al millisecondo, indicizzatori appositamente creati per query veloci e un potente motore di query per l'esecuzione di query di tipo SQL. Per gli ambienti mobile e Internet of Things, Couchbase funziona anche in modo nativo sul dispositivo e gestisce la sincronizzazione con il server.
Couchbase Server è specializzato nella gestione dei dati a bassa latenza per applicazioni Web interattive, mobili e IoT su larga scala. I requisiti comuni che Couchbase Server è stato progettato per soddisfare includono:
- Interfaccia di programmazione unificata
- Interroga
- Cerca
- Mobile e IoT
- Analisi
- Motore di base del database
- Architettura a scalabilità orizzontale
- Architettura incentrata sulla memoria
- Big data e integrazioni SQL
- Sicurezza completa
- Distribuzioni di container e cloud
- Alta disponibilità
Script Couchbase per dbas
Couchbase è anche più veloce in lettura e scrittura rispetto ad altri database open source.
L'aggiornamento è zero tempi di inattività.
Doc per Couchbase
https://docs.couchbase.com/server/6.5/getting-started/start-here.html
Educazione video per Couchbase
https://learn.couchbase.com/store
Differenze tra aziende e comunità
https://www.couchbase.com/products/editions
export JAVA_HOME=/usr/java/jre1.8.0_241-amd64 export PATH=$PATH:$JAVA_HOME/bin export CAUCHBASE_HOME=/opt/couchbase export PATH=$PATH:$CAUCHBASE_HOME/bin export LD_LIBRARY_PATH=/opt/couchbase/lib export CLASSPATH=$CLASSPATH:/opt/couchbase/lib/* export PYTHONPATH=/opt/couchbase/lib/python
#Install cauchbase wget https://packages.couchbase.com/releases/6.0.0/couchbase-server-community-6.0.0-centos7.x86_64.rpm rpm -ivh couchbase-server-community-6.0.0-centos7.x86_64.rpm
#Start couchbase systemctl enable couchbase-server systemctl start couchbase-server systemctl status couchbase-server
#bucket-create couchbase-cli bucket-create --cluster=192.168.56.74:8091 --user Administrator --password password --bucket travel-data --bucket-type couchbase --bucket-ramsize 100 --bucket-replica 1 --compression-mode active
#backup mkdir -p /tmp/cbbackup/ cd /opt/couchbase/bin cbbackup http://192.168.56.74:8091 /tmp/cbbackup/ -u Administrator -p password
#restore
cbrestore /tmp/cbbackup http://192.168.56.74:8091 -u Administrator -p password --bucket-source=travel-data --bucket-destination=travel-data
#Audit setting couchbase-cli setting-audit -c 192.168.56.74:8091 --username Administrator \ --password password --audit-enabled 1 --audit-log-rotate-interval 604800 \ --audit-log-path /opt/couchbase/var/lib/couchbase/logs #List cluster couchbase-cli server-list -c 192.168.56.74:8091 --username Administrator \ --password password
#Couchbase terminal cd /opt/couchbase/bin ./cbq -u Administrator -p password -engine=http://192.168.56.74:8091/
#Dba query SELECT * FROM system:keyspaces; seleziona active_requests.* da sistema:active_requests; seleziona * da sistema:richieste_completate; SELEZIONA * DA sistema:my_user_info; SELEZIONA * DA sistema:info_utente; SELEZIONA * DA sistema:nodi; SELEZIONA * DA sistema:funzioni; SELEZIONA * DA sistema:functions_cache;
#Effetto dell'audit sulla performance
L'audit è chiuso con tutti i futures. Stress test:
1000000 righe, 10 min, 1,2 GB. Il secchio ha 2 repliche. 20 persec.
L'audit è aperto con tutti i futures. Stress test:
1000000 righe, 10 min, 1,2 GB. Il secchio ha 2 repliche. 20 pers. Dimensione file di controllo =256kb.
#Sample queries SELECT callsign FROM `travel-sample` LIMIT 5; SELECT * FROM `travel-sample` WHERE type="airport" LIMIT 1; SELECT name FROM `travel-sample` WHERE type="hotel" AND city="Medway" and pets_ok=true LIMIT 10; SELECT name,phone FROM `travel-sample` WHERE type="hotel" AND city="Manchester" and directions IS NOT MISSING ORDER BY name LIMIT 10;
#perf metric data cbstats 192.168.56.74:11210 -j -u Administrator -p password -b travel-data all
#Rebalance status with http protocol as rest api curl --silent -u Administrator:password 192.168.56.74:8091/pools/default/tasks | python -mjson.tool | grep -A1 -B4 rebalance
#Stats on web interface http://192.168.56.74:8091/pools/default/buckets/travel-data/stats
#Carico dati per stress test
cbworkloadgen -n 192.168.56.74:8091 \ -n 192.168.56.74:8091 \ -u Administrator -p password \ -r .9 -i 1000000 -j \ -s 100 \ -b travel-data \ -t 10
#Cluster server list couchbase-cli server-list -c 192.168.56.74:8091 --username Administrator --password password curl -u Administrator:password -v -X GET http://192.168.56.74:8091/pools/default | jq '.' | grep hostname
#Session time out set curl -X POST -u Administrator:password \ http://192.168.56.74:8091/settings/security \ -d "uiSessionTimeout=600"
#Stats cbstats -b travel-data -u Administrator -p password \ 192.168.56.74:11210 vbucket | grep 1014 Thanks